骆驼最佳实践,消息和异常处理

时间:2015-02-05 13:55:05

标签: exception-handling jms apache-camel

我的问题,很快:

我必须编写系统,ServiceMix发布什么数据。目标端点是Web服务。这是真正的可能性,其中一个或多个停止了。 业务流程需要正确的消息顺序。 因为每个系统都有一个专用队列,所以包含消息。目标Web服务已由专用路由调用,其中端点的定义由动态路由器发生。 如果没有错误,它可以正常工作,但...... 如果发布不成功,则消息登陆DLQ。 我理解它的逻辑,但我认为这个问题不仅仅是我的。 我想将消息保留在原始队列中,与消息到达的位置相同。我可以停止队列处理器路由,然后我可以重新启动它。这足以处理输出错误。

我的问题是,如果没有人工操作,我应该如何满足业务预期? (手动意味着AcitveMQ控制台) 所有解决方案都感兴趣(我通过系统尝试单独的DLQ,无休止的重新发送号码等) 如果有人知道解决方案,请与我分享。

谢谢!

FERI

1 个答案:

答案 0 :(得分:0)

@Feri您需要使用JMS消息传递和客户端确认,即如果您的路由成功传递到Web服务,则向JMS代理发送肯定确认,否则发送否定。因此,只有在成功传递消息时,消息才会标记为已出列,否则它将保留在队列中。阅读有关JMS中消息传递的更多信息,请参阅

  1. http://www.javaworld.com/article/2074123/java-web-development/transaction-and-redelivery-in-jms.html
  2. http://wso2.com/library/articles/2013/01/jms-message-delivery-reliability-acknowledgement-patterns/