I observed the first issue when I started my WAS JVMs, towards the end of the implementation.
The JVMs refused to start and I instead saw this: -
Exception in thread "main" java.lang.NoClassDefFoundError: ${IBMSCMX}
Caused by: java.lang.ClassNotFoundException: ${IBMSCMX}
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:703)
at java.lang.ClassLoader.loadClass(ClassLoader.java:682)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:665)
Could not find the main class: ${IBMSCMX}. Program will exit.
Caused by: java.lang.ClassNotFoundException: ${IBMSCMX}
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:703)
at java.lang.ClassLoader.loadClass(ClassLoader.java:682)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:665)
Could not find the main class: ${IBMSCMX}. Program will exit.
in native_stderr.log.
This IBM Technote was of some use: -
which suggested that the problem was related to WAS node synchronisation.
When I dug further, I realised that the environment variable IBMSCMX was configured on the wrong WAS node. It was scoped to the Deployment Manager node ( ibmbpmCellManager01 ) rather than the Application Server node ( ibmbpmNode01 ).
I created a new variable, scoped against the right node, and tried again.
This time I saw: -
Exception in thread "main" java.lang.NoClassDefFoundError: ${IBMGCPOLICY_GENCON}
Caused by: java.lang.ClassNotFoundException: ${IBMGCPOLICY_GENCON}
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:703)
at java.lang.ClassLoader.loadClass(ClassLoader.java:682)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:665)
Could not find the main class: ${IBMGCPOLICY_GENCON}. Program will exit.
Again, the problem was that the variable IBMGCPOLICY_GENCON was scoped to the wrong node.
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:703)
at java.lang.ClassLoader.loadClass(ClassLoader.java:682)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:665)
Could not find the main class: ${IBMGCPOLICY_GENCON}. Program will exit.
Again, the problem was that the variable IBMGCPOLICY_GENCON was scoped to the wrong node.
Thirdly, I saw the same exception, this time with a third variable IBMJITPMC which was mis-scoped.
Once I created the three newly scoped variables: -
IBMGCPOLICY_GENCON = -Xgcpolicy:gencon
IBMJITPMC = -Xjit:iprofilerMemoryConsumptionLimit=67108864
IBMSCMX = -Xscmx120m
IBMSCMX = -Xscmx120m
the JVM started OK.
Now read the next post ....
No comments:
Post a Comment