Spring 使用MDP在单个事务中接收多个JMS消息

Spring 使用MDP在单个事务中接收多个JMS消息,spring,transactions,jms,weblogic11g,Spring,Transactions,Jms,Weblogic11g,我需要成批处理消息,比如说10条。在10个事务(或超过某个超时时间)之后,所有10个事务都将有一次提交,如果发生任何异常,所有10条消息都将回滚并重新发送 我们的应用程序运行在Weblogic 11g上,我知道使用Weblogic MDB(批处理jms消息)存在此功能 我们在应用程序中严重依赖spring,出于各种原因,我们宁愿不使用任何EJB。有没有办法使用spring MDP实现这一点?或者是否有一个工具可以实现?这不是一件需要自己实现的大事。事实上,我昨天就这么做了(尽管在c#中,它仍然反

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

我们的应用程序运行在Weblogic 11g上,我知道使用Weblogic MDB(批处理jms消息)存在此功能


我们在应用程序中严重依赖spring,出于各种原因,我们宁愿不使用任何EJB。有没有办法使用spring MDP实现这一点?或者是否有一个工具可以实现?

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

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

我遇到的一个问题是,我在一个队列上运行了多个使用者(每个使用者都提供批处理),而队列上的预取意味着我的JMS代理正在向我的使用者传递消息


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

我想做的是扩展DefaultMessageListenerContainer并覆盖receiveAndExecute(),这是spring处理事务的地方。我宁愿使用内置的spring函数,但它可能不存在。谢谢你的回复