Cosminexus システム構築ガイド

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

9.9.2 リソースアダプタとJ2EEアプリケーションでの設定内容

リソースアダプタとJ2EEアプリケーションでの設定内容について説明します。

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

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

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

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

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

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

(2) 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は,管理対象オブジェクトとも対応づける必要があります。対応づけについては,「(4) ActivationSpecの設定」を参照してください。

参考
Cosminexusでは,<message-driven>−<message-destination-link>タグの情報は指定できません。

(3) 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を指定して実行してください。

サーバ管理コマンドの詳細については,マニュアル「Cosminexus リファレンス コマンド編」を参照してください。

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

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

(4) 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>タグ下に指定してください。

なお,Cosminexusでは,これらのプロパティが指定されているかどうかのチェックは実施されません。プロパティ設定が適切かどうかは,リソースアダプタが提供する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アプリケーションの開始は失敗します。

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

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

エラーが発生する場合 出力されるメッセージ
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インタフェースのスーパーインタフェースです。