2011-05-28 17 views
1

我对JNDI和clustring几个问题:在JNDIJNDI集群

  1. 当部署一个EJB是它自动地“注册”?

  2. 我读了acessing的WebSphere群集EJB我需要查找类似:“细胞/集群// EJB/... - 是‘细胞’概念的Websphere概念或J2EE概念

  3. 我有一个奇怪的需求 - 我想集群,但不是必然使用WebSphere - 也就是说,我有一个WebSphere集群:服务器A和B的C consisitng,还有另一个部署了不同应用程序的websphere服务器D A和B,但具有相同的SessionBean接口,相同的API。我希望能够创建对EJB的负载平衡/集群调用,并让它在A上执行,一次在B上执行,一次在D上执行。

回答

1
  1. 不,但它取决于EJB的部署描述符/注释。
  2. 这是来自WebSphere的一个术语(http://itdevworld.wordpress.com/2009/05/03/websphere-concepts-cell-node-cluster-server/)。
  3. 就我所知,如果您将EJB部署到集群,它会自动进行负载平衡。
1
  1. 是的,在部署EJB之后,EJB总是可用于通过JNDI进行查找。这是EJB规范的要求。它所插入的名称是标准化的。请参阅维基百科上的EJB-Naming and directory services
  2. “cell”是Websphere特有的。尽管通常的Java EE规范,特别是EJB规范都假设存在集群,并且为简化集群而提出了一些限制,但令人惊讶的是,定义的API和命名标准非常少,可以明确地处理集群问题(JCA 1.6是少数几个想到)。
  3. 这听起来很奇怪。如果我理解正确,总共只允许3个呼叫(1对A,1对B和1对D),然后所有服务应该停止?也许你不应该想这样的事情;)
+0

我认为他想WLM循环赛路由。 – 2011-05-29 15:41:33

+0

的确可以;)也许它更适合作为关于负载平衡策略的单独问题的主题。 – 2011-05-29 16:40:47

0
  1. 当EJB应用程序启动时登记实际上是完成的。它使用DD信息向WAS JNDI服务器注册

  2. 你所指的是被称为完全限定的JNDI名称。您应该尝试不使用它,只需使用本地JNDI名称。为什么?完全限定名称具有特定于拓扑的信息,并且您不会在应用程序中使用这些信息,因为开发,测试和产品环境之间的拓扑结构会有所不同。本地名称空间的整体思想是隐藏各个供应商的存储方式,并且应用程序不依赖于供应商实现(0128)。所有属于hte集群的服务器。实际上,如果服务器是群集的一部分,则无法将应用程序部署到该服务器。它只能部署到群集级别,WAS基础架构将相同的应用程序部署到所有群集成员。

循环法是可以在服务器上配置的WLM策略。另一种选择是对每个集群成员进行加权。

HTH

Manglu