0

WeblogicJMSを使い始めたばかりです。メッセージをキューに送信し、messagebeanでそれらをプルすることができました。次に、メッセージをデータベースに保存します。

だから私の質問は、データベースにメッセージを正常に書き込むまでキューからメッセージを削除しないようにJMSに指示するにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

メッセージをキューに送信し、メッセージ Bean でそれらを引き出すことができました。

メッセージ駆動型 Bean ( MDB ) について話していると思いますか?

私の質問は、メッセージがデータベースに正常に書き込まれるまでキューからメッセージを削除しないように JMS に指示するにはどうすればよいですか?

MDB はコンテナー管理の暗黙的なトランザクションの一部であり、トランザクションがコミットされていない限り (つまり、onMessageメソッドが最後に達していない限り)、メッセージは削除されません。

ロールバックの場合 (つまり、例外をスローするか、 を呼び出すcontext.setRollbackOnly()) MessageDrivenContext、メッセージは再配信されます。トランザクションを Bean 管理にするか、 を使用することで、この動作を回避でき@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)ますが、あなたの状況ではそうすべきではありません。デフォルトの構成をそのまま使用すれば、すべてが思いどおりに機能するはずです。

于 2012-12-19T20:13:43.317 に答える