Symfoware Server アプリケーション開発ガイド(JDBCドライバ編) - FUJITSU -
目次 索引 前ページ次ページ

第2章 アプリケーションの設計> 2.1 コネクション

2.1.2 コネクションプーリング

コネクションプーリングについて、以下に分類して説明します。

■コネクションプーリングと

Web連携では、多くのユーザに対して限られたサーバ資源で高速に動作しなければなりません。そのため、アプリケーションサーバでは資源を再利用する考え方が生まれ、JDBC連携(規約)でも、コネクション接続に関して「JDBC2.0 データソース接続」で規定されています。

JDBC規約

接続方法

コネクションの処理概要

JDBC2.0

データソース接続

環境定義を外部のデータソースに持ち、一度確立した実コネクションをプール(保持)し、同一プロセス内で再利用することで、2回目以降の接続要求で発生する接続コストを削減することができます。

JDBCドライバでは、データベースへのコネクションをキャッシュする機能を提供しています。

作成されたコネクションは、アプリケーションから切断要求されたタイミングでキャッシュに保持されます。その後、次回のコネクション作成時に再利用されます。

■メリッ

データベースへの接続処理は、非常に時間がかかります。コネクションプーリングでキャッシュされたコネクションは、データベースと接続したままなので、再利用の際に接続時間がかからず、性能向上に有効な機能です。特にデータベースへの接続と切断を頻繁に行うようなアプリケーションに有効です。

■JDBCドライバの動

JDBCドライバのコネクションプーリング時の動作について、以下に説明します。

◆コネクション接

初回接続時は、 コネクションプーリングを使用しない場合と同じように、データベースへ接続します。次回の接続要求をした場合でも、プールしているコネクションがすべて使用中の場合には、新規にデータベースへ接続します。

また、最大コネクション数で設定された値以上のコネクション要求が発生した場合、JDBCドライバがエラーを返却します。

◆コネクションのプール(保持)と再利

JDBCドライバでは、データソース接続に設定された“最大プールコネクション数”に達するまで、コネクションを保持していきます。接続要求をした際、プールしているコネクションの中に未使用のものが存在すると、事前に接続したコネクションを再利用します。その後、プールしているコネクション数以上に接続要求が重なると、未使用のコネクションが存在しないため、新たに接続してコネクションの接続本数は増加(最大コネクション数まで)していきます。

◆コネクションの切

コネクションプーリング中は、アプリケーションでcloseメソッドを実施しても、データベースとの物理的なコネクションの切断を行いません。以下の場合に、データベースとの物理的なコネクションを切断します。

■データソースとプロセスの関

複数のプロセスから同一データソースを使用する場合、データソースに登録したコネクション数(最大コネクション数、最大プールコネクション数)はJavaのプロセスごとに対応します。データソース登録の詳細については、“JDBCデータソース登録ツール”を参照してください。

以下の例では、データソースに最大コネクション数を16、最大プールコネクション数を5として登録しています。この時、Javaアプリケーション1、Javaアプリケーション2それぞれ16まで接続が可能で、コネクションをそれぞれ5つプーリングします。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2006