管理コンソールの「接続プール・プロパティー (Connection Pool Properties)」パネルで接続プールのさまざまなプロパティーを変更することができます。
接続要求がタイムアウトになり、ConnectionWaitTimeoutException がスローされるまでの間隔を秒数で指定します。
この値は、通常は特定の接続プールの接続数が最大値に達したために、 空きプールに使用可能な接続がなく、新規の接続を作成できないときに、接続要求が待機する秒数を示します。例えば、「接続タイムアウト (Connection Timeout)」が 300 に設定されている場合、最大数の接続がすべて使用中であると、プール・マネージャーは物理接続が使用可能になるまで 300 秒間待機します。この時間内に物理接続が使用可能にならないと、プール・マネージャーは ConnectionWaitTimeout 例外を開始します。通常、getConnection() メソッドを再試行することは意味がありません。 待ち時間を長くする必要がある場合は、「接続タイムアウト (Connection Timeout)」設定をより高い値にする必要があります。 アプリケーションによって ConnectionWaitTimeout 例外がキャッチされた場合、管理者は、アプリケーションの予期されている接続プールの使用法を検討し、 接続プールとデータベースを適宜、調整する必要があります。
「接続タイムアウト (Connection Timeout)」が 0 に設定されている場合、プール・マネージャーは、接続が使用可能になるまで必要なだけ待機します。 これが発生するのは、アプリケーションがトランザクションを完了し、接続をプールに戻したときか、 または接続数が「最大接続数 (Maximum Connections)」の値よりも下がって、新規の物理接続が作成できるようになったときです。
データ・タイプ | 整数 |
単位 | 秒 |
デフォルト | 180 |
範囲 | 0 から最大 int |
このプールに作成できる物理接続の最大数を指定します。
これらは、バックエンド・リソースへの物理接続です。 この数にいったん達すると、新規の物理接続は作成されず、リクエスターは、現在使用している物理接続がプールに戻るか、ConnectionWaitTimeout 例外が出されるまで待機します。
例えば、「最大接続数 (Maximum Connections)」値が 5 に設定されていて、5 つの物理接続が使用中である場合、プール・マネージャーは「接続タイムアウト (Connection Timeout)」に指定された時間、物理接続が解放されるのを待ちます。
「最大接続数 (Maximum Connections)」が 0 に設定されていると、接続プールは無限に許可されます。これには、「接続タイムアウト (Connection Timeout)」値が無視されるという副次作用もあります。
複数のスタンドアロンのアプリケーション・サーバーが同じデータ・ソースを使用している場合、それぞれのアプリケーション・サーバーに 1 つのプールがあります。複製を使用した場合、それぞれの複製ごとに 1 つのデータ・プールが存在します。 データベースの最大接続数を構成するときに、データ・プールの数を知っておくことが重要です。
データ・タイプ | 整数 |
デフォルト | 10 |
範囲 | 0 から最大 int |
保持する物理接続の最小数を指定します。
接続プールのサイズが最小接続プール・サイズと同じか、 小さい場合は、「未使用タイムアウト (Unused Timeout)」スレッドは物理接続を廃棄しません。 ただし、プールは最小接続プール・サイズを保持するだけのために、新規の接続を作成しません。また、「経過時間タイムアウト (Aged Timeout)」の値を設定すると、期限切れ経過時間のある接続は、最小プール・サイズの設定に関わらず廃棄されます。
データ・タイプ | 整数 |
デフォルト | 1 |
範囲 | 0 から最大 int |
プール保守スレッドの実行間隔を秒数で指定します。
例えば、「リープ時間 (Reap Time)」が 60 に設定されている場合、プール保守スレッドは 60 秒毎に実行されます。「リープ時間 (Reap Time)」の間隔は 「未使用タイムアウト (Unused Timeout)」および「経過時間タイムアウト (Aged Timeout)」設定の正確性に影響します。間隔が短くなるほど、正確性は増します。 プール保守スレッドが使用可能に設定されている場合は、「未使用タイムアウト (Unused Timeout)」および「経過時間タイムアウト (Aged Timeout)」の値よりも小さい「リープ時間 (Reap Time)」値を指定してください。プール保守スレッドを実行すると、「最小接続数 (Minimum Connections)」に指定された接続数になるまで「未使用タイムアウト (Unused Timeout)」に指定された時間値よりも長い間未使用になっている接続はすべて廃棄します。 また、プール保守スレッドは、「経過時間タイムアウト (Aged Timeout)」に指定された時間値よりも長い時間アクティブになっている接続もすべて廃棄します。
「リープ時間 (Reap Time)」の間隔も、パフォーマンスに影響します。間隔を短くすると、プール保守スレッドはより頻繁に実行されますが、パフォーマンスが低下します。
データ・タイプ | 整数 |
単位 | 秒 |
デフォルト | 180 |
範囲 | 0 から最大 int |
未使用またはアイドルの接続が廃棄される間隔を秒数で指定します。
パフォーマンスを最適化するためには、「未使用タイムアウト (Unused Timeout)」の値を「リープ・タイムアウト (Reap Timeout)」の値よりも高く設定してください。未使用の物理接続は、現在の接続数が「最小接続数 (Minimum Connections)」の設定を超えた場合のみ廃棄されます。 例えば、未使用タイムアウト値が、120 に設定されており、プール保守スレッドが使用可能になっている (リープ時間は 0 ではない) 場合は、2 分間未使用の物理接続が廃棄されます。このタイムアウトの正確性は、パフォーマンスと同様に、「リープ時間 (Reap Time)」の値によって影響を受けることに注意してください。詳しくは、「リープ時間 (Reap Time)」を参照してください。
データ・タイプ | 整数 |
単位 | 秒 |
デフォルト | 1800 |
範囲 | 0 から最大 int |
物理接続が廃棄される間隔を秒数で指定します。
「経過時間タイムアウト (Aged Timeout)」を 0 に設定することにより、アクティブな物理接続をプール内に無制限に残すことができます。 パフォーマンスを最適化するためには、「経過時間タイムアウト (Aged Timeout)」の値を「リープ・タイムアウト (Reap Timeout)」の値よりも高く設定してください。例えば、「経過時間タイムアウト (Aged Timeout)」の値を 1200 に設定し、「リープ時間 (Reap Time)」の値が 0 でない場合は、1200 秒間 (20 分) 存在している物理接続がプールから廃棄されます。このタイムアウトの正確性は、パフォーマンスと同様に、「リープ時間 (Reap Time)」の値によって影響を受けることに注意してください。 詳しくは、「リープ時間 (Reap Time)」を参照してください。
データ・タイプ | 整数 |
単位 | 秒 |
デフォルト | 0 |
範囲 | 0 から最大 int |
失効接続または致命的接続エラーが検出されたときの、接続のパージ方法を指定します。
データ・タイプ | ストリング |
デフォルト | EntirePool |