0

这个问题与不使用线程处理 EJB3 中的超时有些相关。

背景:我有一个操作可能在运行时锁定的示例,如果发生这种情况,我必须能够处理这种可能性并终止操作。该解决方案必须与应用程序服务器无关,因此不能选择具有超时值的容器管理事务。

实际问题:我在有状态会话 bean 中运行操作并使用外部 @Timeout 方法对其进行监视的解决方案的一个想法,但要使其正常工作,我需要能够中断或取消该会话 bean。有没有办法做到这一点?

4

1 回答 1

3

规范说(§4.3.14):

容器序列化对每个有状态和无状态会话 bean 实例的调用。大多数容器将支持同时执行的会话 bean 的多个实例;但是,每个实例只能看到一个序列化的方法调用序列。因此,有状态或无状态会话 bean 不必编码为可重入的。

因此,当同一实例的另一个方法仍在运行时,无法调用会话 bean 实例的方法。

于 2011-05-27T13:44:36.753 回答