【发布时间】:2012-09-09 15:26:30
【问题描述】:
我正在编写一个 Camel 应用程序(在 ServiceMix v4.4.2 中运行),该应用程序需要能够处理异常(使用死信队列来存储消息以供以后重试)并且能够从中断的地方开始,如果硬件死了。我认为我需要混合使用事务和错误处理程序,但不确定如何开始。
任何有关相关教程的建议或指针都会很棒。
【问题讨论】:
标签: transactions apache-camel osgi apache-servicemix
我正在编写一个 Camel 应用程序(在 ServiceMix v4.4.2 中运行),该应用程序需要能够处理异常(使用死信队列来存储消息以供以后重试)并且能够从中断的地方开始,如果硬件死了。我认为我需要混合使用事务和错误处理程序,但不确定如何开始。
任何有关相关教程的建议或指针都会很棒。
【问题讨论】:
标签: transactions apache-camel osgi apache-servicemix
您可以在以下位置查看我的教程: http://www.liquid-reality.de/x/JgBz
这不是您正在寻找的,而是类似的。它展示了如何创建事务路由以及如何为其设置 jms。不同之处在于教程路线以 jpa 组件开头。所以我会解释如何用 jms 来做。
对于带有死信队列的 jms,您将执行一个发送到死信队列的 onException 子句。这涵盖了骆驼能够处理问题的情况。如果发生硬件故障,jms 事务将回滚,消息将保留在原始队列中,并在路由再次出现时重试。理想情况下,您还将设置您的 jms 提供程序以在 n 次重试后发送到死信队列。这将捕获由于某种原因消息总是回滚的情况。
【讨论】: