如果有一个MDB在事务中接收消息,然后执行几个EJB调用,如果我调用其中一个EJB的this.sessionContext.setRollbackOnly(),这是否会触发JMS消息的重新传递?
所有的EJB方法都标记有Requires_New事务属性。
发布于 2011-09-15 05:48:59
不会,因为在处理使用@REQUIRES_NEW注释的EJB时,MDB的事务将被挂起-每个EJB都在其自己的事务中。其他假设是setRollbackOnly()是回滚EJB事务的唯一效果,即EJB正确退出并且没有抛出任何异常(在投票支持回滚之后,与资源的进一步交互可能导致抛出来自javax.ejb.EJBException系列的异常)。
https://stackoverflow.com/questions/7397868
复制相似问题