【发布时间】:2023-03-26 23:22:02
【问题描述】:
EJB 2.0 对象句柄(从 getHandle() 检索)如何帮助在与服务器断开连接后恢复?当发生断开连接时,服务器端的 EJB 对象骨架将被垃圾收集,bean 实例也将被收集。会话状态是否保存在客户端从getHandle()获取的stub中?
【问题讨论】:
EJB 2.0 对象句柄(从 getHandle() 检索)如何帮助在与服务器断开连接后恢复?当发生断开连接时,服务器端的 EJB 对象骨架将被垃圾收集,bean 实例也将被收集。会话状态是否保存在客户端从getHandle()获取的stub中?
【问题讨论】:
javax.ejb.Handle 最终只是一个 RMI 存根的包装器,它知道在反序列化时如何重新连接到服务器的 ORB。 (通常,反序列化的存根会抛出关于“缺少委托”的错误,因为它尚未重新连接到 ORB)。
对于无状态和实体 bean,没有会话状态,所以我假设您询问的是有状态 bean。对于有状态 bean,会话状态始终存储在服务器上,而不是客户端上。会话状态不会被保存,因此句柄只会在服务器上的实例超时之前有效。
【讨论】: