CORBA.TRANSIENT 的考虑事项:初始和转发的 IOR 不可访问 vmcid:IBM 次要代码:E07 错误
Posted
技术标签:
【中文标题】CORBA.TRANSIENT 的考虑事项:初始和转发的 IOR 不可访问 vmcid:IBM 次要代码:E07 错误【英文标题】:What to consider with CORBA.TRANSIENT: initial and forwarded IOR inaccessible vmcid: IBM minor code: E07 error 【发布时间】:2012-11-05 16:44:39 【问题描述】:BLUF:尝试将独立客户端连接到 WebSphere 中的 Extreme Scale 缓存时,我收到了一个异常,这有点误导,因此我在此处提供了解决方案。
我在 WebSphere Application Server (WAS) v8.5 中成功安装了 WebSphere Extreme Scale (WXS) v8.5(注意:不要尝试在 Installation Manager 中同时安装,否则文件将丢失——单独安装) .我还成功安装了客户端和服务器 EAR,因此我可以对客户端使用 REST 服务,而客户端又会连接到服务器以访问缓存。但是,当我尝试从 java 命令行(或从 Eclipse 中)运行独立客户端时,我遇到了以下异常:
java.lang.Throwable: org.omg.CORBA.TRANSIENT: initial and forwarded IOR inaccessible vmcid: IBM minor code: E07 completed: No
at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1272)
...
Caused by: java.lang.Throwable: connect: Address is invalid on local machine, or port is not valid on remote machine
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:381)
在 ObjectGridManager 上调用 connect 时:
_client = _ogManager.connect(hostport, null, clientObjectGridURL);
首先要检查的是 objectGridClient.properties 文件中的主机和端口号是否正确(例如,端口号将与应用程序服务器的端口列表中的 BOOTSTRAP 端口匹配)。就我而言,这是正确的。使用 netstat -an |grep 查看是否有人在监听端口,或者 telnet 到主机端口。
接下来要检查的是防火墙没有妨碍到端口的连接。服务器也有对客户端的回调,因此您需要检查这是否没有造成问题。就我而言,这不是问题。
【问题讨论】:
【参考方案1】:问题出在我配置 WAS 时启用了一般安全性,因此管理控制台需要用户 ID 和密码。但是,当我调用 ObjectGridManager 进行连接时,我传递了一个 null 作为第二个参数,而不是传递正确的 ClientSecurityConfiguration 对象。显然,如果您已保护 WAS,则尝试连接到 WAS 中缓存的外部客户端需要提供安全信息以验证是否允许它们连接。
我选择使用管理控制台/安全性/全局安全性关闭 WAS 安全性并取消选中启用管理安全性。这允许我通过传递 null 来继续测试,并推迟打开安全性并添加适当的安全配置设置并在连接调用中提供适当的对象,直到我们准备好在共享环境中进行测试(我的开发环境是自包含的我的笔记本电脑没有连接到公共网络)。
我已经包含了这个解释,希望其他人能找到解决这个问题的方法 问题可以在这里找到,因为我没有成功找到解释这个替代方案。
【讨论】:
【参考方案2】:始终仔细检查您的存根类是否真的到位并且在部署中可用。听起来很简单,但这就是我遇到的问题......
所以这个错误的原因可能是多种多样的。
【讨论】:
以上是关于CORBA.TRANSIENT 的考虑事项:初始和转发的 IOR 不可访问 vmcid:IBM 次要代码:E07 错误的主要内容,如果未能解决你的问题,请参考以下文章
org.omg.CORBA.TRANSIENT:初始和转发的 IOR 不可访问 vmcid:IBM 次要代码:来自 IIB 应用程序的 E07