Привязать объект к нескольким NameServices - PullRequest
0 голосов
/ 28 мая 2011

Я пытаюсь привязать свой 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 принимают URI corbaloc, но служба привязана только к порту 1337.

РЕДАКТИРОВАТЬ: я знаю, что ручная привязка к нескольким NameServices должна работать, но corbaloc URI должен делать эту работу.

Здесь есть какой-нибудь эксперт по CORBA?

Спасибо!

1 Ответ

1 голос
/ 29 мая 2011

К сожалению, многоадресные URI-адреса corbaloc ведут себя не так, как вам хотелось бы. Дополнительные адреса просто рассматриваются как резервные копии на случай сбоя. Единственный, кто будет «выбран», будет первым, кто ответит в списке. Вот некоторая документация , которая описывает его поведение.

Вам придется вручную привязывать ссылку на свой объект к каждой службе имен, если только ваша реализация службы имен не поддерживает какую-либо репликацию (я не уверен, что Visibroker поддерживает).

...