![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемы с Naming Service
А. Н. Оним © (2002-07-29 09:38:00)Привет всем, в мире CORBA я сравнительно недавно и натолкнулся на непонятную для себя ошибку с ипользованием Naming Service с первых шагов.
В двух словах - не могу достучаться до NameService'а как такового вообще. Выполняю следующую последовательность действий (работаю под C++ Builder 6, VisiBroker 4.5, OS - Win2000 Professional):
* Запускаю Smart Agent
* Запускаю NameService (Smart Agent репортует о его появлении)
* Выполняю примерно следующую последовательность в программе
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
CORBA::Object_var POAObject = orb->resolve_initial_references("NameService");
* Получаю Exception, что-то вроде того, что не существует никакого NameService.
--------
Примеры с VisiBroker на Naming Service также не работают. VisiBroker ставился со всеми параметрами по умолчанию. В чём же дело? Расскажите пожалуйста!
epflorov (2002-07-29 22:15:00) [1]Здравствуйте.
Я только однажды использовал INS из visibroker'а. (правда удачно) Поэтому отнеситесь к моим советам с определенной долей иронии.
Существует несколько стандартных механизмов указания ссылки на INS получаемой с помощью resolve_initial_references. Поэтому имеет смысл попробовать их.
1. В командной строке к приложению (это важно, что к серверу и клиенту) указать параметр -ORBInitRef NameService=corbaloc или -ORBInitRef NameService=corbaname (формирование corbaloc или corbaname описано в стандарте на CORBA Раздел "13.6.10 Object URLs")
В качестве примера в документации на visibroker приводятся:
<client_application> -ORBInitRef NameService=iioploc://TestHost:20002/NameService
<client_application> -ORBInitRef NameService=iiopname://TestHost:20003/
2. Можно использовать в параметрах приложения -ORBDefaultInitRef
Пример:
<client_application> -ORBDefaultInitRef iioploc://TestHost:20002
Разницы между 1 и 2 не помню.
3. По-моему тоже самое (1 или 2) можно сделать в файлах конфигурации
Лично я использую запись ORBInitRef NameService=corbaname::localhost в файле конфигурации для omniORB. (в случае если программа и INS запущены в пределах одной машины).
Удачи.