Camel最佳实践、消息和异常处理



我的问题,很快:

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

我的问题是,在没有手动操作的情况下,我应该如何满足业务期望?(手动表示AcitveMQ控制台)所有解决方案都感兴趣。(我尝试按系统、无休止的再交付数量等单独的DLQ。)如果有人知道解决方案,请与我分享。

谢谢!

Feri

@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/

最新更新