Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

3.15.2 コネクション枯渇時のコネクション取得待ち

コネクションがコネクションプールに指定した最大コネクション数までプールされていて,利用できるコネクションがプール中にない状態を,コネクション枯渇といいます。

コネクション枯渇状態のときには,コネクション取得要求を待ち状態にできます。待ち状態になっているコネクション取得要求は,コネクションが解放されるとすぐにコネクションを取得できます。これによって,コネクション枯渇時に,効率良くコネクションを取得できます。コネクション枯渇時の取得待ちについて,次の図で説明します。

図3-36 コネクション枯渇時のコネクション取得待ち

[図データ]

この図では,コネクションプールの最大数は2となっています。このため,四つのgetConnectionからコネクション取得要求があっても,二つまでしか処理できません。最初の二つのコネクションの取得要求については,コネクションプールにコネクションがあるため,コネクションの取得ができます。残りの二つについては,コネクション枯渇の状態になるため,コネクション取得待ちのキューに入り,コネクションが解放されるのを待ちます。

なお,コネクション取得待ちは,コネクションプールを利用している場合に設定できます。

コネクション取得待ちをする場合には,リソースアダプタのプロパティとして,次の二つの内容を設定する必要があります。

リソースアダプタの設定については,「3.15.13 実行環境での設定」を参照してください。

<この項の構成>
(1) コネクション枯渇時の動作

(1) コネクション枯渇時の動作

コネクション取得待ちを設定している場合,コネクション枯渇時のコネクション取得要求は待ち状態になります。コネクション取得要求の待ち時間が最大待ち時間を越えた場合,ユーザプログラムに例外をスローします。

また,コネクション取得要求を再開するタイミングは,次のどちらかになります。

なお,コネクション取得要求の再開後にエラーが発生した場合,コネクション取得のリトライ機能が有効になっているときは,リトライ処理が実施されます。