20.1.2 クラスタコネクションプールの概要
クラスタ化されたコネクションプールのことをクラスタコネクションプールといいます。ここでは,クラスタコネクションプールの構成,およびクラスタコネクションプールで使用できる機能について説明します。
- 〈この項の構成〉
(1) クラスタコネクションプールの構成
クラスタコネクションプールは,各データベースノードと接続するメンバリソースアダプタと,それら複数のメンバリソースアダプタを束ねるルートリソースアダプタで構成されています。ルートリソースアダプタとメンバリソースアダプタについて説明します。
-
ルートリソースアダプタ
クラスタ化したコネクションプール(クラスタコネクションプール)を使用するときに,J2EEアプリケーションからアクセスされるリソースアダプタです。ルートリソースアダプタは,メンバリソースアダプタを束ねる役割を持ちます。ルートリソースアダプタでは,ルートリソースアダプタに対する処理要求をメンバリソースアダプタに振り分けます。なお,ルートリソースアダプタは,コネクションプールを持ちません。
-
メンバリソースアダプタ
クラスタ化されている個々のデータベースノードに接続するリソースアダプタです。メンバリソースアダプタは,必ずルートリソースアダプタを経由してアクセスされます。メンバリソースアダプタのコネクションプールのことを,メンバコネクションプールといいます。
コネクションプールをクラスタ化しているときのコネクション取得時の処理の流れを次の図に示します。
-
J2EEアプリケーションは,ルートリソースアダプタに対しコネクション取得要求をする。
-
ルートリソースアダプタは,メンバコネクションプールを一つ選択し,コネクション取得要求を出す。
-
メンバコネクションプールからコネクションが選択され,J2EEアプリケーションに返す。
(2) 前提条件
クラスタコネクションプール機能を利用できるデータベースは,Oracle RAC機能を使用している場合だけです。使用できるJDBCドライバは,Oracle JDBC Thin Driverです。
(3) データベース接続で使用できるJ2EEコンポーネントおよび機能
クラスタコネクションプール機能を使用している場合に,データベース接続で使用できるJ2EEコンポーネントおよび機能を次の表に示します。
項目 |
Oracle(クラスタコネクションプール機能を使用した場合) |
|
---|---|---|
J2EEコンポーネント |
Servlet/JSP |
○ |
Stateless Session Bean |
○ |
|
Stateful Session Bean |
○ |
|
Singleton Session Bean |
○ |
|
Entity Bean(BMP) |
○ |
|
Entity Bean(CMP1.1) |
× |
|
Entity Bean(CMP2.0) |
× |
|
Message-driven Bean |
× |
|
使用できる機能 |
コネクションプーリング |
○ |
コネクションプールのウォーミングアップ |
○ |
|
コネクションプールの情報表示(cjlistpoolコマンド) |
○ |
|
コネクションプールのクリア |
○ |
|
リソースへの接続テスト |
○ |
|
コネクションの障害検知 |
○ |
|
ステートメントプーリング |
○ |
|
ステートメントキャンセル |
○※ |
|
ステートメントsetQueryTimeoutメソッド |
○※ |
|
コネクションIDのPRFトレース出力 |
○ |
|
障害調査用SQLの出力 |
○ |
- 注意事項
-
リソースアダプタを使用する場合,J2EEアプリケーションからリソースアダプタへのリファレンスを解決しておく必要があります。リソースアダプタを使用しているJ2EEアプリケーションをカスタマイズするときに,J2EEアプリケーションからリソースアダプタへのリファレンスを解決しておいてください。
(4) 使用できるリソース接続とトランザクション管理の機能
ルートリソースアダプタ,およびメンバリソースアダプタで使用できる機能については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.3.4 リソースアダプタの機能」を参照してください。