2009-08-14 3 views
3

私は新しいDB接続コードを書いており、接続プールの実装者としてproxoolを試してみると思いました。proxoolを使用する場合、すべてのgetConnection()を明示的に閉じる必要がありますか?

通常、プログラマは、すべてにDriverManager.getConnection(...)がconnection.close(が続いていることを保証するであろう)。

しかし、Proxoolを使用している場合は、終了が必要ですか?私は混乱しています:

a。ここproxoolドキュメント (http://proxool.sourceforge.net/quickStart.html) は(クローズを示して)

Bと呼ばれる、まだされています。私は、プログラムが終了したときにすべての 接続を閉じるシャットダウンフックをproxool が追加したことを読んでいます。

私のプログラムの最大の関心事は、(200 DB秒/書き込みまで)のパフォーマンスですので、私はProxoolののgetConnection()/クローズ()のパフォーマンスにどのような影響を与えるかわかりません。

私の質問は以下のとおりです。

  1. は近い()が必要である、または私は私の接続を閉じるようにProxoolに頼ることができますか?

  2. 私は明示的に毎回)(自分自身をクローズを呼び出すことがある場合は、その性能に悪影響を与えないのだろうか?

ありがとうございます。

答えて

7

close()メソッドは、アプリケーションによって呼び出された場合、実際に接続を閉じずにプールに戻すように、データベースプールは通常サブクラス化/デコレートします。新しい接続を確立するたびにかなりのコストがかかるだけでなく、あなたのユーザー/接続率を改善するためにすることができため、これはパフォーマンス上の理由のために行われます。 、あなたは、このようにプールをさせる、connection.close()を呼び出す必要性をDO 言っ

は、あなたがそれを使用しなくなっていることを知っていないと、それはそれを要求した次のスレッドに利用可能とすることができます。

関連する問題