2

Mule で例外処理を実装しようとしています。

エラーメッセージとして受け取る前に、メッセージを再試行するためにロールバック例外戦略を使用しました。

以下のような例外戦略があります。

<rollback-exception-strategy maxRedeliveryAttempts="3" doc:name="Rollback Exception Strategy">
        <logger message="message1 #[exception]" level="INFO" doc:name="Logger"/>
        <file:outbound-endpoint path="C:\\MuleSamples\backout" responseTimeout="10000" doc:name="File"/>
        <on-redelivery-attempts-exceeded doc:name="Redelivery exhausted">
            <logger message="#[message.exceptionPayload]" level="INFO" doc:name="Logger"/>
            <file:outbound-endpoint path="C:\\MuleSamples\backout" outputPattern="backoutmsg.xml" responseTimeout="10000" doc:name="File"/>
        </on-redelivery-attempts-exceeded>
</rollback-exception-strategy>

RedeliveryAttempts を 3 に設定しても、フローはメッセージを再配信していません。一度処理するだけです。

ここで何が欠けているのかわかりません。

WMQ インバウンド エンドポイントがあり、WMQ_transaction を使用しました。

どんな助けでも大歓迎です。

4

2 に答える 2

1

ロールバック例外戦略に関する Mule ドキュメントには、次のように記載されています

フローが次の 2 つのタイプのトランスポートのいずれかを使用する場合、Mule はメッセージの再配信を試みます:トランザクションまたは高信頼性

Mule では、VM、JDBC、JMS トランスポートはトランザクションであり、JMS、FTP、ファイル、IMAP は信頼できるトランスポートです。

したがって、フローに上記の受信エンドポイントのいずれかがある場合、ロールバック例外戦略は再試行します。

于 2015-10-29T14:10:01.257 に答える