Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

3.16.8 Connector 1.5仕様に準拠したリソースアダプタを使用する場合の設定

ここでは,Connector 1.5仕様に準拠したリソースアダプタを使用する場合のJ2EEアプリケーションとリソースアダプタの設定について説明します。

設定は,それぞれアプリケーション統合属性ファイルとConnector属性ファイルに指定します。

注※
この項の説明は,すべてアプリケーション統合属性ファイルを使用する場合の説明です。cjgetapppropコマンドでMessage-driven Bean属性ファイルを取得した場合は,Message-driven Bean属性ファイルに指定できます。Message-driven Bean属性ファイルを使用する場合は,「アプリケーション統合属性ファイルの<hitachi-connector-property>タグ下」を「Message-driven Bean属性ファイル」に読み替えてください。
<この項の構成>
(1) 設定できる項目
(2) 管理対象オブジェクトの設定
(3) Message-driven Beanとリソースアダプタの対応づけの設定
(4) Message-driven Beanが使用するインタフェースの設定
(5) ActivationSpecの設定

(1) 設定できる項目

Connector 1.5仕様に準拠したリソースアダプタを使用する場合に設定できる項目について説明します。

(a) J2EEアプリケーションの設定

J2EEアプリケーションに設定できる内容を次の表に示します。

表3-67 J2EEアプリケーションの設定(Connector 1.5仕様に準拠するリソースアダプタを使用する場合)

機能 項目 対象 設定内容
管理対象オブジェクトのルックアップ 管理対象オブジェクトのルックアップで使用する情報 WAR,Session Bean,Entity Bean,Message-driven Bean <resource-env-ref>タグ下の次のタグに設定します。
  • <resource-env-ref-name>タグに,ルックアップで使用する名前を指定します。
  • <resource-env-ref-type>タグに,管理対象オブジェクトの型を指定します。
  • <linked-adminobject>−<resourceadapter-name>タグに,管理対象オブジェクトが含まれるリソースアダプタの表示名を指定します。
  • <linked-adminobject>−<adminobject-name>タグに,管理対象オブジェクトのオブジェクト名を指定します。
メッセージインフロー リソースアダプタとの対応づけ Message-driven Bean <message-ref>−<connection-destination>タグ下の<resource-adapter>タグに,対応づけるリソースアダプタの表示名を指定します。
Message-driven Beanが使用するインタフェース Message-driven Bean <messaging-type>タグに,Message-driven Beanが実装するインタフェースを指定します。
ActivationSpecの設定 Message-driven Bean <activation-config>−<activation-config-property>タグ下の<activation-config-property-name>タグおよび<activation-config-property-value>タグに,ActivationSpecに設定するプロパティを指定します。

注※ 設定値の一部は,使用するリソースアダプタの設定値と合わせる必要があります。


(b) リソースアダプタの設定

リソースアダプタのプロパティとして設定する項目のうち,Connector 1.5仕様に準拠したリソースアダプタで設定できる主な項目と,その項目の設定方法について説明します。なお,ここでは,Connector 1.5仕様に準拠したリソース固有の内容を説明します。

Connector 1.5仕様に準拠したリソースアダプタのプロパティとして設定できる内容を次の表に示します。

表3-68 Connector 1.5仕様に準拠したリソースアダプタのプロパティ定義で設定できる内容

分類 項目 設定内容
管理対象オブジェクト 管理対象オブジェクト名※1 <adminobject>−<adminobject-name>タグ※2にルックアップで使用するオブジェクト名を指定します。管理対象オブジェクトをルックアップの対象にする場合は必ず指定してください。オブジェクト名には,連続したアンダースコア"__"を含めてはいけません。
なお,管理対象オブジェクトをルックアップする場合には,J2EEアプリケーションの設定も必要です。「(a) J2EEアプリケーションの設定」を参照してください。
インタフェース <adminobject>−<adminobject-interface>タグに使用するインタフェースを指定します。javax.jms.Queue,javax.jms.Topicなどを指定します。
実装クラスとプロパティ <adminobject-class>タグに実装クラスを指定します。
<config-property>タグ下に管理対象オブジェクトのプロパティを設定します。

