需要以下问题的帮助
我们有2台机器,每台机器中都安装了2个websphere单元。机器1(X1和X2单元)机器2(Y1和Y2细胞)
我们在X1单元上安装了web应用程序,该单元具有EJB客户端组件,该组件调用安装在4个单元(即X1、X2、Y1和Y2)上的EJB组件上的业务方法。EJB客户端组件使用IIOP URL查找,使用InitalContext类查找主接口。
EJB客户端组件与B1和B2的通信正常进行,没有任何问题。但与X2小区的通信没有正常进行(在日志中没有看到任何家庭接口查找问题),它以某种方式调用了X1服务器上的业务方法。
我们有一个普通的Java客户端,它使用main()
方法来调用所有四个服务器。此设置已启动&投产2年。但问题开始于我们在Web应用程序中移动了调用四个服务器的逻辑,而不是main()。
X1和X2在同一台物理机器上有什么区别?
如果服务器具有相同的名称,那么我怀疑您需要在这篇信息中心文章的"在同一主机上运行的两个具有相同名称的服务器正在用于互操作"中指定com.ibm.websphere.orb.uniqueServerName
属性:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/rtrb_namingprobs.html
我曾经在一个测试系统上遇到过这个问题。如果WebSphere(错误地)确定EJB实际上在本地服务器中运行,就会发生这种情况。在我的案例中,两台服务器在同一台主机上运行,并配置了相同的服务器名称(server1)。不幸的是,我不知道任何解决方案(除了用不同的服务器名称重新安装其中一台服务器)。