将对象绑定到多个NameServices

时间:2011-05-28 17:04:45

标签: corba nameservice

我正在尝试将我的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专家吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

不幸的是,多地址corbaloc URI的行为方式与您不同。如果发生故障,额外的地址仅作为备份处理。唯一一个将被“选中”的将是列表中第一个回应。这是描述其行为的some documentation

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