【发布时间】:2012-04-25 02:32:25
【问题描述】:
我在使用 Spring + Hibernate 的 Web 应用程序中遇到问题。
我随机出现错误
java.lang.OutOfMemoryError: 超出 GC 开销限制
当 web 应用在 tomcat 中运行时
我尝试获取堆转储并使用 Eclipse MAT 对堆转储进行了分析
这是我的发现
对象org.hibernate.impl.SessionFactoryObjectFactory持有86%的内存,这个对象的Fashhashmap实例持有超过100000个Hashmap。 在每个 Hashmap 中都有一个 org.hibernate.impl.SessionFactoryImpl 的实例, 似乎 org.hibernate.impl.SessionFactoryImpl 被加载了几次并存储在 org.hibernate.impl.SessionFactoryObjectFactory 的 Fashhashmap 中
有人可以帮我找到这个问题的根本原因并提出一些解决方案来解决这个问题。
【问题讨论】:
-
你能告诉我们你是如何在 Spring 中配置 Hibernate 它的,你如何管理事务和一些示例 Hibernate 查询?可以匿名。
标签: spring hibernate out-of-memory