2

如果我调用其中一个 EJB 的 this.sessionContext.setRollbackOnly() ,让 MDB 在事务中接收消息,然后执行多个 EJB 调用,这会触发 JMS 消息的重新传递吗?

所有 EJB 方法都标有 Requires_New 事务属性。

4

1 回答 1

1

不,因为 MDB 的事务将在@REQUIRES_NEW处理带有注释的 EJB 时暂停——每个都在自己的事务中。额外的假设是setRollbackOnly()回滚 EJB 事务的唯一效果,即 EJB 正确退出并且没有抛出任何异常(在投票支持回滚之后,与资源的进一步交互可能会导致javax.ejb.EJBException家族中的异常被抛出)。

于 2011-09-14T21:48:59.197 回答