Java configuration on the IBM i

Java configuration on the IBM i

This section lists the Java related configurations, that you need to consider in order to be able to run InterFormNG2 on the IBM i platform.
  1. Java version 17 must be installed. InterFormNG2 is a Java based application that has been tested and verified to run on the 64bit version of JAVA 17.
  2. It is highly recommended (and sometimes even necessary) to upgrade Java 17 to the latest update. This is covered here
  3. In case of a problem concerning the InterFormNG2 service job, then it can be helpful to end the IFORMNG2 subsystem and manually start up InterFormNG2 in QShell with the commands found in the configuration file, service-as400.sh. This file is found in the IFS inside: /iformng2/InterFormNG-shell/Core.
  4. You should also consider/verify if your IBM i is running any other JAVA based applications. If already running JAVA on the IBM i, make sure that the installation(s) are made without system wide changes to the general JVM environment.
  5. In cases when running on an IBM i with a "Modified" JAVA version, it can result in problems when you try to start InterFormNG2. Based on experience it is not always neither simple nor fast to help identify/locate, whatever that has been modified. Examples of things that makes a JAVA installation "Modified" are listed below:
  1.  Any change in system wide properties, that are related to Java. Example:  ADDENVVAR ENVVAR('xxxx')  LEVEL(*SYS).

  2.  Any use of custom made JAVA System.properties files.

  3.  Any addition/changes/removal of files in folder(and subfolders) to QOpenSys\QIBM\*   Examples: Changes to the file "java.security" -- Addition/Removal of JAR-files or other files.

  4.  If a problem can be traced back to the existence of such a modification -  A fee to find and correct the change may be charged.
  1. You should ensure, that InterFormNG2 is setup to run on 64 bit Java 17 (and especially not on an older version or a 32 bit version). The Java settings of InterFormNG2 are set via option 92. Change NG2 installation on the IFORMNG2/IFORMNG2 menu. The path to java is set via the JAVA_HOME option and should normally be set to:
    /QOpenSys/QIBM/ProdData/JavaVM/jdk17/64bit
  2. An important prerequisite for running Java 17 on the IBM i platform is, that at least one font is directly available. Java 17 is from IBM not delivered with built-in fonts, so fonts must be provided or linked to. This is covered in the section below.
  3. Some IBM i machines are too slow to properly run InterFormNG2. If you are in doubt, if your machine is fast enough, then you should run the speed test before proceeding. Remember, that you could consider to run InterFormNG2 on a Windows server and process files and spooled files from the IBM i on this machine instead as covered here.

 Java 17 font issue

Oracle are removing fonts from the Linux based OpenJDK line of javas (including on the IBM i platform), so you have to install or link to fonts in order for Java to "fall back" to original OS fonts.

If you do not set this up InterFormNG2 might stop with the error message:

Warning
No physical fonts found

In the designer the error looks like this:

  NoPhysicalFontsFound_1

 

and you might see this error when you try to preview the result as a PDF:


  nophysicalfontsfound_2

The issue is described here:

Ref. https://docs.oracle.com/en/java/javase/17/intl/font-configuration-files.html


There are (at least) two ways to solve this:

Install the fontconfig option in Java 17

The best and right way to solve this is to install the fontconfig in Java 17. In order to do that you first need to activate Open source support on IBM i. This is covered on this IBM i link:

https://www.ibm.com/support/pages/getting-started-open-source-package-management-ibm-i-acs

Afterwards you can install fontconfig e.g. from a 5250 emulation if you select Actions and then SSH Terminal:

  NG2JavaConfig001

 

That starts an SSH Terminal session, where you first sign on and then run the command: /QOpenSys/pkgs/bin/yum install fontconfig

  NG2JavaConfig002

Then you will see something like below, where you need to confirm the install with 'y':

  NG2JavaConfig003

A successful installation looks like this:

  NG2JavaConfig004

Copy the fonts from Java 8 into Java 17

Another temporary solution/workaround is to copy the Java 8 fonts and make them available for Java 17. This is only temporary as the fonts are cached and this cache will run out at some point. When the cache runs out you will see the error: 'No physical fonts found' again and a restart of the IFORMNG2 subsystem is required to regain the fonts. The experience is, that the cache last one or two days.

