2017-03-03 8 views
0

apache dbcp2を使用して接続プールを使用しようとしています。Java DBCP2最大接続が閉じられた後に接続プールが接続agianを作成しています

私のmaxTotal接続は5です。私はすべての接続を使用した後に閉じています。

まだ接続プールから閉じた5接続の後に接続しています。

whetehr 5つの接続が閉じられた後、データベースをpingして接続しますか?またはdbを使わずに接続プール自体から取得します。

私のサンプルコードスニペットは以下のとおりです。接続プーリングについての私の理解を修正してください。

BasicDataSource bds = getBasicDataSource(); 

System.out.println (bds.getMaxTotal()); // Prints - 5 

for (int i=0; i<10; i++) { 
    conn = bds.getConnection(); 
    System.out.println("Conn "+conn); // conn object printing different values for all 10 connections 
    conn.close(); 
} 

答えて

0

クライアントがプールから取得する接続は、実際にはjava.sql.Connectionではない、それはいくつかのメソッドの動作をカスタマイズするのjava.sql.Connectionのラッパー(プロキシ)です。 close()メソッドはその1つで、Connectionインスタンスを閉じずにプールに返します。

C3POを使用しようとすると、私の観点から見るとDBCPよりも優れています。

関連する問題