1

コードを再確認し、finallyブロックにconn.closeがありますが、SELECT *FROMpg_stat_activity;を実行すると アイドル状態の接続がたくさんあります。どうすればこれを修正できますか?

4

1 に答える 1

4

これの最も可能性の高い原因は、アプリケーションが接続プールを使用していることです。その場合、プールは接続を取得し、それらの一部を開いたままにして、再利用できるようにします。別のコマンドが実行されるか、アプリケーションがシャットダウンされるまで、接続はIDLEとして表示されます。

接続が単に閉じられていない場合は、おそらくIDLE-In Transactionのようなものが表示されます。これは、接続が開いていて、コミットまたはロールバックが実行されるのを待っているが、コマンドを受信して​​いないことを意味します。

また、接続を閉じると言っているので、これが当てはまるかどうかはわかりませんが、PreparedStatementsを明示的に閉じないことで、過去にも問題が発生したことを捨てたかっただけです。

于 2012-10-08T01:21:53.240 に答える