One of our customer is monitoring IBM WebSphere with Wily Introscope on an AIX machine. They started to have a problem to start Introscope after they migrated WebSphere from version 6 to version 7.
In order to solve it, we decided to recreate the AutoProbeConnector:
java -jar CreateAutoProbeConnector.jar -current
However, suprisingly, we failed:
Unable to determine the identity of the JVM: Unable to locate the java.lang.ClassLoader classfile.
That means CreateAutoProbeConnector could not find the class java.lang.ClassLoader. The JVM which is used by WebSphere 7 is IBM Java 1.6. With a quick search I found ClassLoader in jre/lib/ppc64/default/jclSC160/vm.jar
I decompiled CreateAutoProbeConnector and found that there was a constant named as kRuntimeRelativeFilenameOptions in class com.wily.introscope.autoprobe.connector.KAutoProbeConnectorConstants. It keeps file names where the java.lang.ClassLoader should be looked for:
But path of our vm.jar was not in this list. Then I realized CreateAutoProbeConnector uses a system property in class com.wily.introscope.autoprobe.connector.AutoProbeConnectorJVMUtilities:
That led us to a solution:
java -Dcom.wily.autoprobe.prependToJVMRuntimePath=<path-to-vm.jar> -jar CreateAutoProbeConnector.jar -current