我是Spring Integration的新手,并且有一个关于对消息使用轮询器和事务支持以及max-messages-per-poll值的问题。
使用具有以下配置的轮询器时
<int:poller fixed-delay="1000" max-messages-per-poll="10">
<int:transactional transaction-manager="SomeDatabaseTransactionManager"/>
</int:poller>
文档提到轮询任务每次轮询将产生10条消息(或者直到收到null)。
每条消息是否会在其自己的事务边界中运行,即如果一条消息未能到达事务边界的末尾,则仅对失败的消息进行回滚,或者将滚动所有10条消息,这些消息将作为轮询的一部分进行滚动回来?
由于 RC
为新秀问题提前道歉。
答案 0 :(得分:2)
我几周前在Spring Forums回答了类似的问题......
底线是每条消息都在一个事务中处理。 max-messages-per-poll
只是意味着轮询器线程(在处理其自己的事务中的当前消息之后)立即尝试处理新消息,而不是等待下一轮询,直到达到mmpp。