Troubleshooting
Problem
IBM InfoSphere Information Server OMDMonApp service cannot start due to the "java.lang.IllegalArgumentException: Comparison method violates its general contract!".
Cause
The issue is caused by a defect which affects both versions 7 and 8 of JDK.
Diagnosing The Problem
The OMDMonApp service shows as "NOT_RUNNING" from the DSOMDMonApp.sh -status command. In the relevant OMDMonApp log file (InformationServerRoot/Server/DSOMD/logs/dstage_OMD_trace_*.log), it contains the error below:
ERROR com.ibm.datastage.runtime.omdmonapp.OMDMonApp.startApplication(OMDMonApp.java:491) - Error occurred:
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:884)
at java.util.TimSort.mergeAt(TimSort.java:501)
at java.util.TimSort.mergeCollapse(TimSort.java:426)
at java.util.TimSort.sort(TimSort.java:230)
at java.util.TimSort.sort(TimSort.java:189)
at java.util.Arrays.sort(Arrays.java:867)
at com.ibm.datastage.runtime.utils.DropFileDirectory.lookForFiles(DropFileDirectory.java:270)
at com.ibm.datastage.runtime.utils.DropFileDirectory.watchForFiles(DropFileDirectory.java:309)
at com.ibm.datastage.runtime.omdmonapp.OMDMonApp.run(OMDMonApp.java:268)
at com.ibm.datastage.runtime.omdmonapp.OMDMonApp.startApplication(OMDMonApp.java:463)
at com.ibm.datastage.runtime.omdmonapp.OMDMonApp.main(OMDMonApp.java:386)
Resolving The Problem
Please follow these steps to resolve:
1. Log in to the engine tier
On Linux and Unix
- - ssh to the engine tier as dsadm or equivalent
- cd `cat /.dshome`/../DSOMD/bin
On Windows
- - Start a Command Prompt as Administrator
- Go to the DSOMD\bin directory. For example:
- cd C:\IBM\InformationServer\Server\DSOMD\bin
2. Back up the original DSOMDMonApp.sh script.
For example,
cp -p DSOMDMonApp.sh DSOMDMonApp.sh.orig
3. Add java.util.Arrays.useLegacyMergeSort property in DSOMDMonApp.sh as shown below:
if [ "$ACTION" = "-startalways" ]
then
# we don't want to start if OMDMonApp is already running
if [ "$OMAPid" = "" ]
then
$APW_NOHUP_CMD "$JAVA" -Djava.util.Arrays.useLegacyMergeSort=true -DPSMARKER=$PSMARKER -Xms32m -Xmx384m -classpath "$CLASSPATH" com.ibm.datastage.runtime.omdmonapp.OMDMonApp -start > $DSOMD_LOGS/start.dsomd.out 2>&1 &
fi
4. Start the OMDMonApp service
On Linux and Unix
- - ./DSOMDMonApp.sh -start
On Windows
- - DSOMDMonApp.sh -start
- - Control Panel > DataStage Control Panel
a. Stop All Services
b. Start All Services
Was this topic helpful?
Document Information
Modified date:
21 October 2018
UID
swg22003827