Java 当客户端VM突然终止时,无状态EJB未被钝化

Java 当客户端VM突然终止时,无状态EJB未被钝化,java,jboss,ejb,Java,Jboss,Ejb,我在Jboss 4.3上部署了一个有状态会话bean,Jboss.xml上的配置如下: <cache-config> <idle-timeout-seconds>7200</idle-timeout-seconds> <remove-timeout-seconds>8000</remove-timeout-seconds> </cache-config> 7200 8000 即: 应在闲置2小时

我在Jboss 4.3上部署了一个有状态会话bean,Jboss.xml上的配置如下:

<cache-config>
      <idle-timeout-seconds>7200</idle-timeout-seconds>
      <remove-timeout-seconds>8000</remove-timeout-seconds>
</cache-config>

7200
8000
即:

应在闲置2小时后钝化豆子,并在2小时15分钟后移除豆子

问题是:当客户端VM突然终止时,bean既没有被钝化也没有被移除

有没有办法避免这种情况

容器只能在以下情况下钝化有状态会话bean实例: 实例不在事务中

容器不能使用 扩展持久性上下文,除非满足以下条件:

  • 持久性上下文中的所有实体都是可序列化的
  • EntityManager是可序列化的
与有状态会话bean关联的任何拦截器类都必须是可序列化的


引用可能会限制bean被钝化。

我没有使用bean事务管理,也没有使用持久性。也没有拦截器。它可以在事务中,无论是由bean还是由容器处理。此外,在bean或任何其他引用中执行的操作可能会阻止它被钝化。