我正在升級我的 JBoss、java 和 hibernate 版本JBoss 6 到 Wildfly 11休眠 4 到休眠 5.1和 java 6 到 java 8但是我遇到了 java 堆的這個問題,79% 的內(nèi)存被 ConcurrentHashMap 對象占用,我做了一個堆轉(zhuǎn)儲和 eclipse 分析器,我看到主要錯誤來自這個錯誤"類加載器/組件 "org.jboss.modules.ModuleClassLoader @ 0x6c27d1230" 占用 2.877.603.336 (79,10%) 字節(jié)。內(nèi)存在加載的 "java.util.concurrent.ConcurrentHashMap$Node[]" 的一個實(shí)例中累積通過“系統(tǒng)類加載器”。如果我看到詳細(xì)信息,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)我真的不明白為什么會發(fā)生這種情況,因?yàn)槭褂门f技術(shù),不會發(fā)生這種情況。
2 回答

UYOU
TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個贊
最后是代碼中的一個錯誤,每次我有一個 NOT_ACTIVE 狀態(tài)時我都有一個“重新連接”,這個重新連接會建立新的連接并在應(yīng)用程序中產(chǎn)生內(nèi)存泄漏。
刪除此重新連接并排除 NOT_ACTIVE 狀態(tài)是解決此問題的方法。
添加回答
舉報(bào)
0/150
提交
取消