JDBCドライバの最大コネクション数を超えた接続要求を行った場合に発生する事象について
- JDBCドライバの最大コネクション数を超える接続要求を行うと、どのような事象が発生しますか?
- 最大コネクション数を超える接続要求を行った時点で、コネクションの空きを待つのではなく、「同時に使用できるコネクション数の最大値を超えました」というエラーメッセージを返却します。
JDBCドライバでは、以下の2つの設定を行います。
-
最大コネクション数
システムのピーク時に予想される最大接続数 -
最大プールコネクション数
システム上、常にスタンバイしておく接続数
以下に例を挙げて説明します。
ある業務システムでは、平常時の運用で、30本前後のコネクション要求が発生しています。
夕方のピーク時になると、最大で45本のコネクション要求が発生すると想定されています。
このシステムでは、システム上予想される最大のコネクション数は45であるため、最大コネクション数には45を設定します。
平常時の運用では、30本前後のコネクション要求で運用されているため、最大プール数には、30を設定します。
最大プール数に30を設定することで、コネクション処理にかかる時間を短縮できるため、平常時の運用に効果的です。
31本目のコネクション要求が発生すると、プールされたコネクションの空きを待つわけではなく、31本目のコネクション処理を行います。
しかし、平常時の運用では31本目以上のコネクション要求は発生しないため、31本以上のコネクション資源を常にプールさせておくと、アプリケーションサーバ上に不要な資源を取ってしまうことになります。
そのため、JDBCドライバは、最大プールコネクション数を超えたコネクションについては、アプリケーションでクローズ要求が発生すると、プールには戻さず、コネクションを解放します。【参考情報:JDBCドライバの設定と、Symfowareの設定との優先順序】
Symfowareにも、最大コネクション数を管理する機能があります。
JDBCドライバとSymfowareの両方で最大コネクション数を設定した場合、Symfowareの設定が優先されます。
最大コネクション数の設定をする場合、Symfowareの設定にご注意ください。 -
製品・サービス区分 | Symfoware | ||||
---|---|---|---|---|---|
製品・サービス情報 |
|
||||
アンサー種別 | 運用/保守 |