OnCompletion.onFailure在路由失败时无法正常工作

时间:2016-04-28 23:11:04

标签: java apache apache-camel jms

我正在尝试构建一个路由,如果最终生产者未能将交换发布到目标队列,我应该能够在我的数据库中更新该特定交换中包含的对象的条目。问题是,即使交换交付失败,下面路由的onCompletion()。onFailureOnly()部分也会被执行。

from(direct:start)
    .onCompletion().onFailureOnly()
    .process(new MyProcessor())
    .end()
    .to(jms:queue:myQueue1)

例如,我尝试发布到已经满的IBM MQ队列。正如预期的那样,消息无法放入队列,但是onCompletion()。onFailureOnly()部分没有被执行。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我想这取决于你的骆驼版本。如果您有可能更新版本,请立即执行,它将正常工作。 否则使用.stopOnException()代替。 类似的帖子:Apache Camel 2.13.0 quit splitter