0

据我所知,MDB 只能使用 AUTO_ACKNOWLEDGE 和 DUPS_OK_ACKNOWLEDGE。我想要像 CLIENT_ACKNOWLEDGE 这样的东西来避免 XA 事务。

基本上我想要的:获取消息->启动本地事务->执行数据库操作->结束本地事务->确认消息

你知道如何实现这一目标吗?

目前我使用 Jboss 5.1.GA。

4

1 回答 1

0

我在这里找到了对 MDB 策略的全面描述。

AFAIK 无法手动执行 ack,但如果我们使用 Bean Managed Transaction,则在 onMessage 方法出现异常的情况下不会发生 ack。所以我们可以“手动”开始和完成我们的事务,如果出现异常,我们的消息将不会被确认。

于 2012-11-19T19:29:23.907 回答