Symfoware Server アプリケーション開発ガイド(JDBCドライバ編) - FUJITSU - |
目次 索引 |
第2章 アプリケーションの設計 | > 2.1 コネクション | > 2.1.2 コネクションプーリング |
コネクションプーリングについて、以下に分類して説明します。
JDBCドライバの動作
データソースとプロセスの関係
JDBCドライバのコネクションプーリング時の動作について、以下に説明します。
初回接続時は、 コネクションプーリングを使用しない場合と同じように、データベースへ接続します。次回の接続要求をした場合でも、プールしているコネクションがすべて使用中の場合には、新規にデータベースへ接続します。
また、最大コネクション数で設定された値以上のコネクション要求が発生した場合、JDBCドライバがエラーを返却します。
JDBCドライバでは、データソース接続に設定された“最大プールコネクション数”に達するまで、コネクションを保持していきます。接続要求をした際、プールしているコネクションの中に未使用のものが存在すると、事前に接続したコネクションを再利用します。その後、プールしているコネクション数以上に接続要求が重なると、未使用のコネクションが存在しないため、新たに接続してコネクションの接続本数は増加(最大コネクション数まで)していきます。
コネクションプーリング中は、アプリケーションでcloseメソッドを実施しても、データベースとの物理的なコネクションの切断を行いません。以下の場合に、データベースとの物理的なコネクションを切断します。
プロセスが終了する場合には、データベースとの物理的なコネクションをすべて切断します。
処理途中においても、同時に接続要求が重なり、最大プールコネクション数を超えるコネクションが接続された場合には、そのクローズ要求で、データベースとの物理的なコネクションを切断します(最大プールコネクション数内に収まるように調整します)。
複数のプロセスから同一データソースを使用する場合、データソースに登録したコネクション数(最大コネクション数、最大プールコネクション数)はJavaのプロセスごとに対応します。データソース登録の詳細については、“JDBCデータソース登録ツール”を参照してください。
以下の例では、データソースに最大コネクション数を16、最大プールコネクション数を5として登録しています。この時、Javaアプリケーション1、Javaアプリケーション2それぞれ16まで接続が可能で、コネクションをそれぞれ5つプーリングします。
目次 索引 |