ORB 转发到错误的位置
Posted
技术标签:
【中文标题】ORB 转发到错误的位置【英文标题】:ORB forwards to a wrong location 【发布时间】:2010-06-16 08:26:49 【问题描述】:我有一个在虚拟主机(IP A)上启动的orbd,并注册了一些远程对象。托管虚拟盒子的盒子具有 IP B。当客户端尝试连接到 A 处的 ORB 以获取 NamingContext 时,ORB 会回复一个 LocationForward 消息,指向主机 B 和端口 1049(就像另一个 ORB 将启动在那个主机上)。 NamingContext 已成功返回,但显然我无法通过名称获取在 NamingContext(在 A 托管的 ORB 上)注册的对象。 谁能解释发生了什么?如何远程访问托管在 A 的球体? 提前致谢。
【问题讨论】:
您是如何启动 orbd 的?您是否使用“-ORBInitialHost”指定主机 A? 是的,我试图指定它,但没有运气 我还没有尝试过:如果您使用的是 SUN 的 orb,则有一个属性可以让您控制正在使用的主机名:java.sun.com/j2se/1.4.2/docs/guide/idl/jidlExceptions.html。其他 orb 提供程序使用不同的属性(例如 com.ibm.CORBA.BootstrapHost) 感谢您的回复。是的,我正在使用默认的 Sun ORB (bin/orbd)。据我了解,指定 com.sun.CORBA.ORBServerHost 等于在参数列表中传递 -ORBInitialHost。 不,它不等效:“为避免调用 getHostName,您可以设置以下属性...”。请参阅上面的链接页面。 【参考方案1】:我最近遇到了一个非常相似的问题。我有一个在虚拟机上运行 ORB 的设置,一旦它启动,主机上的端口 1049 就会打开,就像它是在默认端口后面运行的另一个 ORB。我的问题是防火墙,它阻止了与此端口的连接。一旦我打开它,一切都开始正常工作了。
【讨论】:
【参考方案2】:我不确定你的具体情况,但是,我经常在带有 java 的 unix 机器上看到这种行为,这些机器有一个 /etc/hosts 文件。
例如,假设带有 orb 的服务器在 dns 中名为“server.foo.com”,IP 地址为 192.168.0.2,但它的 /etc/hosts 文件显示“127.0.0.1 服务器 server.foo .com”。
当客户端使用 dns 连接到 orb 以解析 server.foo.com 时,orb 回复 127.0.0.1,而不是 192.168.0.2。
解决方法是将 /etc/hosts 更改为具有
127.0.0.1 本地主机
192.168.0.2 服务器 server.foo.com
【讨论】:
感谢您的回复!这似乎是正确的——我今天将根据我的配置来验证它以上是关于ORB 转发到错误的位置的主要内容,如果未能解决你的问题,请参考以下文章