如何在完成后使ActiveMQ / Camel从队列中删除当前消息?

时间:2015-10-28 15:17:34

标签: java jms apache-camel activemq

我有一个Camel路由,它从activeMQ队列中消耗。现在,当Camel路由处理消息时,消息将从队列中删除。

我想要的是,它保留在队列中,直到我的路由完成并且消息被转发到另一个队列,以阻止消息在我的Camel崩溃时消失。

此时,如果Camel在处理邮件时崩溃,队列中的邮件将永远丢失。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

添加acknowledgementModeName=CLIENT_ACKNOWLEDGE会使Camel仅在路由成功完成时删除消息:

from("activemq:some.queue.name?acknowledgementModeName=CLIENT_ACKNOWLEDGE")

现在我想知道,如果此消息获得某种锁定,则阻止其他Camels /线程处理相同的消息。