怎么可能是Websphere 6.1(IBM JVM)中的类加载器地址更改

时间:2023-01-15 19:42:16

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?

我在连续的javacore转储中观察到类加载器的地址在Websphere 6.1(IBM JVM 1.5.0)中正在发生变化。类加载器下面的类具有未更改的地址。那么它不是新地址的同一个类加载器吗?

E.g. in first javacore

例如。在第一个javacore

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

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

and in a later javacore

在后来的javacore中

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

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

先前在类加载器0x00002AAABF5BB7F0下的相同类,现在类加载器位于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.

我正试图找出一个类卸载问题,而这似乎并没有让我在挖掘堆转储时更轻松。

2 个解决方案

#1


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/

也许GC正在压缩堆。将-Xnocompactgc或-Xnocompactexplicitgc视为通用JVM参数。请参阅IBM JDK诊断文档:http://www.ibm.com/developerworks/java/jdk/diagnosis/

#2


If the application was stopped and restarted wouldnt' new classloaders be created for your classes because there is an application classloader?

如果应用程序已停止并重新启动,那么会为您的类创建新的类加载器,因为有一个应用程序类加载器?

Are you concerned about this because of native heap consumption or something else?

您是否因为本机堆耗或其他原因而担心这个问题?

#1


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/

也许GC正在压缩堆。将-Xnocompactgc或-Xnocompactexplicitgc视为通用JVM参数。请参阅IBM JDK诊断文档:http://www.ibm.com/developerworks/java/jdk/diagnosis/

#2


If the application was stopped and restarted wouldnt' new classloaders be created for your classes because there is an application classloader?

如果应用程序已停止并重新启动,那么会为您的类创建新的类加载器,因为有一个应用程序类加载器?

Are you concerned about this because of native heap consumption or something else?

您是否因为本机堆耗或其他原因而担心这个问题?