注※1 メッセージインフローで使用する管理対象オブジェクトの場合,指定する必要はありません。

注※2 DD(ra.xml)には存在しないタグです。


(2) 管理対象オブジェクトの設定

メッセージインフローで使用する管理対象オブジェクトの設定は,Connector属性ファイルに記述します。

管理対象オブジェクトに設定する内容は,リソースアダプタに依存します。使用するリソースアダプタのドキュメントを参照してください。

管理対象オブジェクトは,Message-driven Beanと対応づけて使用します。対応づけについては,「(5) ActivationSpecの設定」を参照してください。

(3) Message-driven Beanとリソースアダプタの対応づけの設定

Message-driven Beanとリソースアダプタの対応づけは,アプリケーション統合属性ファイルの<resource-adapter>タグに指定します。リソースアダプタの表示名を指定してください。

<resource-adapter>の階層を次に示します。

<hitachi-message-bean-property>
  <message-ref>
    <connection-destination>
      <resource-adapter>

これらのタグは,DD(ejb-jar.xml)には存在しない要素です。ただし,<hitachi-message-bean-property>はDDの<message-driven>に対応します。

リソースアダプタとの対応づけは,Message-driven Beanを含むJ2EEアプリケーションを開始したときに実行されます。なお,次の場合には,Message-driven Beanを含むJ2EEアプリケーションの開始が失敗します。この場合は,KDJE42359-Eのメッセージが出力されます。

Message-driven Beanは,管理対象オブジェクトとも対応づける必要があります。対応づけについては,「(5) ActivationSpecの設定」を参照してください。

参考
アプリケーションサーバでは,<message-driven>−<message-destination-link>タグの情報は指定できません。

(4) Message-driven Beanが使用するインタフェースの設定

Message-driven Beanが使用するインタフェースは,アプリケーション統合属性ファイルの<messaging-type>タグに記述します。Message-driven Beanが実装するインタフェース名を指定してください。

<messaging-type>の階層を次に示します。

<hitachi-message-bean-property>
  <messaging-type>

<hitachi-message-bean-property>はDD(ejb-jar.xml)の<message-driven>に対応します。

Message-driven Beanが使用するインタフェースには,リソースアダプタがサポートしているインタフェースを指定する必要があります。リソースアダプタがサポートするインタフェースは,リソースアダプタのDD(ra.xml)の<messagelistener-type>タグに指定されています。このタグに指定されている以外のインタフェースを指定した場合は,Message-driven Beanを含むJ2EEアプリケーションの起動が失敗します。この場合は,KDJE43167-Eのメッセージが出力されます。

リソースアダプタがサポートしているインタフェースは,サーバ管理コマンドの次のコマンドでも確認できます。これらのコマンドの引数に,-resnameおよび-inboundを指定して実行してください。

なお,<messaging-type>タグの指定を省略した場合は,デフォルト値としてjavax.jms.MessageListenerインタフェースが使用されます。

参考
javax.jms.MessageListenerインタフェースは,EJB2.0まで固有のメッセージリスナインタフェースとして使用されていたインタフェースです。

(5) ActivationSpecの設定

ActivationSpecとは,Message-driven Beanを活性化するために必要な設定を持つJavaBeansです。ActivationSpecには,リソースアダプタの設定に合わせて設定が必要なプロパティがあります。

(a) ActivationSpecの設定の概要

ActivationSpecに設定する値は,アプリケーション統合属性ファイルの<activation-config>タグ下に記述します。プロパティ名とプロパティ値を指定してください。複数指定できます。

<activation-config>の階層を次に示します。

