Cosminexus 機能解説

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

5.13.6 Message-driven Bean実装時の注意事項

Message-driven Beanを実装するときの注意事項を示します。

<この項の構成>
(1) Message-driven Beanのトランザクション設定時の注意(Connector 1.0に準拠したリソースアダプタを使用する場合)
(2) Message-driven Beanのトランザクション設定時の注意(Connector 1.5に準拠したリソースアダプタを使用する場合)

(1) Message-driven Beanのトランザクション設定時の注意(Connector 1.0に準拠したリソースアダプタを使用する場合)

Message-driven Beanへのメッセージ配信とMessage-driven Bean内のデータベースアクセス処理をトランザクションで同期を取る場合,Message-driven Beanのトランザクション設定はCMTでRequiredに設定します。これによって,トランザクションがロールバックした場合にMessage-driven Beanへメッセージが再配信されます。しかし,トランザクションのロールバックが繰り返されると再配信も繰り返されるため,Message-driven Bean側でjavax.jms.MessageクラスのgetJMSRedeliveredメソッドを使用して再配信を確認するなどの対処が必要になります。CMTのNotSupported設定,またはBMTではいったんMessage-driven Beanでメッセージを受信すると,トランザクションがロールバックしても再配信されなくなります。

(2) Message-driven Beanのトランザクション設定時の注意(Connector 1.5に準拠したリソースアダプタを使用する場合)

グローバルトランザクションを使用している場合,次の処理の同期は取れません。

また,Connector 1.5仕様のリソースアダプタからメッセージを受信するJ2EEアプリケーションで,トランザクション管理方法をCMTにしてトランザクション属性をRequiredに設定すると,J2EEアプリケーションの開始に失敗します。