1

使用可能なヒープ領域 (Old Gen) を非常に急速に使い切ってからクラッシュする Tomcat サーバーにデプロイされた Web サイトがあります。ヒープダンプを取得したとき、ほとんどの (すべてではないにしても) スペースのほとんどが、多くの org.hibernate.impl.SessionFactoryImpl インスタンス (541mb のキープアライブサイズで正確には 802) によって占有されていることがわかりました (org から参照) .apache.catalina.loader.WebappClassLoader -> java.util.concurrent.ConcurrentHashMap$HashEntry)

サーバーについて サーバーは、proxypass を使用して apache2 によってプロキシされる tomcat 6 です。

ソフトウェアについて私は opencms を使用して webapp のコンテンツを管理しています。そのため、すべてのコードはそのテンプレート クラスを介して呼び出され、Hibernate にはスプリング HibernateTemplate を使用してアクセスします。データ ソースは 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 がガベージ コレクションされない理由を知っている人はいますか?

必要な追加情報を提供できます... 私は本当にこれで途方に暮れています. どんな助けでも大歓迎です。

4

0 に答える 0