JSF 2.0 アプリケーションで hibernate 4.2.4 と c3p0 0.9.2.1 を使用しています。すべてが機能していますが、一度に 5 人のユーザーがアプリケーション内でいくつかのアクションを実行すると、数分後にフリーズします。同じコンテナー内の他のアプリケーション (ポートレット) には引き続きアクセスでき、CPU と RAM の使用率は正常です。
おそらく、c3p0 接続プールのすべての接続が使用中で、使用後に解放されていないのでしょうか?! しかし、これが問題であるかどうかを確認するにはどうすればよいですか?
stackoverflow.com の一部のスレッドではunreturnedConnectionTimeout
、 andを使用するように指示されていますdebugUnreturnedConnectionStackTraces
。次のように hibernate.cfg.xml に入れる必要がありますか?
<property name="com.mchange.v2.c3p0.unreturnedConnectionTimeout">5</property>
<property name="com.mchange.v2.c3p0.debugUnreturnedConnectionStackTraces">true</property>
私の hibernate.cfg.xml は次のとおりです。
<property name="current_session_context_class">thread</property>
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.max_size">2</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">0</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>