Configuring JVMs in Financial Transaction Manager for SWIFT Services for z/OS (FTM)

Financial Transaction Manager for SWIFT Services for z/OS (FTM) integrates, orchestrates, and monitors financial transactions. It uses IBM Integration Bus (IIB) and runs several JVM processes within an IIB address space. Some of these JVMs are 64-bit and some of them are 31-bit. For example, the SWIFTNET FIN Daemon (SFD) runs in a 31-bit JVM. Sessions with FTM are assigned a Logical Terminal (LT). Each LT uses two JVM processes.

Procedure

  1. FTM uses environment variables to configure the JVM processes. Modify the BIPBPROF member of the IIB PDSE member and generate the environment files with BIPGEN.

    These environment variables are specified in the BIPBPROF member of the IIB PDSE, which has a name of the form:

    hlq.brokername.CNTL(BIPBPROF)

    Because the configuration needs to support two different JVM modes in the same address space, the IBM® OMEGAMON® for JVM JVMTI agent is started with the -agentlib option. The LIBPATH environment variable is set to a directory name containing a symlink to the correct mode agent. FTM provides a different environment variable to set the library path for the 31-bit JVMs.
    Tip: All options in DNICQ_IBM_JAVA_OPTIONS must be separated by a vertical bar character | not spaces.
    1. In the BIPBPROF member, append the following to the LIBPATH statement:

      :/rtehome/kan/bin/IBM/om64

      The BIPBPROF member should contain the following lines at the bottom of the file:
      DNI_PATH=inst_dir
      DNI_JAVA_PATH=java_path
      DNI_PRF=$DNI_PATH/run/res
      export DNI_PROFILEPATH=$DNI_PRF
      SFD_LP=$DNI_JAVA_PATH/bin/j9vm
      SFD_LP=$SFD_LP:$DNI_JAVA_PATH/lib/s390                        
      SFD_LP=$SFD_LP:$DNI_JAVA_PATH/lib/s390/classic                
      SFD_LP=$SFD_LP:$DNI_PATH/run/lib
      export DNF_SFD_LIBPATH=$SFD_LP
      JOP=-Dibm.jvm.bootclasspath=$DNI_PATH/run/classes/dnicsl.boots.jar
      JOP=$JOP:$DNI_PATH/run/classes/dnicsl.impl.jar
      export IBM_JAVA_OPTIONS="$JOP"
      DNI_RUNOPTS='XPLINK(ON),THREADSTACK64(ON,4M,1M,)'
      export _CEE_RUNOPTS=$DNI_RUNOPTS
      
    2. Add a line to the BIPBPROF member before the export of IBM_JAVA_OPTIONS:
      JOP=$JOP -javagent:/rtehome/FTM1/kan/bin/IBM/kjj.jar -agentlib:kjjagent
    3. Add the following line to the BIPBPROF member before the export of IBM_JAVA_OPTIONS:
      SFD_LP=$SFD_LP:/rtehome/kan/bin/IBM/om31
    4. Add the following lines to the BIPBPROF member before the export of IBM_JAVA_OPTIONS:
      CQJO=-javagent:/rtehome/kan/bin/IBM/kjj.jar|-agentlib:kjjagent export DNICQ_IBM_JAVA_OPTIONS=$CQJO

      - where rtehome is the ITM runtime time environment (RTE) USS directory name.

    5. (Optional but recommended) Increase the heap in the 31-bit JVM parameter DNICQ_HEAP_MEM=8m to 24m.
  2. Create two new sub-directories in the ITM RTE directory:
    1. Create an om31 directory and an om64 directory in the USS RTE for OMEGAMON in /rtehome/kan/bin/IBM.
    2. Ensure that these directories are readable by the FTM address space user.
    3. Change the om31 directory and create a symlink named libkjjagent.so to the 31-bit JVMTI library in the directory above.
      For example:

      cd /rtehome/kan/bin/IBM/om31

      ln -s ../libkjjagent.so libkjjagent.so

  3. Change directory to the om64 directory and create a symlink named libkjjagent.so to the 64-bit JVMTI library in the directory above. For example:

    cd /rtehome/kan/bin/IBM/om64

    ln -s ../libkjjagent_64.so libkjjagent.so

  4. Stop and restart the FTM broker for these changes to take effect.