WeblogicJMSを使い始めたばかりです。メッセージをキューに送信し、messagebeanでそれらをプルすることができました。次に、メッセージをデータベースに保存します。
だから私の質問は、データベースにメッセージを正常に書き込むまでキューからメッセージを削除しないようにJMSに指示するにはどうすればよいですか?
ありがとう
WeblogicJMSを使い始めたばかりです。メッセージをキューに送信し、messagebeanでそれらをプルすることができました。次に、メッセージをデータベースに保存します。
だから私の質問は、データベースにメッセージを正常に書き込むまでキューからメッセージを削除しないようにJMSに指示するにはどうすればよいですか?
ありがとう
メッセージをキューに送信し、メッセージ Bean でそれらを引き出すことができました。
メッセージ駆動型 Bean ( MDB ) について話していると思いますか?
私の質問は、メッセージがデータベースに正常に書き込まれるまでキューからメッセージを削除しないように JMS に指示するにはどうすればよいですか?
MDB はコンテナー管理の暗黙的なトランザクションの一部であり、トランザクションがコミットされていない限り (つまり、onMessage
メソッドが最後に達していない限り)、メッセージは削除されません。
ロールバックの場合 (つまり、例外をスローするか、 を呼び出すcontext.setRollbackOnly()
) MessageDrivenContext
、メッセージは再配信されます。トランザクションを Bean 管理にするか、 を使用することで、この動作を回避でき@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
ますが、あなたの状況ではそうすべきではありません。デフォルトの構成をそのまま使用すれば、すべてが思いどおりに機能するはずです。