我有一个Spring应用程序,消费者使用消息并将它们写入数据库。我使用spring DefaultMessageListenerContainer。有没有办法使用消息,并在抛出数据库异常时将消息放回队列?
答案 0 :(得分:1)
setSessionTransacted(true)
如果您使用命名空间配置容器,请使用
<jms:listener-container acknowledge="transacted" ...>
<jms:listener ... />
</jms:listener-container>
您还可能希望通过将JDBC事务管理器添加到容器配置来同步数据库和JMS事务。
请参阅Dave Syer's Javaworld Article about Distributed transactions in Spring, with and without XA