次のシナリオでは、callSessionBean2()で開始されたトランザクションはどのように動作しますか?中断されていますか?SessionBean2で例外がスローされた場合はどうなりますか?SessionBean2は、データベースと通信せず、LDAP経由でADサーバーとのみ通信するため、BEANトランザクション管理タイプでセットアップされました。
デプロイメントの数週間後に実稼働サーバーで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(){...}
}