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