3

私は c3p0 (0.9.1.2) バージョンを使用していますが、1 時間ほどnumUnclosedOrphanedConnectionsすると、1 時間に 1 のようにゆっくりと増加し続けます。c3p0ドキュメントはそれを言った

numUnclosedOrphanedConnections は、softReset() の呼び出し後にのみ非ゼロになります。これは、ソフト リセットが発生したときにチェックアウトされたためにプールからサイレントに除外され、クライアント アプリケーションによって閉じられないままになっている接続の数を表します。

c3p0 がソフト リセットを行うのはなぜですか? 私のc3p0設定は次のようなものです

initialPoolSize=1
minPoolSize=1
maxPoolSize=100
maxIdleTime=60
checkoutTimeout=5000
testConnectionOnCheckin=true
4

1 に答える 1

1

修正を手伝ってくれてありがとう、スティーブ。これが私がやった方法です。

c3po のデバッグ レベルのロギングを有効にします。

<logger name="com.mchange" additivity="false">
<level value="DEBUG" />
    <appender-ref ref="C3p0Appender" />          
</logger>

c3p0 設定:

debugUnreturnedConnectionStackTraces=true
# 30 sec is enough for me but you should change it for your case
unreturnedConnectionTimeout=30

また、c3p0 ログ ファイル内を検索するキーワードは、「Overdue resource check-out」です。

このロギングは、c3p0 のトランク バージョンでのみ有効になります。pre6 リリースにはあるはずです。

于 2012-10-30T14:54:24.720 に答える