Camel发送多条消息,消息仍然未提交。如何提交

时间:2015-11-27 13:14:04

标签: java apache-camel

在单个路由中,我尝试循环并将多条消息发送到最终队列。但我看到队列中的消息是Uncommitted。只有在我的路由处理完成后才会提交消息。

我想在将消息放入队列后立即在camel中提交消息。

示例路线:

<route >    
<from uri="queue1" />
<process ref="Processor1" />
<to uri="direct:loop" /> 
</route>
<route>
<from uri="direct:loop"/>
<loop>
<constant>5</constant>
<process ref="Processor2"/>
<to uri="queue2"/>
</loop>
</route>

对于上述路由,我需要在处理器2中的exchange.out中发送消息集并发送5次。

目标队列中的消息计数为5,但在调试时我发现发送的消息仍未提交。

1 个答案:

答案 0 :(得分:1)

我发现问题是由Camel中的事务引起的。进出被视为一次交易。所以我的所有消息都进入队列但是作为未提交的消息。为了解决这个问题,我使用了JMS传播PROPAGATION_REQUIRES_NEW。

这解决了我的问题。任何人都有更好的建议。