0

HohpeG.とWoolfB.のEIPパターンブックからの引用:

JMSでは、トランザクションクライアントでもあるイベントドリブンコンシューマーは期待どおりに機能しないことに注意してください。通常、トランザクションのコードが例外をスローするとトランザクションはロールバックされますが、MessageListener.onMessageシグニチャはスローされる例外(JMSExceptionなど)を提供せず、ランタイム例外はプログラマーエラーと見なされます。ランタイム例外が発生した場合、JMSプロバイダーは次のメッセージを配信することで応答するため、例外の原因となったメッセージは失われます。トランザクション、イベント駆動型の動作を正常に実現するには、メッセージ駆動型のEJBを使用します。

私はそれを理解していますが、.NetクライアントからApache NMS(ActiveMQ)を使用している場合はどうなりますか?私はMDBを持っていないので、この問題にどのように対処すればよいですか?

4

1 に答える 1

0

ActiveMQ NMS クライアント非同期コンシューマは、基本的に Java バージョンと同じように機能します。例外は NMS でもプログラマー エラーとして扱われ、トランザクション中に次のメッセージが配信されるため、コールバックで例外を処理する必要があります。

于 2012-12-03T23:20:25.993 に答える