3.14.2 コネクションプーリングで使用できる機能
コネクションプーリング機能を使用すると,さらに次に示す機能も使用できます。
(1) コネクションプールのウォーミングアップ
コネクションプールのウォーミングアップとは,サーバ起動時またはリソースアダプタのスタート時に実行されるリソースのスタート処理で,あらかじめ,コネクションを,コネクションプールの設定で定義した最小値までプーリングする機能です。これによって,コネクションプールの使用を開始した直後の,コネクション要求のレスポンスを向上できます。
コネクションプールのウォーミングアップは,リソースアダプタの属性(プロパティ)として設定します。リソースアダプタのプロパティ定義で設定できることについては,「3.14.10 実行環境での設定」を参照してください。
(2) コネクション数調節機能
コネクション数調節機能とは,コネクションプール内の不要なコネクションを指定したコネクションプールの最小値から最大値の範囲で段階的に減少させる機能です。この機能を有効にすると,実際の稼働実績に適した数までプール内のコネクション数を徐々に減らせるため,指定したコネクションプールの最小値を超えた場合のコネクション生成コストの削減やリソース資源の節約ができます。
また,コネクション数の調節時のコネクション削除処理に対して,応答時間にタイムアウトを設定できます。サーバ障害やネットワーク障害が発生してリソースからの応答が返らない場合,コネクション削除処理に対しても応答が返らなくなることがあります。このように,リソースから応答が返らない場合でも,タイムアウトを設定することでコネクション削除処理を終了し,処理を継続できます。
- コネクション数調節機能の動作
-
コネクション数調節機能を使用すると,プール内のコネクション数は,前回コネクション数を調節したときから今回コネクション数を調節するまでの間に同時に使用されたコネクションの最大数で調節されます。コネクション数の調節時に,プール内コネクション数が同時に使用されたコネクションの最大数より多い場合は,コネクションの削除処理が動作します。例えば,現在,プール内にあるコネクション数が8の場合で,前回のコネクション数調整から今回のコネクション数調節までの間に同時に使用されたコネクションの最大数が5のときは,プール内のコネクション数が3多いため,コネクションプールから3コネクションが削除され,調節後のコネクション数は5となります。
なお,コネクション数調節機能は一定間隔で動作します。
コネクション数調節機能の設定については,「3.14.10 実行環境での設定」を参照してください。
- コネクション削除処理のタイムアウト
-
コネクション数調節機能のコネクション削除処理に対して,その応答時間にタイムアウトを設定できます。なお,コネクション削除処理のタイムアウト時間は簡易構築定義ファイルのJ2EEサーバで指定するキーに,任意の時間を指定できます(デフォルト値は5秒)。
ただし,コネクションプールの最大数が無制限の場合,コネクション削除処理のタイムアウトは無効になります。
また,コネクション削除処理のタイムアウトにはコネクション管理スレッドを使用するため,コネクション削除処理のタイムアウトを設定すると,設定しない場合に比べて多くのメモリを消費します。設定する場合は,必要なメモリ使用量を適切に見積もってください。
コネクション管理スレッドについては,「3.15.1 コネクションの障害検知」を参照してください。
(3) コネクションスイーパの動作
一定間隔でコネクションプール内の未使用コネクションを破棄するための,コネクションスイーパ機能は,次のように動作します。
-
前回のコネクションスイーパの動作が終了してから「SweeperInterval」の値の経過後,コネクションスイーパが動作します。
-
コネクションスイーパは,プール内の未使用状態のコネクションを監視します。
最後に利用した時点からの経過時間が「ConnectionTimeout」の値以上の未使用状態コネクションを破棄します。未使用状態コネクションで,最後に利用した時点からの経過時間が「ConnectionTimeout」の値未満のコネクションについては,何もしません。