这个问题与Handling a timeout in EJB3 without using threads有些相关。
背景: 我有一个操作的例子可能会在它运行时锁定,我必须能够处理这种可能性并在发生这种情况时终止操作。解决方案必须与应用程序服务器无关,因此不能选择具有timout值的容器管理事务。
实际问题: 解决方案的一个想法是我在有状态会话bean中运行操作,并使用外部@Timeout方法来监视它,但为了使其工作,我需要能够中断或取消该会话bean。有没有办法做到这一点?
答案 0 :(得分:3)
规范说(§4.3.14):
容器序列化对每个的调用 有状态和无状态会话bean 实例。大多数容器都会支持 会话bean的许多实例 并发执行;然而,每一个 实例只看到序列化 方法调用序列。因此,一个 有状态或无状态会话bean 不必编码为 折返。
因此,当同一实例的另一个方法仍在运行时,无法调用会话bean实例的方法。