Метод unreferenced () действительно работает, но для этого требуется временной интервал DGC.Это зависит от версии JDK.В прошлый раз я смотрел, было десять минут.Для этого есть системные свойства, см. Домашнюю страницу Java RMI.Эта возможность будет использоваться через специфический для клиента объект RemoteSession, который реализует API, который нужен клиенту, отслеживает состояние клиента и реализует Unreferenced как отказоустойчивый для клиента, который не может поддерживать себя или выйти из системы через его API.
Нет другого надежного способа обнаружения сбоя клиента, кроме отслеживания того, когда они в последний раз звонили вам, если у вас нет обратных вызовов на стороне клиента, и в этом случае сервер может попытаться вызвать клиента.Однако они широко рассматриваются как угроза безопасности и, как правило, не работают через брандмауэры без специальной обработки.