IBM Support

Information Server EngMonApp fails with java.lang.OutOfMemoryError

Troubleshooting


Problem

EngMonApp is a server process of the IBM InfoSphere DataStage and QualityStage Operations Console running on the engine tier system which transfers job runtime events to the operations database. On a busy engine system with a large number of event files generated by DataStage job processes, EngMonApp can fail with this error: ERROR com.ibm.datastage.runtime.engmonapp.EngMonApp.main(EngMonApp.java:223) - Error occurred: java.lang.OutOfMemoryError ...

Cause

The maximum heap size for EngMonApp is currently set to 384 megabytes by default. It works for most engine systems. However, when there are a large number of event files present on a busy system, this default maximum heap size is no longer sufficient to run the process hence the java.lang.OutOfMemoryError.

Diagnosing The Problem

The EngMonApp process shows as "Not Running" in the Operations Console, or as "STOPPED" if using the DSAppWatcher.sh -status command. In the relevant EngMonApp log file (InformationServerRoot/Server/DSODB/logs/EngMonApp-***.log), an error containing information such as the following is reported (keywords highlighted):

ERROR com.ibm.datastage.runtime.engmonapp.EngMonApp.main(EngMonApp.java:223) - Error occurred:
java.lang.OutOfMemoryError
........snip.........
at
java.io.UnixFileSystem
........snip.........
at
com.ibm.datastage.runtime.engmonapp.FileManager.processDirectory
........snip.........
at
com.ibm.datastage.runtime.engmonapp.FileManager.watchForDirectories

Resolving The Problem

To resolve the issue, you need to increase the maximum heap size for EngMonApp by following these steps:
1. Log into server as dsadm or root.

2. cd InformationServerRoot/Server/DSODB/bin/utils_private/

3. Back up the DSEngMonApp.sh file
cp -p DSEngMonApp.sh DSEngMonApp.sh.bak

4. Edit DSEngMonApp.sh file to increase -Xmx384m, for example to -Xmx896m (896 megabytes).

#$APW_NOHUP_CMD "$JAVA" -DPSMARKER=$PSMARKER -Xmx384m -classpath "$CLASSPATH" com.ibm.datastage.runtime.engmonapp.EngMonApp 1>&2 &
$APW_NOHUP_CMD "$JAVA" -DPSMARKER=$PSMARKER -Xmx896m -classpath "$CLASSPATH" com.ibm.datastage.runtime.engmonapp.EngMonApp 1>&2 &

You may need to try different -Xmx values until you find an adequate heap size.

5. Restart EngMonApp by starting the DataStage AppWatcher service:
InformationServerRoot/Server/DSODB/bin/DSAppWatcher.sh -start
on unix as the DataStage administration user (e.g. dsadm).

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSVSEF","label":"IBM InfoSphere DataStage"},"Component":"--","Platform":[{"code":"PF016","label":"Linux"}],"Version":"8.7;8.7.0.1;8.7.0.2;9.1;9.1.0.1;9.1.2.0;11.3;11.3.1.0;11.3.1.1;11.3.1.2;11.5;11.5.0.1;11.5.0.2;11.7;11.7.0.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
29 December 2018

UID

swg21651827