为什么org.hibernate.impl.SessionFactoryImpl不被垃圾收集?

时间:2012-06-14 13:52:13

标签: spring garbage-collection heap tomcat6 opencms

我有一个部署到tomcat服务器的网站,它已经非常迅速地耗尽其可用堆空间(Old Gen)然后崩溃。当我进行堆转储时,我发现大多数(如果不是全部)空间被大量的org.hibernate.impl.SessionFactoryImpl实例占用(802确切地说,保持活动大小为541mb)(从org引用) .apache.catalina.loader.WebappClassLoader - > java.util.concurrent.ConcurrentHashMap $ HashEntry)

关于服务器 服务器是由apache2使用proxypass代理的tomcat 6。

关于软件 我使用opencms来管理webapp,因此所有代码都通过其模板类调用 使用Spring HibernateTemplate访问Hibernate。数据源保存在tomcat中,并通过org.springframework.jndi.JndiObjectFactoryBean访问并注入我的数据源(org.apache.commons.dbcp.BasicDataSource),会话工厂配置如下。

             

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
        <list><value>com.someobjects.SomeObject</value>
        </list>
    </property>

有没有人知道为什么org.hibernate.impl.SessionFactoryImpl没有被垃圾收集?

我可以提供所需的任何进一步信息......我真的对此感到茫然。非常感谢任何帮助。

0 个答案:

没有答案