2011-05-28 31 views
0

我試圖將我的CORBA服務綁定到多個NameServices。 代碼如下(簡化):將對象綁定到多個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

不幸的是,多地址corbaloc URIs並不像您希望的那樣行事。額外的地址在失敗的情況下被視爲備份。唯一將被「選擇」的將是列表中的第一個作出迴應。這裏是some documentation,描述它的行爲。

除非您的命名服務實現支持某種複製(我不確定Visibroker是否支持),否則您必須手動將對象引用綁定到每個命名服務中。