据我所知,没有两个线程可以同时使用无状态会话bean。
就我而言,我有两个无状态会话bean。在第二个bean中,我有一个异步方法。将从第一个bean调用此方法。
我的疑问是,在第一个bean调用了一个方法并成功返回后,第一个bean是否会被另一个线程使用?
以下代码
@Stateless
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class MyBean {
@EJB(beanName="AsyncBean")
private AsyncBean asyncBean;
public String call() {
// some code here
asyncBean.call();
return result;
}
}
@Stateless(name="asyncBean")
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class AsyncBean {
@Asynchronous
public void call() {
// some code which takes some time
}
}
我想知道在线程X成功返回并且异步任务仍在运行之后,是否其他线程将使用MyBean无状态bean。
谢谢。
答案 0 :(得分:2)
是的,EJB容器可以在第一个调用方法返回后立即重用MyBean实例。 EJB容器不会等待异步调用完成。