Cosminexus 機能解説
Message-driven Beanを実装するときの注意事項を示します。
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でメッセージを受信すると,トランザクションがロールバックしても再配信されなくなります。
グローバルトランザクションを使用している場合,次の処理の同期は取れません。
また,Connector 1.5仕様のリソースアダプタからメッセージを受信するJ2EEアプリケーションで,トランザクション管理方法をCMTにしてトランザクション属性をRequiredに設定すると,J2EEアプリケーションの開始に失敗します。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.