Troubleshooting AS400 specifics

Troubleshooting AS400 specifics

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

 

 

Problem when loading a spooled file

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 does not start in the IFORMNG2 subsystem

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.

 

 

 

Monitor an output queue: InterFormNG2 does not create a data queue

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:

 

NG2IBMiConnection0001

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

 

User authority considerations for IBM i

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.

 

 

User profile for connecting to the IBM i

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.

 

 

User profile for connection to the IBM i needs netserver access

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:

 

NG2TroubleshootAS4001

 

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:

 

AS400TRoubleshootAS402

 

 

And now you see this view on the left:

 

AS400TRoubleshootAS403

 

 

Now you need to click this icon and select Servers and TCP/IP Servers as highlighted above:

 

AS400TRoubleshootAS404


TOOLSHED2 jobs does not start or ends immediately

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:


 

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):


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:


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:


 

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.


    • Related Articles

    • Troubleshooting

      This section contains solutions to specific problems: 1.Issues related to namespaces in input XML files 2.Error during rendering: Message: org.apache.fontbox.ttf.TrueTypeFont.getAdvanceWidth(I) 3.PKIX path building failed: XXXX: unable to find valid ...
    • Spool2XML troubleshooting

      This section covers some of the issues, that you might see when you start to use the Spool2XML module. 1.InterFormNG2 does not react to a ready spooled file. 2.The monitor job stops with the error message: LIC0001 License code issue. 3.The output ...
    • Spool2XML

      One of the InterFormNG2 modules is spool2XML. When it comes to spooled file support in InterFormNG2 you have two options: 1.You can use the spool2XML module to convert input spooled files into XML files, that are placed in the IFS, where InterFormNG2 ...
    • EAN-128

      If you want to insert an EAN-128 (GS1-128) barcode in a template, then you need to insert a barcode element. You need to select EAN-128 (GS1-128) as the barcode type, after you have selected the barcode element: The parameters are: (The headers are ...
    • Page overflow

      When you insert many dynamically positioned elements in your output, then InterFormNG2 will automatically force a page overflow. This section covers the page overflow in details: 1.Introduction 2.Flexible header size. 3.Flexible footer size - for a ...