Проверьте, по-прежнему ли объект привязан к службе имен (tnameserv)

#java #corba #nameservice

#java #corba #служба имен

Вопрос:

Есть ли простой способ проверить, по-прежнему ли объект привязан к «tnameserv»? После привязки объекта процесс «tnameserv» может аварийно завершиться … и я хочу, чтобы мое приложение проверило, по-прежнему ли привязан объект, который я привязал ранее.

Ответ №1:

Предполагая, что вы используете Oracle Java ORB, почему бы не использовать службу постоянных имен, которую они предоставляют, а не временный tnameserv? Похоже, что вашему приложению требуется постоянная регистрация ссылок, поэтому попытка получить поведение, подобное постоянному, от временной службы именования, скорее всего, приведет к тупику.

Кстати, вы можете использовать службу именования COS любого поставщика, а не только ту, которую предоставляет Oracle (и она даже не обязательно должна быть написана на Java). Например, бесплатный сервер имен JacORB может работать в постоянном режиме, позволяя зарегистрированным вами ссылкам пережить перезапуск или сбой службы.

В любом случае, ответ на ваш вопрос зависит от того, задаете ли вы его с точки зрения клиента или сервера. Серверу, использующему Службу именования, не нужно проверять, что там уже зарегистрирована его собственная ссылка — вместо этого ему следует просто вызвать rebind() для обновления регистрации. Если там уже ничего нет, ссылка будет добавлена. Если он там есть, он будет перезаписан новым значением.

Если вы спрашиваете об этом с точки зрения вашего клиента, вы должны помнить, что служба именования похожа на телефонную книгу. Если клиент не находит там требуемой регистрации, он в значительной степени безнадежен, если только не сможет найти другие подходящие объекты, которые можно было бы использовать для предоставления необходимых вам услуг. Вероятно, лучше, чтобы ваш клиент потерпел неудачу в этот момент, чем пытаться угадать, как компенсировать то, что на самом деле является катастрофическим сценарием.

Комментарии:

1. Я хотел использовать tnameserv, поскольку это инструмент, который я уже использовал в прошлом, инструмент, который запускается чистым при каждой его активации. Я посмотрю, как заставить ORBD работать так, как мне нужно, спасибо!