WebSphere6.1(IBMJVM)中的类加载器地址更改怎么可能

WebSphere6.1(IBMJVM)中的类加载器地址更改怎么可能,jvm,websphere,classloader,Jvm,Websphere,Classloader,我在连续的javacore转储中观察到,WebSphere6.1(IBMJVM1.5.0)中类加载器的地址正在发生变化。类加载器下面的类具有未更改的地址。那么,新地址的类加载器不是同一个吗 例如,在第一个javacore中 2CLTEXTCLOAD Loader com/ibm/ws/classloader/CompoundClassLoader(0x00002AABF5BB7F0) 3CLTEXTCLASS org/eclipse/emf/ecore/EObject(0x00002AAB246

我在连续的javacore转储中观察到,WebSphere6.1(IBMJVM1.5.0)中类加载器的地址正在发生变化。类加载器下面的类具有未更改的地址。那么,新地址的类加载器不是同一个吗

例如,在第一个javacore中

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

在稍后的javacore中

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

同一个类以前位于0x00002AABF5BB7F0的类加载器下,现在该类加载器位于0x00002AABF5AB6E0


我试图找出一个类卸载问题,但这似乎并没有使挖掘堆转储时的工作变得更轻松。

如果停止并重新启动应用程序,不会因为有应用程序类加载器而为类创建新的类加载器吗


您担心这是因为本机堆消耗还是其他原因?

也许GC正在压缩堆。考虑Xnocompactgc或Xnocompactexplicitgc作为一个通用的JVM参数。请参阅IBM JDK诊断文档:

在获得第一个堆转储后,您是否重新部署了应用程序?没有,没有重新部署。但是应用程序被停止了。重新部署应该会产生新的类,其中addr。类的集合也不同?应用程序会停止并重新启动,但旧的类集合不会被删除。可能是因为还有一些来自另一个类加载器中的根的引用指向以前的应用程序实例。是的,当多次执行停止-启动循环时,应用程序服务器的总虚拟大小将达到极限。(解决方法是重新启动整个应用程序服务器,但还有大量其他应用程序正在运行,因此可能会导致停机。)