DBCPデータベースプーリングを使用してSQL Serverに接続するJavaアプリケーションがあります。私たちはjtdsドライバを使用しています。DBCPデータベースプールのinitialSizeが選択されていません。ロードでプールが拡張されない
接続構成は以下の通りです:
initialSize=20
maxActive=100
minIdle=20
ので、起動時に私は、データベース内の20個の接続を見ることを期待しますが、私は唯一の16のテストは16回の接続でINITIALSIZE結果を得るために16以上の任意の値を示してご覧ください始動時に。値を16より低く設定すると、接続が正しくカウントされ、設定が取得されていることが示されます。
次は、接続数が増えることを期待してシステムを負荷の下に置きます。接続が他のより高い値に増加するのではなく、データベースの16の接続に残ることが意図されているようです。それは16〜30の間で上下しますが、より高い値が見えるときには、その数に素早くジャンプしてから16に戻ります。
これは、追加のdb接続がdbcpプール。
netstatをチェックするこれが起きると、多くの接続がTIME_WAITに終わることがわかります。これは、私のdbcpプールがdb接続用のソケットを閉じていることを示しています。
私は最初に16がデフォルトの開始点であり、新しい接続がその数を超えるとプールに追加されて、ここではなく全体のサイズが大きくなることを考えました。
私たちはこれについて深刻な保留中の生産上の問題を抱えていたので、思考や指針は非常に高く評価されます。