IBM Support

DataStage Job Monitor fails with Java out of memory error, "java/lang/OutOfMemoryError"

Troubleshooting


Problem

DataStage Job Monitor fails due to an out of memory error.

Symptom

If the DataStage job log contains the following warnings:
  • Warning main_program: failed to initialize job monitoring. Monitor information will not be generated.
  • Warning: Failed to connect to JobMonApp on port 13401
Then, either the Job Monitor process died, or it encountered an error causing it to no longer listen on port 13401.
Check both the /opt/IBM/InformationServer/Server/PXEngine/java directory and the /pt/IBM/InformationServer/DSEngine directory for a javacore file.  Check the javacore file for out of memory error such as the following example:
 
0SECTION       TITLE subcomponent dump routine
NULL           ===============================
1TISIGINFO     Dump Event "systhrow" (00040000) Detail "java/lang/OutOfMemoryError" received
1TIDATETIME    Date:                 2011/05/30 at 12:00:00

The Job Monitor log file, /opt/IBM/InformationServer/Server/PXEngine/java/JobMonApp.*, can also show an out of memory error plus the location of javacore file.
 

Resolving The Problem

The maximum heap size for jobmon process must be increased to resolve the out of the memory error. 
In the /opt/IBM/InformationServer/Server/PXEngine/java directory, make a backup copy of jobmonit script.  Then, edit the jobmoninit script and find the code section shown in the following lines:
   if [ "$systype" = Windows_NT ] ; then
        $jrehome/bin/java -Xrs -classpath $CLASSPATH JobMonApp $jobmon_port1 $jobmon_port2 > $logfile 2>&1 &
    else
        if [ "$systype" = SunOS ] ; then
            nohup $jrehome/bin/java -classpath $CLASSPATH JobMonApp $jobmon_port1 $jobmon_port2 > $logfile 2>&1 &
        else
            nohup $jrehome/bin/java -Xgcpolicy:balanced -classpath $CLASSPATH JobMonApp $jobmon_port1 $jobmon_port2 > $logfile 2>&1 &
        fi
    fi
For Linux machines, modify the last Java statement to add option -Xmx512m as the first parameter.  The updated line should look like this:
 
else
   nohup $jrehome/bin/java -Xmx512m -Xgcpolicy:balanced -classpath $CLASSPATH JobMonApp $jobmon_port1 $jobmon_port2 > $logfile 2>&1 &
For Windows, make a similar change to the first Java line:
 
  if [ "$systype" = Windows_NT ] ; then
        $jrehome/bin/java -Xmx512m -Xrs -classpath $CLASSPATH JobMonApp $jobmon_port1 $jobmon_port2 > $logfile 2>&1 &
Save the changes, and then stop and restart the Job Monitor application:
 
. /opt/IBM/InformationServer/Server/DSEngine/dsenv
/opt/IBM/InformationServer/Server/PXEngine/java/jobmoninit stop
/opt/IBM/InformationServer/Server/PXEngine/java/jobmoninit start

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSZJPZ","label":"IBM InfoSphere Information Server"},"ARM Category":[{"code":"a8m50000000L0uaAAC","label":"DataStage-\u003EJob Monitor"}],"ARM Case Number":"TS008091806","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"11.3.0;11.3.1;11.5.0;11.7.0;11.7.1;9.1.0"}]

Document Information

Modified date:
26 January 2022

UID

swg21508253