我在Hibernate会话中遇到内存泄漏。
长时间运行的线程正在不断加载和更新数据。当线程正常调用entityManager.clear()
时,我会同时观察:
1。)Session
- 大小的增长(自申请开始以来的线性增长)
2.)执行时间的增长(自申请开始以来呈指数增长)
唯一有帮助的是close()
实体经理并重新打开它。我在几个未连接的应用程序中看到过这种行为,一些使用spring,一些没有,一些使用jpa-frontend,一些使用hibernate本地。
很奇怪:虽然我从未遇到没有这个问题的hibernate应用程序,但搜索互联网时出现了空白。我(和其他几十个开发者)做错了什么?
答案 0 :(得分:3)
hibernate中存在一个错误,无法清除干净清除会话。 参见:
应该在4.3中修复。
我的解决方法是使用短暂的会话。