我们有两个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事务?
答案 0 :(得分:3)
将开始2个交易。正如EJB 3.1规范在4.5.3节中所述:
客户端事务上下文不会随异步方法调用一起传播。从Bean Developer的角度来看,从来没有从客户端流入事务上下文。这意味着,例如,异步方法上的REQUIRED事务属性的语义与REQUIRES_NEW完全相同。