<hitachi-message-bean-property>
  <activation-config>
    <activation-config-property>
      <activation-config-property-name>
      <activation-config-property-value>

ActivationSpecについてのデフォルトの設定値は,リソースアダプタのDD(ra.xml)に設定できます。<resourceadapter>−<config-property>タグに設定した値が,デフォルト値として使用されます。デフォルト値を記載している場合にアプリケーション統合属性ファイルでActivationSpecの値を設定したときには,<hitachi-message-bean-property>タグ下で指定した値で上書きされます。

ActivationSpecのプロパティとして必ず設定しなくてはいけないプロパティについては,「(b) 設定が必要なプロパティ」で説明します。

(b) 設定が必要なプロパティ

ActivationSpecの設定では,リソースアダプタのDD(ra.xml)の<activationspec>−<required-config-property>タグに指定されているプロパティの値を設定する必要があります。設定が必要なプロパティは,サーバ管理コマンドの次のコマンドでも確認できます。これらのコマンドの引数に,-resnameおよび-listenertypeを指定して実行してください。

このほか,ActivationSpecに設定できるプロパティはリソースアダプタに依存します。使用するリソースアダプタのドキュメントを参照してください。

(c) JMSをサポートするメッセージリスナを使用する場合に設定が必要なプロパティ

JMSをサポートするメッセージリスナ(javax.jms.MessageListenerインタフェースを使用するメッセージリスナ)を使用する場合,ActivationSpecに次のプロパティが必要です。<activation-config>タグ下に指定してください。

なお,アプリケーションサーバでは,これらのプロパティが指定されているかどうかのチェックは実施されません。プロパティ設定が適切かどうかは,リソースアダプタが提供するActivationSpec#validateメソッドで確認してください。

参考
EJB 2.0で<message-driven>タグ下の要素として指定していた次の項目は,EJB 2.1以降では削除されています。
  • <message-selector>
  • <acknowledge-mode>
  • <message-driven-destination>−<subscription-durability>
Connector 1.5仕様では,これらの要素を<activation-config>下のプロパティとして指定できることが推奨されています。ただし,指定できるかどうかは使用するリソースアダプタに依存します。

JMSをサポートするメッセージリスナを使用する場合のActivationSpec仕様の詳細については,Connector 1.5仕様のドキュメントを参照してください。

(d) ActivationSpecの生成・設定で発生するエラー

ActivationSpecを生成,設定するときに,次の表に示す状態になった場合,エラーが発生します。エラーが発生すると,J2EEアプリケーションの開始は失敗します。

エラーが発生する場合と出力されるメッセージを次の表に示します。

表3-69 エラーが発生する場合と出力されるメッセージの対応

エラーが発生する場合 出力されるメッセージ
ActivationSpecの実装クラスのインスタンス生成に失敗した場合 KDJE43168-E
ActivationSpecに指定したクラスがjavax.resource.spi.ActivationSpecインタフェースを実装していなかった場合 KDJE43172-E
<activation-config-property-name>タグに対応するプロパティのsetterメソッドが,ActivationSpecにない場合 KDJE43169-E
ActivationSpecに各プロパティを設定したあとで,設定が適切であるかをチェックするメソッド(ActivationSpec#validateメソッド)の呼び出しで例外がスローされた場合 KDJE43170-E
リソースアダプタのDD(ra.xml)で指定したプロパティ<required-config-property>タグに対応する設定項目が,アプリケーション統合属性ファイルの<activation-config>タグとして記述されていない場合 KDJE43171-E
ActivationSpecのsetResourceAdapterメソッドで例外がスローされた場合 KDJE43173-E

注※ setResourceAdapterメソッドはjavax.resource.spi.ResourceAdapterAssociationインタフェースで定義するメソッドです。javax.resource.spi.ResourceAdapterAssociationインタフェースは,javax.resource.spi.ActivationSpecインタフェースのスーパーインタフェースです。