Java 当客户端VM突然终止时,无状态EJB未被钝化
我在Jboss 4.3上部署了一个有状态会话bean,Jboss.xml上的配置如下: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小时
<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或任何其他引用中执行的操作可能会阻止它被钝化。