在系统测试中最近部署之后,我们的一个servlet受到的打击比平常更加困难,我们注意到内存开始攀升,weblogic最终死亡。 我的实习生,我很自豪,发现了内存泄漏的根源。JAXBContext.newInstance内存泄露
每当一个请求时,此行被调用:
JAXBContext jc = JAXBContext.newInstance(“ruby.oracle_servlet.schemas”);
出于某种原因,该对象永远不会被垃圾收集。 一旦我们将它设置为静态并移动到初始化位置,我们的内存泄漏就消失了。
我们的另一位开发人员在独立的Java应用程序的while循环中放了这行代码,同时也看到了内存的变化。
有没有人有任何想法,为什么该对象不会被垃圾收集?
感谢
链接更新:http://jaxb.java.net/guide/Performance_and_thread_safety.html – 2012-05-22 18:35:42
@ThangPham - 谢谢,我已经更新了我与您所提供的新的链接的答案。 – 2012-05-22 18:45:03
这是JAXB for Java 7发布时的一个已知问题吗?您提供的解决方案仍然存在,但很高兴知道这是否仍然需要积极关注。 – 2013-10-14 20:14:05