Hibernate 3 を使用していますが、接続が閉じられていることに関連する問題に直面しています。
c3p0-0.9.1.2.jar を使用しており、Hibernate によって開かれたデータベース サーバーへの接続を確認したところ、5 つの接続が確立されていることがわかりました。サーバーの一部の TCP ポートで (以下のログを参照)。
ただし、これらの確立された接続は、確立された TCP ポートを変更し続けるため、それらが使用していた以前のポートを解放し、これらのポートを (閉じるのではなく) TIME_WAIT 状態にします。
これは継続し、数百の数を数えます。TIME_WAIT 状態の接続の場合。
何が起こっているのか、ポートが確立された状態から TIME_WAIT に切り替わっていて、以前のポートが閉じていない理由がわかりません。
以下は、NETSTAT -ano|find "x.9" を実行して取得したサンプルです。x.9 はデータベース サーバーの IP です。
TCP x.124.x.66:4379 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4381 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4382 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4383 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4384 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4385 x.124.x.9:1433 TIME_WAIT 0
TCP x.124.x.66:4386 x.124.x.9:1433 ESTABLISHED 5916
TCP x.124.x.66:4387 x.124.x.9:1433 ESTABLISHED 5916
TCP x.124.x.66:4388 x.124.x.9:1433 ESTABLISHED 5916
TCP x.124.x.66:4389 x.124.x.9:1433 ESTABLISHED 5916
TCP x.124.x.66:4390 x.124.x.9:1433 ESTABLISHED 5916
私が使用する Hibernate.properties ファイル。
hibernate.c3p0.min_size=5
hibernate.c3p0.timeout=2
hibernate.c3p0.max_size=50
hibernate.c3p0.idle_test_period=10000
hibernate.connection.release_mode=auto
手伝ってくれてありがとう。