2014-10-01 74 views
1

下面是選擇異常策略不騾子工作

<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從流動引發的流動的例外戰略的一部分,控制轉移到最終的例外策略「意外的錯誤」,它不會去SQL死鎖錯誤

我是否缺少任何使它工作。

可以在任何請幫我這使它work.I'm使用是騾子服務器3.4.0 EE

預先感謝您

+1

嘗試在「意外錯誤」部分打印exception.getClass(),並檢查異常是否爲「java.sql.BatchUpdateException」。 – user1760178 2014-10-01 13:53:48

+0

該解決方案是否適合您? – user1760178 2014-10-07 13:03:50

回答

0

它是在當你

表達問題

請嘗試以下方法。

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

希望這會有所幫助。

+0

對不起,它的工作後期回覆謝謝 – madhu 2014-10-07 13:13:05

+0

請upvote答案。這有助於在再次搜索此問題時改進搜索結果。 – user1760178 2014-10-07 13:49:59