为了账号安全,请及时绑定邮箱和手机立即绑定

内存泄漏 org.jboss.modules.ModuleClassLoader。

内存泄漏 org.jboss.modules.ModuleClassLoader。

胡说叔叔 2022-10-20 16:58:41
我正在升级我的 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 状态是解决此问题的方法。


查看完整回答
反对 回复 2022-10-20
?
BIG阳

TA贡献1859条经验 获得超6个赞

SessionFactoryRegistry 跟踪应用程序创建的 SessionFactory。通常你只需要一个 SessionFactory,创建一个很昂贵。通常 SessionFactory 在启动时被初始化并且 Session 对象被自动注入。有多种方法可以实现这一目标,但您可以从这里开始


查看完整回答
反对 回复 2022-10-20
  • 2 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号