两个WAS配置文件共享同一台机器时的JNDI查找

时间:2009-09-15 02:44:32

标签: websphere jndi

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

谢谢,

Kshitij Gupta

2 个答案:

答案 0 :(得分:4)

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

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

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

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

这是你的问题吗?

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

  1. 从单元格
  2. 开始导航JNDI
  3. 使用单元格/持久分区 - 我建议使用
  4. 选项1:从任何节点都可以看到整个JNDI树。请参阅信息中心中的the JNDI diagram。然后,您可以通过在此样式中指定路径来导航层次结构

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

    来自任何地方。

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

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

    cell/persistent/myEjb
    

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

答案 1 :(得分:0)

我今天在客户机器上安装时遇到了这个问题。 我花了4天时间为什么不工作而苦苦挣扎我不知道你是怎么这么快发现的 但解决方案很简单:

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