2011-11-06 49 views
2

我使用直到成功爲了重試連接多次,在我的情況下重試策略耗盡,我想優雅地記錄錯誤(沒有引發異常) 。 我使用默認異常策略試過了,就像這樣:DLQ,直到成功和例外

<until-successful objectStore-ref="objectStore" 
     deadLetterQueue-ref="ErrorHandler" maxRetries="${TMSService.numOfRetries}" 
     secondsBetweenRetries="${TMSService.retrySecInterval}"> 
     <outbound-endpoint address="${TMSService.host}" /> 
    </until-successful> 
    <default-exception-strategy> 
     <vm:outbound-endpoint path="ErrorMsgs" /> 
    </default-exception-strategy> 

但是,這仍然不會捕獲了異常,這將是處理這個正確的方式?

感謝 感謝

回答

2

的,直到成功的消息處理器不會引發異常(除非是一個技術問題,可能與它的對象存儲),阻止其排隊等待傳遞的消息。

如果你想找出導致最後一次傳送錯誤的異常,你應該在被分派到你的DLQ端點的MuleMessage的異常有效載荷中找到。

+0

嗯...再次感謝您的迴應。但即使我設法記錄mulemessage中的異常。仍然有一個異常被拋出(而沒有被捕獲) - 我的意思是,如果我在eclipse中查看,仍然顯示一個異常(並沒有正確捕獲)。 – Menyh

+0

不應該是這樣的:請在MuleSoft上提交JIRA,並在完整的堆棧跟蹤中完成,但在策略耗盡時處理不當。請在這裏指出JIRA號碼。 –

+0

當然,這個錯誤是我的,它現在按預期工作 – Menyh