AIOps

 View Only

A Java bug causes a Java Error on ITCAM Agent startup

By Kristen Meren posted Wed October 03, 2018 12:00 AM

  
by Ray Rosales


When an ITCAM agent is started up, you might encounter the following Java error- 

Exception in thread "main" java.lang.ExceptionInInitializerError

        at java.lang.J9VMInternals.initialize(J9VMInternals.java:259)

        at java.nio.file.FileSystems.getDefault(FileSystems.java:187)

        at sun.util.calendar.ZoneInfoFile$1.run(ZoneInfoFile.java:495)

        at sun.util.calendar.ZoneInfoFile$1.run(ZoneInfoFile.java:490)

        at java.security.AccessController.doPrivileged(AccessController.

java:274)

 

The ITM install team has determined that most like cause of this issue is the following Java bug:

https://bugs.openjdk.java.net/browse/JDK-7181721

which is closed as a duplicate of:

https://bugs.openjdk.java.net/browse/JDK-7050570

 

JDK-705070 appears to indicate that the fix was made available in some

level of Java 8. It is not clear exactly which level.

ITM uses JRE7 as the "CANDLEHOME JRE". There is no plan to update the CANDLEHOME JRE to version 8.

It was determined that the file system where /opt/IBM/ITM is mounted, when unmounted, had permissions of 700. The solution was to unmount the

filesystem, fix the permissions, then remount the file system with commands something like the following:

ls -ld /opt/IBM/ITM

umount /opt/IBM/ITM

ls -ld /opt/IBM/ITM

chmod 755 /opt/IBM/ITM

ls -ld /opt/IBM/ITM

mount /opt/IBM/ITM

ls -ld /opt/IBM/ITM

There is a A TEMPORARY work-around but it is not recommended for a production environment or a permanent solution. You can however try it to determine if the Java bug is the reason for the Java Error during agent startup. The above solution would be the recommended method for resolving the issue:

Modify /opt/IBM/ITM/bin/CandleAgent, and insert this line right before the ITM Java code  ($print $JREEXE -classpath ...) gets called:

cd $HOME

 

So, the last lines of CandleAgent will become:

  if [[ -f ${CANDLEHOME}/bin/.agent.${product} ]];

  then

    ${CANDLEHOME}/bin/.agent.${product}  -ch $CANDLEHOME $BATCHOPT

$LOGOPT $NOPIDCHECKOPT $CONFIGOPT $MULTIOPT $FORCEOPT $oParms $pParms

-a $cArch $action $product

  else

    cd $HOME

    $print $JREEXE -classpath $CLASSPATH $SAFE_MODE

-DGlobalDbgLevel="$TRACE_LEVEL"

-DInstallRASConfig="$CANDLEHOME/config/ITMConfigRAS.properties"

ITMinstall.CandleAgent -ch $CANDLEHOME $BATCHOPT $

LOGOPT $NOPIDCHECKOPT $CONFIGOPT $MULTIOPT $FORCEOPT $oParms $pParms -a

$cArch $action $product

  fi

 

fi

 

This will make sure the ITM Java code is not launched in /opt/IBM/ITM, which was causing this problem, due to insufficient permissions. And it will force the ITM Java code to be launched in $HOMEAgain this is only a test fix.


#how-to
#troubleshoot
#ITCAM
#Java
0 comments
13 views

Permalink