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

Spring 为什么org.hibernate.impl.SessionFactoryImpl没有被垃圾收集?,spring,garbage-collection,heap,tomcat6,opencms,Spring,Garbage Collection,Heap,Tomcat6,Opencms,我在tomcat服务器上部署了一个网站,该服务器很快就用完了可用的堆空间,然后崩溃了。当我进行堆转储时,我发现很多org.hibernate.impl.sessionfactorympl实例(准确地说是802实例)占用了大部分(如果不是全部的话)空间,保持活动大小为541mb,引用自org.apache.catalina.loader.WebappClassLoader->java.util.concurrent.ConcurrentHashMap$HashEntry <bean id="

我在tomcat服务器上部署了一个网站,该服务器很快就用完了可用的堆空间,然后崩溃了。当我进行堆转储时,我发现很多org.hibernate.impl.sessionfactorympl实例(准确地说是802实例)占用了大部分(如果不是全部的话)空间,保持活动大小为541mb,引用自org.apache.catalina.loader.WebappClassLoader->java.util.concurrent.ConcurrentHashMap$HashEntry

<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>
关于服务器 服务器由apache2使用proxypass代理tomcat 6

<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>
关于软件 我使用opencms来管理webapp的内容,因此所有的代码都是通过模板类调用的 使用springs 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>

<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没有被垃圾收集吗

<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>

我可以提供任何需要的进一步信息。。。我对这件事真是不知所措。非常感谢您的帮助。

我希望您的应用程序上下文中只有一个会话工厂实例。如何加载spring应用程序上下文?
<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>