2

我的机器中有两个配置文件,在一个配置文件中我部署了一个 EJB,可以从另一个配置文件中的 POJO 中查找该 EJB。但是我从中进行查找的配置文件最终会在其自己的节点中进行查找。如果我将这两个应用程序部署在两台不同的机器上,我可以执行查找。有人告诉我在 WAS 中创建虚拟机名称会有所帮助,但我不知道如何使用它。有人可以帮助我如何解决这个问题吗?

谢谢,

克什蒂·古普塔

4

2 回答 2

4

“但我从中进行查找的配置文件最终会在其自己的节点中进行查找。”

让我确保我明白你在说什么:

您的应用程序在配置文件 A 中运行,您的 EJB 部署在配置文件 B 中。

在配置文件 B 中,我们有一些节点,N1,N2,......在进行查找时,应用程序连接到其中一个节点,例如 N2,默认情况下,在 N2 中进行查找时,我们会看到与节点 N2 关联的 JNDI 树,这可能不是 EJB 注册其名称的地方。

那是你的问题吗?

如果是,那么有两种可能的方法。

  1. 从单元格开始导航 JNDI
  2. 使用单元格/持久分区 - 我推荐这个

选项 1:从任何节点都可以看到整个 JNDI 树。请参阅InfoCenter 中的 JNDI 图。然后,您可以通过指定这种样式的路径来导航层次结构

cells/<mycell>/nodes/<ejbNode>/... etc.  

从任何地方。

这种方法的问题是应用程序需要了解单元的拓扑结构。如果节点名称(或集群名称)应更改,则查找字符串将更改。这是一个脆弱的解决方案。

选项 2:相反,将 EJB 寄存器放在 JNDI 树中的稳定位置。这就是单元持久分区的用途。您首先修改 EJB(或其 DD)以将名称指定为

cell/persistent/myEjb

然后在查找中使用该字符串。

于 2009-09-15T07:23:33.960 回答
0

这几天在客户机器上安装时遇到了这个问题。我花了 4 天的时间苦苦挣扎,为什么它不起作用我不知道你是如何这么快发现这个的,但解决方案非常简单:

如果您在同一主机名上有 2 个 WAS,则客户端 WAS 认为服务器是相同的,因此它将避免通过 CORBA 进行查找,我们解决了将 2 个 WAS 绑定到 2 个不同的主机名和 IP 地址的问题。这可以解决问题。

于 2012-12-07T20:18:31.300 回答