コードを再確認し、finallyブロックにconn.closeがありますが、SELECT *FROMpg_stat_activity;を実行すると アイドル状態の接続がたくさんあります。どうすればこれを修正できますか?
2868 次
1 に答える
4
これの最も可能性の高い原因は、アプリケーションが接続プールを使用していることです。その場合、プールは接続を取得し、それらの一部を開いたままにして、再利用できるようにします。別のコマンドが実行されるか、アプリケーションがシャットダウンされるまで、接続はIDLEとして表示されます。
接続が単に閉じられていない場合は、おそらくIDLE-In Transactionのようなものが表示されます。これは、接続が開いていて、コミットまたはロールバックが実行されるのを待っているが、コマンドを受信していないことを意味します。
また、接続を閉じると言っているので、これが当てはまるかどうかはわかりませんが、PreparedStatementsを明示的に閉じないことで、過去にも問題が発生したことを捨てたかっただけです。
于 2012-10-08T01:21:53.240 に答える