【问题标题】:Apache Camel JMS Exception LoopApache Camel JMS 异常循环
【发布时间】:2019-05-20 03:15:33
【问题描述】:
camelVersion = "2.19.1"
springVersion = "4.1.5.RELEASE"
jdk = "1.8"

正在使用 Apache Camel JMS、XA 事务 (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");

【问题讨论】:

    标签: java exception apache-camel jms


    【解决方案1】:

    经过一番研究; inOnly 和 inOut 概念有助于提出以下解决方案来首次获取队列的消息,即如果发生异常并且重试也失败。

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

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      相关资源
      最近更新 更多