【发布时间】:2013-09-09 03:29:45
【问题描述】:
我们正在使用 Apache Camel(Camel 2.10.3,基于 Java DSL)构建一个集成项目。
我们有一个从数据库中提取数据的路由(我们称之为 IN_DB),执行一些逻辑并每天一次插入另一个数据库(OUT_DB),另一个订阅 JMS 主题以获取 XML 数据的路由,执行一些操作逻辑并将其全天插入同一个数据库 (OUT_DB)。
要求是当JMS主题连接由于某种原因而断开时,我们会无限期地尝试重新连接,一旦重新连接成功,我们需要返回数据库(IN_DB)并再次加载以填补空白话题在哪里。
我的问题是我们如何在 Camel 中执行此逻辑(“我已连接,然后我断开连接,现在我再次连接”)?当主题关闭时,以主题消费者开始的路由会发生什么情况,路由会停止吗?还是会向某个错误队列发出错误消息?我是否必须编写自己的处理程序来监视主题连接,或者当主题恢复并设置一些消息头时,Camel 会自动重新连接,或者设置一些上下文变量来指示“我已连接,然后我已断开连接,现在我再次连接”的情况发生了吗?我很高兴围绕调用数据库负载构建路由逻辑我只是无法找出在 Camel 中“检测”这种情况发生的最佳方法。
非常感谢任何建议。
【问题讨论】:
标签: java jms apache-camel