1

我需要批量处理消息,比如说 10 个。在 10 个事务(或某个超时时间过去)之后,所有 10 个事务都会有一个提交,如果发生任何异常,所有 10 个消息都将回滚并重新传递。

我们的应用程序在 Weblogic 11g 上运行,我知道使用 weblogic MDB 存在此功能(批处理 jms 消息http://docs.oracle.com/cd/E13222_01/wls/docs90/bridge/tuning.html)。

我们在我们的应用程序中严重依赖 spring,并且出于各种原因宁愿不使用任何 EJB。有没有办法使用弹簧 MDP 来实现这一点?或者有什么工具可以做到吗?

4

1 回答 1

0

自己实现这并不是一件大事。实际上我昨天就做到了(尽管在 c# 中它仍然反对 JMS)

所以虽然我不能给你一个直接的答案,但我可以告诉你我在实现相同要求时的经验

我遇到的一个问题是我在一个队列上运行多个消费者(每个都提供批处理)并且队列上的预取意味着我的 JMS 代理正在循环向我的消费者传递消息

这是完全可以接受的行为,但有点违背批处理的想法。我最终在消费者之间滚动了我自己的同步机制,以协调谁在消费,更重要的是关闭预取。

于 2012-03-21T15:03:12.680 回答