4

我在 Hibernate 会话中遇到内存泄漏。

一个长时间运行的线程不断地加载和更新数据。虽然线程定期调用entityManager.clear()我观察到:

1.)Session规模增长(自应用开始以来的线性增长)

2.) 执行时间的增长(自应用程序开始以来呈指数增长)

唯一似乎有帮助的是close()实体管理器并重新打开它。我在几个未连接的应用程序中看到了这种行为,一些使用 spring,一些没有,一些使用 jpa-frontend,一些本地使用 hibernate。

很奇怪:虽然我从来没有遇到过没有这个问题的休眠应用程序,但在互联网上搜索却是一片空白。我(和其他数十名开发人员)做错了什么?

4

1 回答 1

3

hibernate 中有一个 bug 会阻止 clear 清除会话。看:

它应该在 4.3 中修复。

我的解决方法是使用短期会话。

于 2013-08-15T13:38:04.647 回答