我正在尝试构建一个路由,如果最终生产者未能将交换发布到目标队列,我应该能够在我的数据库中更新该特定交换中包含的对象的条目。问题是,即使交换交付失败,下面路由的onCompletion()。onFailureOnly()部分也会被执行。
from(direct:start)
.onCompletion().onFailureOnly()
.process(new MyProcessor())
.end()
.to(jms:queue:myQueue1)
例如,我尝试发布到已经满的IBM MQ队列。正如预期的那样,消息无法放入队列,但是onCompletion()。onFailureOnly()部分没有被执行。
我在这里错过了什么吗?
答案 0 :(得分:0)
我想这取决于你的骆驼版本。如果您有可能更新版本,请立即执行,它将正常工作。 否则使用.stopOnException()代替。 类似的帖子:Apache Camel 2.13.0 quit splitter