activemq事务支持

时间:2012-02-24 07:01:31

标签: transactions activemq

我正在尝试开发一个多线程的activemq消费者。 消息在多个线程中处理。 是否有可能在某些异常或失败的情况下回滚特定线程的消息? 我正在调查session.rollback()和session.commit()但是如果我调用这些方法,我将如何确保特定消息被回滚?

如果我可以有选择地提交一些消息,我也是开放的。

提前致谢。

此致 Aeijit

2 个答案:

答案 0 :(得分:0)

您可以使用Session.CLIENT_ACKNOWLEDGE并回滚和提交来管理消息确认,或者最好make use of a transaction manager来处理此行为。您应该查看message redelivery and dead-letter queue handling以了解可用于处理回滚消息的选项。

答案 1 :(得分:0)

取决于您的交易边界的设置位置。通常,每个线程都有自己的事务,并将提交/回滚其事务中的所有消息。

另一个选择是只使用常规异常/重试/ DLQ策略来处理单个消息失败,这更容易并且满足大多数要求