异步ejb方法调用中的事务传播

时间:2015-01-03 13:28:01

标签: java transactions ejb ejb-3.0 ejb-3.1

我们有两个EJB会话bean,如下所示;

@Stateless
public class MyStatelessSessionBean{
      @EJB
       MyStatefulSessionBean statefulBean;
      public void methodA(){
          statefulBea.methodB();
      }
}

@Stateful
@ TransactionAttribute(TransactionAttributeType.REQUIRED)
public class MyStatefulSessionBean {
     @Asynchronous
     public void methodB(){
     }

}

任何事务中都没有的客户端调用MyStatelessSessionBean的methodA。所有处理完成后,容器将启动多少个distict事务?

1 个答案:

答案 0 :(得分:3)

将开始2个交易。正如EJB 3.1规范在4.5.3节中所述:

  

客户端事务上下文不会随异步方法调用一起传播。从Bean Developer的角度来看,从来没有从客户端流入事务上下文。这意味着,例如,异步方法上的REQUIRED事务属性的语义与REQUIRES_NEW完全相同。

相关问题