Search code examples
jvmwebsphereclassloader

How could it be that classloader address changes in Websphere 6.1 (IBM JVM)


I observe in consecutive javacore dumps that the addresses of classloaders are changing in Websphere 6.1 (IBM JVM 1.5.0). The classes below the classloader have unchanged address. So isn't it the same classloader at a new address?

E.g. in first javacore

2CLTEXTCLLOAD Loader com/ibm/ws/classloader/CompoundClassLoader(0x00002AAABF5BB7F0)
3CLTEXTCLASS org/eclipse/emf/ecore/EObject(0x00002AAB24684B30)

and in a later javacore

2CLTEXTCLLOAD Loader com/ibm/ws/classloader/CompoundClassLoader(0x00002AAABF5AB6E0)
3CLTEXTCLASS org/eclipse/emf/ecore/EObject(0x00002AAB24684B30)

Same class previously under a classloader at 0x00002AAABF5BB7F0, and now the classloader is at 0x00002AAABF5AB6E0

I'm trying to figure out a class unloading problem, and this does not seem to make life easier when digging through heap dumps.


Solution

  • Perhaps the GC is compacting the heap. Consider -Xnocompactgc or -Xnocompactexplicitgc as a generic JVM arguments. See IBM JDK diagnoses documentation: http://www.ibm.com/developerworks/java/jdk/diagnosis/