选择例外策略在Mule中不起作用

时间:2014-10-01 12:50:02

标签: exception-handling mule mule-studio mule-component

以下是流程的异常策略部分

<choice-exception-strategy doc:name="Choice Exception Strategy">
            <catch-exception-strategy when="exception.causedBy(java.sql.BatchUpdateException)" doc:name="SQL deadlock error">
                <logger message="SQL EXCEPTION - RETRYING BATCH PROCESS"
                    level="ERROR"  doc:name="Payload Logger" category="asi_user"/>
                <set-variable variableName="Exception" value="User" doc:name="Exception Type"/>
                <flow-ref name="Reload_Batch" doc:name="Retry Batch Results"/>
            </catch-exception-strategy>
            <catch-exception-strategy when="exception.causedBy(com.microsoft.sqlserver.jdbc.SQLServerException)" doc:name="SQL error">
                <logger message="SQL EXCEPTION - RETRYING BATCH PROCESS"
                    level="ERROR" category="asi_user" doc:name="Payload Logger" />
                <set-variable variableName="Exception" value="User" doc:name="Exception Type"/>
                <flow-ref name="Reload_Batch" doc:name="Retry Batch Results"/>
            </catch-exception-strategy>
            <catch-exception-strategy  doc:name="Unexpected errors">
                <logger message="UNEXPECTED EXCEPTION - SEND EMAIL NOTIFICATION"
                    level="ERROR" category="asi_user" doc:name="Payload Logger" />
                <set-payload value="#[exception.cause.message]" doc:name="Set Payload"/>
                <flow-ref name="Send_Error_Notification" doc:name="Send Email Notification"/>
            </catch-exception-strategy>
        </choice-exception-strategy>

即使从流中抛出java.sql.BatchUpdateException,控件也会转到最终的异常策略&#34;意外的错误&#34;,它没有转到SQL死锁错误

我错过了什么让它发挥作用。

有任何请帮助我使它工作。我正在使用的是Mule服务器3.4.0 EE

提前谢谢

1 个答案:

答案 0 :(得分:0)

表达式出现在

以下列方式尝试。

<catch-exception-strategy when="#[exception.causedBy(java.sql.BatchUpdateException)]" doc:name="SQL deadlock error">

希望这有帮助。