You can do that with this command:

CPY OBJ('/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/jre/lib/fonts') \
    TODIR('/QOpenSys/QIBM/ProdData/JavaVM/jdk17/64bit/lib') \
    SUBTREE(*ALL)

After running this command you will need to restart the IFORMNG2 subsystem to activate this change.

Java test on IBM i 

Before you consider to run InterFormNG2 on the IBM i you should verify, if your IBM i is fast enough in order to get a proper performance, when you run InterFormNG2.

In order to do a speed test you should do this:

  1. Shut down the sub system IFORMNG2/IFORMNG2. 
  2. Delete all logfiles in IFS folder \iformng2\Log\ 
  3. Run the command, iformng2/iformng2 and select option 92. Configure NG2 installation.
  4. Here you should change the configuration into this:
IBM I Queue Monitor . . . . . . . . . . > *INACTIVE 
NG2-Server (Output generator) . . . . . > *INACTIVE
CommandLine to NG2 . . . . . . . . . .  > *ACTIVE
QIBM_QSH_CMD_OUTPUT - *JOB . . . . . . .> *STDOUT

Notes
Note the initial values first, so that you can change them back later. The default values are *ACTIVE for the first three and NONE for the QIBM_QSH_CMD_OUTPUT

  1. Now start the IFORMNG2/IFORMNG2 subsystem e.g. via option 10. Start IFORMNG2 subsystem on the IFRORMNG2/IFORMNG2 menu.
  2. Check out the jobs in the IFORMNG2 subsystem and wait for the TOOLSHED2 jobs to be fully started and wait for them to consume less than 0.5% CPU. 
  3. Now run the command, IFORMNG2/NG2VERIFY three to five times and be patient as this might take several minutes.
  4. Locate and open the generated logfile in IFS folder \iformng2\Log\ 
  5. In the bottom the log file - locate the last “ Test completed total time “ if that time is significant larger that the Reff (reference) times - then the Hardware/Configuration is not recommended to execute NG2.
    E.g.:    
***************** Test completed total time = 3830 ms *******************
*********** Reff time CPU Intel i7-6700HQ 2500 ms ( Old PC) *************
****** Reff time CPU POWER8 (Share <25%) 4000 ms ( Old IBM I ) **********
*************************************************************************
  1. After the speed test you should change the configuration in option 92. Configure NG2 installation and restart the IFORMNG2/IFORMNG2 subsystem to get back into normal processing mode.

    Notice: Help Center Transition Update

    As of January 13, 2025, we are excited to announce that our new Help Center is in the final stages of development. While the Knowledge Base is already accessible, our current JIRA system will continue to manage support tickets during this transition period. For assistance with InterForm Output Management Software, please refer to the Support for InterForm Output Management Software.

    We appreciate your patience and understanding as we work to enhance your support experience. If you have any questions or encounter any issues, please do not hesitate to reach out via the existing support channels.

    Best regards,
    The InterForm Support Team


      • Related Articles

      • Latest java updates on IBM i

        Upgrade the java version on AS400 You can identify the java version by running this command: JAVA CLASS(*version) Then you will see a list list like this: java version "1.8.0_291" Java(TM) SE Runtime Environment (build 8.0.6.30 - ...
      • Database configuration

        The section below describes the database configuration for the From database workflow input, which is very seldomly used. For most you should consider the alternative: From database with custom SQL. To use the database input component, database ...
      • IBM MQ

        If you want to use IBM Message Queues with InterFormNG2, then you need to set it up in the tenant settings. You can use IBM Message Queues in the workflow with the input type From IBM MQ. In order to setup IBM Message queues, you first need to sign ...
      • Installing InterFormNG2 on IBM i

        Installing InterformNG2 on IBM i: Installation of InterFormNG2 on the IBM i platform is described below. Please notice the prerequisites - especially for OS400 and Java. You can also view this video: Please refer to Spool2XML for details regarding ...
      • Infor System-Link configuration

        One of the systems with which you can communicate in InterFormNG2 is Infor System-Link. For doing that you need to define a configuration which you can setup if you are signed on to a tenant and then select Settings in the top ribbon: Then you select ...