Apache Camel JMS异常循环


camelVersion = "2.19.1"
springVersion = "4.1.5.RELEASE"
jdk = "1.8"

正在与Apache Camel JM,XA Transactions(Atomikos)和Java/Spring合作。添加了一些代码来处理骆驼路由和业务逻辑处理过程中可能发生的异常,即使用OneXception。以下是我们陷入例外后的问题之前的实际代码,onexception代码像指定的数字一样处理它;将控件发送到错误处理程序,然后一次又一次地进行循环和处理相同的消息,并在例外发生时采取相同的操作。

onException(Exception.class)
.log("Exception caught")
.redeliveryDelay(redliveryDelay) //delay time
.setHeader("exception", simple("${exception}"))
.maximumRedeliveries(redelivery) //number of retries                
.process("errorHandler");

在进行一些研究之后;不合理和inot概念有助于提出以下解决方案,以第一次获取队列的消息,即如果发生异常并且检索也失败。

onException(Exception.class)
.log("Exception caught")
.redeliveryDelay(redliveryDelay)
.setHeader("exception", simple("${exception}"))
.maximumRedeliveries(redelivery)                    
.process("errorHandler")
.handled(true)
.inOnly();

最新更新