我正在升级我的 JBoss、java 和 hibernate 版本JBoss 6 到 Wildfly 11休眠 4 到休眠 5.1和 java 6 到 java 8但是我遇到了 java 堆的这个问题,79% 的内存被 ConcurrentHashMap 对象占用,我做了一个堆转储和 eclipse 分析器,我看到主要错误来自这个错误"类加载器/组件 "org.jboss.modules.ModuleClassLoader @ 0x6c27d1230" 占用 2.877.603.336 (79,10%) 字节。内存在加载的 "java.util.concurrent.ConcurrentHashMap$Node[]" 的一个实例中累积通过“系统类加载器”。如果我看到详细信息,Dominator Tree 中的累积对象会显示:org.jboss.modules.ModuleClassLoader -> 2.877.603.336 (Retained Heap)-java.util.Vector @ 0x6c27d4db0 -> 2.877.123.872 (Retained Heap)--java.lang.Object[20480] -> 2.877.123.840 (Retained Heap)---class org.hibernate.internal.SessionFactoryRegistry -> 2.840.910.848 (Retained Heap)-----org.hibernate.internal.SessionFactoryRegistry -> 2.840.910.168 (Retained Heap)------java.util.concurrent.ConcurrentHashMap -> 2.840.909.848 (Retained Heap)-------java.util.concurrent.ConcurrentHashMap$Node[256]-> 2.840.909.784 (Retained Heap)我真的不明白为什么会发生这种情况,因为使用旧技术,不会发生这种情况。
2 回答
UYOU
TA贡献1878条经验 获得超4个赞
最后是代码中的一个错误,每次我有一个 NOT_ACTIVE 状态时我都有一个“重新连接”,这个重新连接会建立新的连接并在应用程序中产生内存泄漏。
删除此重新连接并排除 NOT_ACTIVE 状态是解决此问题的方法。
添加回答
举报
0/150
提交
取消
