3.16.6 コネクション定義の複数指定
Connector 1.5仕様に準拠したリソースアダプタを使用する場合,一つのリソースアダプタに対して複数のコネクション定義を指定できます。コネクションプールやログ出力などについての設定は,コネクション定義ごとに設定できます。
リソースアダプタ内のコネクション定義の識別には,コネクション定義識別子を使用します。コネクション識別子は,DD内の<connectionfactory-interface>の指定値です。<connectionfactory-interface>の値は,リソースアダプタ内のコネクション定義ごとに一意の値を持っています。
なお,リソースアダプタに含まれるコネクション定義ごとのコネクション定義識別子については,次のサーバ管理コマンドに-outboundオプションを指定して実行すると確認できます。
-
cjlistappコマンド(アプリケーションに含まれるRARファイルの場合)
詳細については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjlistapp(アプリケーションの一覧表示)」を参照してください。
-
cjlistresコマンド
詳細については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjlistres(リソースの一覧表示)」を参照してください。
-
cjlistrarコマンド
詳細については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjlistrar(リソースアダプタの一覧表示)」を参照してください。
ここでは,コネクション定義に指定できる要素と指定個所について説明します。また,コネクション定義を複数指定する場合に留意することについて説明します。
- 〈この項の構成〉
(1) コネクション定義に指定できる要素と指定個所
ここでは,コネクション定義に指定できる要素と指定個所について説明します。
(a) DDでの指定個所とコネクション定義に指定できる要素
コネクション定義は,Connector 1.5仕様に対応したDDの,<connection-definition>下に指定します。<connection-definition>の下に指定する要素を次に示します。
-
<managedconnectionfactory-class>
-
<config-property>
-
<connectionfactory-interface>
-
<connectionfactory-impl-class>
-
<connection-interface>
-
<connection-impl-class>
(b) Connector属性ファイルの階層構造とコネクション定義の対応
DD(ra.xml)の階層構造の変更に合わせて,属性ファイルにもコネクション定義に対応する階層が追加されます。
J2EEサーバにインポート済みのリソースアダプタの場合,リソースアダプタのプロパティの変更には,Connector属性ファイルを使用します。Connector属性ファイルに定義した値は,サーバ管理コマンドを使用してJ2EEサーバ上のリソースアダプタに反映します。属性ファイルによるプロパティの設定手順については,マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「3.5 属性ファイルによるプロパティの設定」を参照してください。
なお,リソースアダプタの動作に関連するプロパティには,コネクション定義ごとに定義する項目と,リソースアダプタ全体に定義する項目があります。コネクション定義ごとに指定する項目については,Connector属性ファイルの<outbound-resourceadapter>-<connection-definition>下に指定します。リソースアダプタ全体に対して指定する項目については,<resourceadapter-runtime>-<property>下に指定します。
指定方法の詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「4.1.1 Connector属性ファイルの指定内容」を参照してください。
(c) J2EEアプリケーションでのリンク解決の定義方法(<resource-ref>-<linked-to>,<cmp-map>-<datasource-name>またはmappedNameでの指定方法)
Connector 1.5仕様に準拠したリソースアダプタを参照するJ2EEアプリケーションでは,リンク解決のために,J2EEアプリケーションがどのコネクション定義を参照するかを定義する必要があります。
定義は,次のどれかの方法で指定します。
-
J2EEアプリケーションの属性ファイル(WAR属性ファイル,Session Bean属性ファイル,Entity Bean属性ファイルまたはMessageDrivenBean属性ファイル)の<resource-ref>-<linked-to>
-
J2EEアプリケーションの属性ファイル(Entity Bean属性ファイル)の<cmp-map>-<datasource-name>
-
アノテーション@ResourceのmappedName属性
- 注意事項
-
参照先のリソースがConnector 1.5仕様に準拠したリソースアダプタの場合は,必ずコネクション定義識別子を指定してください。指定を省略した場合,リンク解決に失敗します。また,参照先のリソースがConnector 1.0仕様に準拠したリソースアダプタの場合は,コネクション定義識別子を指定しないでください。指定した場合,リンク解決に失敗します。
コネクション定義識別子を含む参照先のリソースは,次の形式で指定します。
<リソースアダプタの表示名>!<コネクション定義識別子>
指定内容について説明します。
- <リソースアダプタの表示名>
-
参照先のリソースアダプタのDD(ra.xml)の<connector>-<display-name>要素の値です。
- <コネクション定義識別子>
-
参照先のリソースアダプタのDD(ra.xml)の<connector>-<resourceadapter>-<outbound-resourceadapter>-<connection-definition>-<connectionfactory-interface>要素の値です。
なお,リソースアダプタの表示名およびコネクション定義識別子は,次のサーバ管理コマンドでも確認できます。
-
cjlistappコマンド(アプリケーションに含まれるRARファイルの場合)
-
cjlistresコマンド
-
cjlistrarコマンド
(2) コネクションプールを使用する場合の留意事項
複数のコネクション定義が指定されているリソースアダプタでは,コネクションプールをコネクション定義単位で管理できます。コネクションプールについての定義は,Connector属性ファイルの<outbound-resourceadapter>-<connection-definition>-<connector-runtime>-<property>下の要素で指定して設定してください。
次に,コネクションプールが複数になる場合の留意事項について説明します。
(a) コネクションプールを対象にしたコマンドの実行
コネクションプールを対象にしたサーバ管理コマンドを実行するときには,どのコネクションプールを対象にするかを指定する必要があります。
次のコマンドを実行する場合には,コネクション定義識別子の指定が必要です。コネクション定義識別子は,これらのコマンドのオプションで指定します。
-
cjclearpoolコマンド
詳細については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjclearpool(コネクションプール内のコネクション削除)」を参照してください。
-
cjlistpoolコマンド
詳細については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjlistpool(コネクションプールの一覧表示)」を参照してください。
(b) コネクションプールのウォーミングアップ処理
コネクションプールのウォーミングアップ処理は,コネクション定義ごとに実行されます。
コネクションプールのウォーミングアップ処理が実行される場合に,特定のコネクション定義に対応するコネクションプールのウォーミングアップに失敗しても,それ以外のコネクションプールに対するウォーミングアップ処理は継続されます。
(3) トランザクションリカバリをする場合の留意事項
トランザクションリカバリは,コネクション定義ごとに実行されます。このため,コネクション定義を複数指定した場合,OTSにはコネクション定義ごとにリソースが登録されます。
(4) リソースへの接続テストをする場合の留意事項
リソースアダプタの接続テストを実行する場合,特定のコネクション定義に対する接続テストでエラーが発生した場合も,処理は中止されません。すべてのコネクション定義に対して接続テストが実行されます。ただし,どれかのコネクション定義でエラーが発生した場合,コマンドの戻り値は異常終了を示す戻り値になります。
(5) 稼働情報およびリソース枯渇監視情報を出力する場合の留意事項
コネクション定義が複数指定されている場合,稼働情報およびリソース枯渇監視情報は次のように出力されます。
- 稼働情報(稼働情報ファイルに出力される情報)
-
一つ目のコネクション定義についての情報だけが出力されます。一つ目のコネクション定義とは,DD(ra.xml)で最初に定義されているコネクション定義です。
- 稼働情報(運用管理コマンドを使用して出力する情報)
-
出力できません。Connector 1.5仕様に準拠したリソースアダプタについての稼働情報を出力しようとした場合,出力内容は保証されません。
- リソース枯渇監視情報
-
リソースアダプタに指定されているすべてのコネクション定義の情報が出力されます。
(6) リソースアダプタの稼働ログを出力する場合の留意事項
Connector 1.5仕様に準拠したリソースアダプタの稼働ログを出力する場合,出力ファイルのファイル名は,次の形式になります。
<リソースアダプタの表示名>_<コネクション定義の並び順>_<ログファイルの通番>.log
<コネクション定義の並び順>は,DD(ra.xml)内で,対応する<connection-definition>が出現した順番(1,2,...)に対応します。