This section covers issues, that can be met in regards to the IBM i platform (AS400 iSeries). Non IBM i related troubleshooting is found in the section, Troubleshooting.
The issues covered are:
1.Problem when loading a spooled file
2.The NG2SERVER job does not start in the IFORMNG2 subsystem
3.Monitor an output queue: InterFormNG2 does not create a data queue
4.User authority considerations for IBM i
5.User profile for connecting to the IBM i
6.User profile for netserver access
7.The TOOLSHED2 jobs not not start or ends immediately
This section can help you, if you see this error in the log while loading a spooled file: com/ibm/as400/data/ProgramCallDocument.setTimeOut(I)V in file /QIBM/ProdData/OS400/jt400/lib/jt400Native.jar.
If you see this error message, then you are using an older AS400 with a jt400Native.jar file, that should be updated. You can solve the problem in these ways:
a.Recommended: You can upgrade your java to the latest version by installing the latest OS400 PTFs (cumulative package).
b.You can also remove the reference to the jt400Native.jar file in the stream file (in the IFS) as covered here.
The NG2SERVER job needs to run in the IFORMNG2 subsystem, if you want to run InterFormNG2 on the AS400/iSeries/IBM i platform. If this job does not start with the subsystem, then you should run the command IFORMNG2/IFORMNG2 and here select option 92. Change NG2 installation:
Configure IFORMNG2 Startup (NG2SETUP)
Type choices, press Enter.
IBM I Queue Monitor . . . . . . > *ACTIVE *ACTIVE, *INACTIVE, *SAME NG2-Server (Output generator) . > *ACTIVE *ACTIVE, *INACTIVE, *SAME CommandLine to NG2 . . . . . . . > *ACTIVE *ACTIVE, *INACTIVE, *SAME QIBM_QSH_CMD_OUTPUT - *JOB . . . > NONE
JAVA_HOME Blank=System default > '/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit'
|
On the screen above you can verify two things:
1.The value for the line: NG2-Server (output generator) must be *ACTIVE. This indicates, that the InterFormNG2 server will be started the next time, that the IFORMNG2 subsystem is started.
2.The value for the line: JAVA_HOME. This should contain the path to the 64bit version of Java 8. The recommended value is shown above.
If you setup InterFormNG2 to monitor an output queue in a workflow via the input type: From IBM i output queue, then InterFormNG2 should do two things:
1.A data queue is to be created in the same library as the monitored output queue.
2.The data queue is to be assigned to the monitored output queue.
If the InterFormNG2 workflow does not start and the status is error, then it can be, that the data queue does not exist or perhaps it is not assigned to the output queue.
You can verify from an IBM i command line, if the data queue and output queue exists with the command:
WRKOBJ OBJ(<library>/<output queue>) e.g. as: WRKOUTQ OBJ(QUSRSYS/PRT01).
This should result in a list of at least these two objects:
Opt Object Type Library
PRT01 *DTAQ QUSRSYS
PRT01 *OUTQ QUSRSYS
If the data queue does not exist, then you should verify:
1.Do you have an active connection to the IBM i?
2.Perhaps the user used for the connection does not have sufficient authority to create the data queue?
3.Is there a reference to an error in the system log at the time, when the workflow was created/changed? Perhaps the user profile is lacking authrity?
You can verify the connection to the IBM i, if you sign on as a system administrator and then select the system settings.
Under the Other settings you find the setup of the connection to the IBM i machine like below:
Here you can consider to connect as another user than the iformng2 user profile, if e.g. you have a restricted environment. You can test if the user is able to sign on with the 'TEST CONNECTION' icon in the bottom and you need of course to save any changes with the SAVE icon in the bottom right.
Apart from normal authority restrictions the option to create the data queue can also be locked down via an Exit point in OS400. The exit points can be seen with the command: WRKREGINF.
The exit point relevant for creation of the data queue is: QIBM_QZHQ_DATA_QUEUE. The advice is NOT to change settings of the exit point if this is preventing the creation, but instead to contact your system administrator. Perhaps a third party tool is used for maintaining the exit points or special company rules apply.
If you do a dummy change of
When you run InterFormNG2 on the IBM i platform, then the default setup is to run InterFormNG2 as the user profile, IFORMNG2, which is created during the installation. This user profile is delivered with the special authority, *SPLCTL (spool control), which ensures, that the user can access all spooled files on the IBM i.
The user profile used must at least have use authority to the objects in the IFORMNG2 library and write authority to the directory, /IFORMNG2 in the IFS, where core InterFormNG2 is running.
If you connect to the IBM i machine via the global system settings, then you need to ensure, that InterFormNG2 is always able to sign on with the registered user profile and password. You should consider to disable password expiration for this user profile to avoid any issues when the password runs out. You can set that with this command:
CHGUSRPRF USRPRF(<user>) PWDEXPITV(*NOMAX),
where <user> is the used user profile.
If you run InterFormNG2 on another server, then the user profile, that is used for connecting to the IBM i, needs netserver access to the IBM i. That not only require, that the Netserver of the IBM i is running, but it also requires, that the user profile is not disabled for Netserver access, which should not be confused with a normal disabled user profile, which you can see directly on the DSPUSRPRF command like below:
If the user is disabled like above then it is probably also disabled for Netserver access, but not the other way around..
You can verify if a user profile is disabled for Netserver access - and enable the user, but this is not at all as simple.
Enable a user profile for Netserver access
Here are the steps to go through:
First sign on to IBM i Navigator via your browser by specifying the ip-address or hostname of the IBM i followed by colon and port 2001 like e.g.: https://ip-address:2001 or http://ip-address:2001
Then you sign on and double click on the server:
And now you see this view on the left:
Now you need to click this icon and select Servers and TCP/IP Servers as highlighted above:
On the IBM i platform you should normally start the IFORMNG2/IFORMNG2 subsystem. You can manually start this subsystem via the command: IFORMNG2/IFORMNG2, which will show this menu:
IFORMNG2 InterForm NG2 Main Menu
Select one of the following: System . . . : PMK250 User . . . . : KSE Administration Version . . : 3.4.3 1. Work with monitored output queues 2. Work with XML definitions
10. Start IFORMNG2 subsystem 11. End IFORMNG2 subsystem 12. Work with IFORMNG2 subsystem
16. Save spooled file to stream file 31. Display print service log 51. Adjust CPI - *AFPDS configuration 91. License 92. NG2 installation and configuration
Selection or command ===>
|
Here you can then use option 10. Start IFORMNG2 subsystem to start the subsystem.
When running you will normally see these jobs (can be seen via option 12. Work with IFORMNG2 subsystem):
Work with Active Jobs PMK250 22/10/24 12:15:16 CEST CPU %: 86.5 Elapsed time: 00:04:25 Active jobs: 371
Type options, press Enter. 2=Change 3=Hold 4=End 5=Work with 6=Release 7=Display message 8=Work with spooled files 13=Disconnect ... Current Opt Subsystem/Job User Type CPU % Function Status IFORMNG2 QSYS SBS .0 DEQW IFORMNG2 IFORMNG2 BCH .0 PGM-NGQ500C DEQW NG2CLEAN IFORMNG2 BCH .0 DLY-60 DLYW NG2SERVER IFORMNG2 ASJ .0 PGM-STRSVRC TIMW QP0ZSPWP IFORMNG2 BCI .0 PGM-QZSHCHLD EVTW QP0ZSPWP IFORMNG2 BCI 85.6 JVM-Properties THDW QZSHSH IFORMNG2 BCI .0 PGM-QZSHSH EVTW TOOLSHED2 IFORMNG2 BCH .0 PGM-STRTOOLSS TIMW TOOLSHED2 IFORMNG2 BCI .0 JVM-com.interf SELW Bottom Parameters or command ===> F3=Exit F5=Refresh F7=Find F10=Restart statistics F11=Display elapsed data F12=Cancel F23=More options F24=More keys
|
In this subsystem you see the jobs, TOOLSHED2. If these jobs does not start on your installation (or if they start and end immediately) then you can verify this:
If the jobs are not started at all, then you should verify the settings on the IFORMNG2 menu above via option 92. NG2 installation and configuration.
The screen may look like below:
Configure IFORMNG2 Startup (NG2SETUP)
Type choices, press Enter.
IBM I Queue Monitor . . . . . . > *ACTIVE *ACTIVE, *INACTIVE, *SAME NG2-Server (Output generator) . > *ACTIVE *ACTIVE, *INACTIVE, *SAME CommandLine to NG2 . . . . . . . > *ACTIVE *ACTIVE, *INACTIVE, *SAME QIBM_QSH_CMD_OUTPUT - *JOB . . . > NONE
JAVA_HOME Blank=System default > '/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit'
JVM_MEMORY . . . . . . . . . . . > '-Xms2g -Xmn1g -Xmx3g' Use jt400Native.jar . . . . . . > '-Dloader.path=/QIBM/ProdData/OS400/jt400/li b/jt400Native.jar'
More... F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display F24=More keys
|
Here you should verify that the value for option 'CommandLine to NG2' is *ACTIVE. If not, then the TOOLSHED2 jobs will not start.
If the jobs does start but immediately stops, then you can verify the job log of the jobs:
First you can run the command: WRKJOB TOOLSHED2. This will list all jobs with that name. You might see something like this:
Select Job PMK250 22/10/24 12:29:53 CEST Type option, press Enter. 1=Select
Entered Option Job User Number Type -----Status----- System TOOLSHED2 IFORMNG2 228504 BCI OUTQ 22/10/24 TOOLSHED2 IFORMNG2 228494 BATCH OUTQ 22/10/24
|
If you now select option 1=Select for a job and then option 4. Work with spooled files, then you might be able to find a job log for the job and this job log might contain the reason for why the job stopped.
You can find other log files if the job log does not help. You can find these log files in the IFS in the directory: /IFormNG2/Log where the NG2Tools.* files contains the logs.
On example of an issue found in the log file could be that the used port number (5679) is already used.