0

我正在尝试将我的 CORBA 服务绑定到多个 NameServices。代码如下(简化):

org.omg.CORBA.Object objRef = orb.string_to_object("corbaloc::127.0.0.1:1337,:127.0.0.1:1338/NameService");
NamingContextExt ctx = NamingContextExtHelper.narrow(objRef);
NameComponent path[] = { new NameComponent("toto", "") };
ctx.rebind(path, new MyObject());

VisiBroker 8.5 库接受 corbaloc URI,但服务仅绑定到 1337 端口。

编辑:我知道手动绑定到多个 NameServices 应该可以工作,但是 corbaloc URI 应该可以完成这项工作。

这里有 CORBA 专家吗?

谢谢!

4

1 回答 1

1

不幸的是,多地址 corbaloc URI 的行为方式并不像您希望的那样。如果发生故障,额外的地址仅被视为备份。唯一将被“选择”的将是列表中第一个响应的。这是一些描述其行为的文档。

您必须手动将对象引用绑定到每个命名服务,除非您的命名服务实现支持某种复制(我不确定 Visibroker 是否支持)。

于 2011-05-29T03:56:15.183 回答