トランザクション@Asynchronous
メソッドがステートフルなEJBを持っていて、Future<T>
を返しています。下図のようにWeb層(@SessionScoped
CDI豆)から呼び出されています:@Asynchronousメソッド呼び出し中にステートフルBeanが破棄されるとどうなりますか?
@SessionScoped
@Named
public class SessionBean {
@EJB
EjbService service
public void call() {
Future<Object> response = service.process();
}
}
@Stateful
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class EjbService {
@Asynchronous
public Future<Object> process() {
//
}
}
質問は、ユーザーがこの非同期呼び出しの実行中にWebセッションを終了した場合、トランザクションに何が起こるかですか?