Sunday, 11 January 2015

IBM BPM Advanced 8.5.5 - Interesting Times - 1 of 2

So I've had two interesting challenges with IBM BPM this past week, relating to a new build of BPM Advanced 8.5.5 on a Windows server.

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.

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.

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

the JVM started OK.

Now read the next post ....

No comments:

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...