Вопрос RMI: что происходит с ссылкой на объект после сбоя сервера? - PullRequest
3 голосов
/ 11 июля 2010

Может кто-нибудь помочь с этим, пожалуйста?

В: Сервер приложений регистрирует объект в Реестре RMI, вызывая Naming.rebind (). Через некоторое время серверное приложение отключается. Объясните, что будет со ссылкой на объект, зарегистрированный в Реестре.

A: Я думаю, что ссылка хранится в Реестре некоторое время, но по истечении этого периода («срок аренды»?) Локальный сборщик мусора может удалить ссылку.

Я не знаю, подходит ли концепция «периода аренды» только для клиентов (с использованием грязных и чистых вызовов), поэтому, возможно, я неправильно понял источники rmi ...

1 Ответ

3 голосов
/ 12 июля 2010

Ваш ответ неверный.Истечение срока аренды DGC не приводит к удалению удаленного объекта из реестра.Запись останется в Реестре навсегда, или до тех пор, пока не выйдет Реестр, или кто-то не отменит его.

На самом деле происходит то, что заглушка становится устаревшей.Клиенты могут по-прежнему искать его в реестре или сохранить тот, который у них уже есть, но любая попытка использовать его (т.е. вызывать удаленный метод через него) вызовет NoSuchObjectException, если серверная JVM все еще работает, в противном случаеConnectException.

...