【问题标题】:Rollback Exception Strategy回滚异常策略
【发布时间】:2013-09-17 21:03:35
【问题描述】:

我正在尝试在 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。

任何帮助将不胜感激。

【问题讨论】:

  • 可以分享一下流程配置吗?

标签: exception-handling mule mule-studio


【解决方案1】:

回滚异常策略上的Mule document 表示:

当您的流使用以下两种传输类型之一时,Mule 会尝试重新传递消息:事务性或可靠

在 Mule 中,VM、JDBC、JMS 传输是事务性的,而 JMS、FTP、文件、IMAP 是可靠的传输。

因此,如果您的流程具有上述入站端点之一,则回滚异常策略将重试。

【讨论】:

    【解决方案2】:

    请记住,回滚异常策略机制仅适用于 IllegalStateException。对于所有其他例外情况,您必须定义不同的策略。

    Java 的 IllegalStateException 的 Javadocs 声明它:

    表示方法已在非法或不适当的时间被调用。换言之,Java 环境或 Java 应用程序未处于请求操作的适当状态。

    【讨论】:

    • 您能说明此信息的来源吗?没有提到类似的东西here
    猜你喜欢
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    相关资源
    最近更新 更多