Интерфейс активизатора

Все суперинтерфейсы:
Remote
public interface Activator
extends Remote

Активизатор Activator облегчает удалённую активацию объектов. "Ошибочная" удалённая ссылка вызывает метод активизатора activate для получения "актуальной" ссылки на "активируемый" удалённый объект. При получении запроса на активацию, активизатор ищет описание активации по идентификатору активации, id, определяет группу, в которой объект должен быть активирован, и инициирует повторное создание объекта через метод группы ActivationInstantiator (через вызов метода newInstance). Активизатор инициирует выполнение групп активации по мере необходимости. Например, если группа активации для определённого идентификатора группы ещё не выполняется, активизатор инициирует выполнение виртуальной машины для этой группы.

Активизатор тесно взаимодействует с ActivationSystem, который предоставляет средства для регистрации групп и объектов внутри этих групп, и ActivationMonitor, который получает информацию об активных и неактивных объектах и неактивных группах.

Активизатор отвечает за мониторинг и обнаружение сбоев групп активации, чтобы удалить устаревшие удалённые ссылки на группы и активные объекты внутри этих групп.

С тех пор как:
1.2
См. также:
ActivationInstantiator, ActivationGroupDesc, ActivationGroupID

Краткое описание методов

Модификатор и тип Метод Описание
MarshalledObject<? extends Remote> activate​(ActivationID id, boolean force)

Активировать объект, связанный с идентификатором активации id.

Подробное описание методов

activate

MarshalledObject<? extends Remote> activate(ActivationID id,
                                            boolean force)
                                     throws ActivationException,
                                            UnknownObjectException,
                                            RemoteException

Активировать объект, связанный с идентификатором активации id. Если активизатор знает, что объект уже активен, и force равно false, заглушка с "актуальной" ссылкой возвращается вызывающей стороне немедленно; в противном случае, если активизатор не знает, что соответствующий удалённый объект активен, активизатор использует информацию из описания активации (предыдущая регистрация) для определения группы (ВМ), в которой объект должен быть активирован. Если группа активации, соответствующая описанию группы объекта, уже существует, активизатор вызывает метод группы активации newInstance, передавая ему идентификатор и описание объекта.

Если группа активации для описания группы объекта ещё не существует, активизатор запускает выполнение ActivationInstantiator (например, запуская дочерний процесс). Когда активизатор получает обратный вызов от группы активации (через ActivationSystem с помощью метода activeGroup) с указанием ссылки на группу активации, активизатор может вызвать метод newInstance этого инициатора активации, чтобы перенаправить каждый ожидающий запрос активации группе активации и вернуть результат (маршализованную ссылку на удалённый объект, заглушку) вызывающей стороне.

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

Параметры:
id - идентификатор активации активируемого объекта
force - если true, активизатор обращается к группе для получения ссылки на удалённый объект; если false, разрешается возвращение кэшированного значения.
Возвращает:
удалённый объект (заглушка) в маршализованной форме
Исключения:
ActivationException - если активация объекта завершается неудачно
UnknownObjectException - если объект неизвестен (не зарегистрирован)
RemoteException - если удалённый вызов завершается неудачно
С тех пор как:
1.2

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.rmi/java/rmi/activation/Activator.html

Spec-Zone .ru
спецификации, руководства, описания, API