当前位置: 首页 > 知识库问答 >
问题:

Ejb 2.0用于有状态bean的句柄

荆修明
2023-03-14

EJB2.0对象处理(从getHandle()检索)如何帮助在从服务器断开连接后恢复状态bean?

在我们的应用程序体系结构中,我们将有状态bean的句柄保留在客户端的缓存中。如果集群中创建有状态bean的节点由于某种原因关闭,句柄会将下一次对有状态bean的调用重定向到新节点吗?有没有任何配置,我们可以做,如果一个节点关闭,然后重新路由调用的状态Bean到集群中的另一个节点?

共有1个答案

轩辕越泽
2023-03-14

我不能确切地告诉您WebLogic是如何处理有状态bean的故障转移的,但是EJB2允许服务器在没有警告的情况下永久删除statfeul实例-例如,如果它长时间处于非活动状态,或者服务器崩溃。发生这种情况时,如果调用handle.getEjbObject(),将得到一个RemoteException

从Head First EJB:

如果你在购物时得到一个手柄[讨论钝化]...如果你在一段时间内仍然没有回来,服务器将摧毁你的推车,没有希望复活它。那颗豆子是历史了。在这种情况下,当您在句柄上调用getEjbObject()时,购物车将不在那里,您将得到一个RemoteException

因此,您的句柄引用的有状态bean绝对有可能消失,并且您应该处理这个异常,以防发生任何这些场景,尽管我不能确定是否一个节点故障会导致它。

 类似资料:
  • 问题内容: 我试图将远程句柄持久化为有状态EJB3.0 bean。该bean的接口已定义: 实现是: 根据EJB Spec,那应该抓住我一个可序列化的句柄。但是我得到了: 我不确定我理解我做错了什么…所有有状态的bean应该具有可序列化的句柄。在EJB3.0中是否有“正确”的方法来获取可序列化的句柄? 问题答案: getEJBObject不适用于EJB 3.0编程模型。您将需要使用@RemoteH

  • 有状态会话bean是一种企业bean,它保留与客户端的会话状态。 有状态会话bean根据其名称在其实例变量中保持关联的客户端状态。 EJB容器创建一个单独的有状态会话bean来处理客户端的每个请求。 一旦请求范围结束,就会销毁statelful会话bean。 创建有状态EJB的步骤 以下是创建有状态EJB所需的步骤 - 创建公开业务方法的远程/本地接口。 EJB客户端应用程序将使用此接口。 如果E

  • 问题内容: 我正在阅读Java EE 6教程,试图理解无状态会话bean和有状态会话bean之间的区别。如果无状态会话bean在方法调用之间没有保持其状态,为什么我的程序按原样运行? 客户端 我原本希望getNumber每次都返回0,但它返回1,并且在浏览器中重新加载servlet会使它更多。问题在于我对无状态会话Bean如何工作的理解,而与库或应用程序服务器无关。有人可以给我一个无状态会话bea

  • 对于有状态会话bean(SFSB)和无状态会话bean(SLSB)的用法,我有点困惑。 我知道SFSB与客户保持状态。这很有帮助:什么时候使用有状态会话bean而不是无状态会话bean? 这里和许多其他地方提供的示例是SFSB的购物车。 “如果一个任务需要一系列方法调用(不止一次),并且您需要保留以前的结果以在下一次调用中使用它们,那么就可以使用SFSB”--Source。这将更像是签出(页面之间

  • 问题内容: 有状态会话Bean定义如下: 有状态会话Bean对象的状态由其实例变量的值组成。在有状态会话Bean中,实例变量代表唯一的客户端Bean会话的状态。因为客户端与其bean进行交互(“交谈”),所以这种状态通常称为对话状态。 无状态会话Bean定义如下: 无状态会话Bean无状态会话Bean不会与客户端保持对话状态。当客户端调用无状态Bean的方法时,该Bean的实例变量可能包含特定于该

  • 我是JavaEE的新手,我试图找出无状态和有状态会话bean之间的区别。到目前为止我所理解的: 1.)在有状态会话bean中,bean的状态与客户机绑定;因此,只要我们与同一个用户在同一个会话中,就应该有相同的bean实例状态 2.)在无状态会话bean中,没有绑定到会话和客户机的状态;事实上,bean实例可以在用户的每次调用或请求中进行交换 为了尝试这一点,我编写了一个简短的servlet,它只