在 callSessionBean2() 中启动的事务在以下场景中将如何表现?是否暂停?如果在 SessionBean2 中抛出异常会发生什么?SessionBean2 设置为 BEAN 事务管理类型,因为它不与任何数据库通信,仅通过 LDAP 与 AD 服务器通信。
我之所以问,是因为在部署后的几周内,我在生产服务器中遇到问题,对 SessionBean2 的调用开始挂起,事务超时是唯一的错误。我认为这个设置可能是一件坏事,有人能解释一下吗?
@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
public class SessionBean1 {
@Inject private SessionBean2 sessionBean2;
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void callSessionBean2(){
sessionBean2.doThingsThatMightCauseException();
}
}
@Singleton
@TransactionManagement(TransactionManagementType.BEAN)
public class SessionBean2 {
public void doThingsThatMightCauseException(){...}
}