消费者抛出异常后重新传递Activemq消息

时间:2013-12-19 20:36:06

标签: jms activemq spring-jms

我有一个Spring应用程序,消费者使用消息并将它们写入数据库。我使用spring DefaultMessageListenerContainer。有没有办法使用消息,并在抛出数据库异常时将消息放回队列?

1 个答案:

答案 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