Класс Activatable

Все реализованные интерфейсы:
Serializable, Remote
public abstract class Activatable
extends RemoteServer

Класс Activatable предоставляет поддержку удаленным объектам, которые требуют постоянного доступа со временем и могут быть активированы системой.

Для конструкторов и статических exportObject методов, заглушка для экспортируемого удаленного объекта получает, как описано в UnicastRemoteObject.

Попытка явного сериализации экземпляра этого класса завершится ошибкой.

С момента:
1.2

Поля

Поля, объявленные в классе java.rmi.server.RemoteObject

ref

Конструкторы

Модификатор Конструктор Описание
protected Activatable​(String location, MarshalledObject<?> data, boolean restart, int port)

Создаёт активируемый удалённый объект, регистрируя описатель активации (с указанным местоположением, данными и режимом перезапуска) для этого объекта и экспортируя объект с указанным портом.

protected Activatable​(String location, MarshalledObject<?> data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)

Создаёт активируемый удалённый объект, регистрируя описатель активации (с указанным местоположением, данными и режимом перезапуска) для этого объекта, экспортируя объект с указанным портом и указанными фабриками сокет-соединений клиента и сервера.

protected Activatable​(ActivationID id, int port)

Конструктор, используемый для активации/экспорта объекта на указанном порту.

protected Activatable​(ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)

Конструктор, используемый для активации/экспорта объекта на указанном порту.

Методы

Модификатор и тип Метод Описание
static ActivationID exportObject​(Remote obj, String location, MarshalledObject<?> data, boolean restart, int port)

Регистрирует описатель активации (с указанным местоположением, данными и режимом перезапуска) для указанного объекта и экспортирует этот объект с указанным портом.

static ActivationID exportObject​(Remote obj, String location, MarshalledObject<?> data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)

Регистрирует описатель активации (с указанным местоположением, данными и режимом перезапуска) для указанного объекта, экспортирует этот объект с указанным портом и указанными фабриками сокет-соединений клиента и сервера.

static Remote exportObject​(Remote obj, ActivationID id, int port)

Экспортирует активируемый удалённый объект в среду RMI, чтобы объект стал доступным для получения входящих вызовов.

static Remote exportObject​(Remote obj, ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)

Экспортирует активируемый удалённый объект в среду RMI, чтобы объект стал доступным для получения входящих вызовов.

protected ActivationID getID()

Возвращает идентификатор активации объекта.

static boolean inactive​(ActivationID id)

Сообщает системе, что объект с соответствующим идентификатором активации id в настоящее время неактивен.

static Remote register​(ActivationDesc desc)

Регистрирует описатель объекта для активируемого удалённого объекта, чтобы его можно было активировать по требованию.

static boolean unexportObject​(Remote obj, boolean force)

Удаляет удалённый объект, obj, из среды RMI.

static void unregister​(ActivationID id)

Отменяет предыдущую регистрацию для описателя активации, связанного с id.

Методы, объявленные в классе java.rmi.server.RemoteServer

getClientHost, getLog, setLog

Методы, объявленные в классе java.rmi.server.RemoteObject

equals, getRef, hashCode, toString, toStub

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Конструкторы

Activatable

protected Activatable(String location,
                      MarshalledObject<?> data,
                      boolean restart,
                      int port)
               throws ActivationException,
                      RemoteException

Создает активируемый удалённый объект, регистрируя для него дескриптор активации (с указанным расположением, данными и режимом перезапуска) и экспортируя объект с указанным портом.

Примечание: Использование конструкторов Activatable, которые одновременно регистрируют и экспортируют активируемый удалённый объект, крайне не рекомендуется, так как действия регистрации и экспорта удалённого объекта не гарантируются как атомарные. Вместо этого приложение должно регистрировать дескриптор активации и экспортировать удалённый объект по отдельности, чтобы исключения обрабатывались должным образом.

Этот метод вызывает метод exportObject с этим объектом и указанным расположением, данными, режимом перезапуска и портом. Последующие вызовы getID() вернут идентификатор активации, возвращённый методом exportObject.

Параметры:
location - расположение классов для этого объекта
data - данные инициализации объекта
port - порт, на котором экспортируется объект (используется анонимный порт, если port=0)
restart - если true, объект перезапускается (реактивируется), когда либо активизатор перезапускается, либо группа активации объекта перезапускается после непредвиденного сбоя; если false, объект активируется только по требованию. Указание restart в значение true не принудительно инициирует немедленную активацию только что зарегистрированного объекта; начальная активация ленивая.
Исключения:
ActivationException - если регистрация объекта завершилась неудачей.
RemoteException - если одно из следующих действий завершилось неудачей: а) регистрация объекта в системе активации или б) экспорт объекта в RMI-среду.
UnsupportedOperationException - если и только если активация не поддерживается данной реализацией.
С:
1.2

Activatable

protected Activatable(String location,
                      MarshalledObject<?> data,
                      boolean restart,
                      int port,
                      RMIClientSocketFactory csf,
                      RMIServerSocketFactory ssf)
               throws ActivationException,
                      RemoteException

Создаёт активируемый удалённый объект, регистрируя для него дескриптор активации (с указанным расположением, данными и режимом перезапуска) и экспортируя объект с указанным портом и указанными сокет-фабриками клиента и сервера.

Примечание: Использование конструкторов Activatable, которые одновременно регистрируют и экспортируют активируемый удалённый объект, крайне не рекомендуется, так как действия регистрации и экспорта удалённого объекта не гарантируются как атомарные. Вместо этого приложение должно регистрировать дескриптор активации и экспортировать удалённый объект по отдельности, чтобы исключения обрабатывались должным образом.

Этот метод вызывает метод exportObject с этим объектом и указанным расположением, данными, режимом перезапуска, портом и сокет-фабриками клиента и сервера. Последующие вызовы getID() вернут идентификатор активации, возвращённый методом exportObject.

Параметры:
location - расположение классов для этого объекта
data - данные инициализации объекта
restart - если true, объект перезапускается (реактивируется), когда либо активизатор перезапускается, либо группа активации объекта перезапускается после непредвиденного сбоя; если false, объект активируется только по требованию. Указание restart в значение true не принудительно инициирует немедленную активацию только что зарегистрированного объекта; начальная активация ленивая.
port - порт, на котором экспортируется объект (используется анонимный порт, если port=0)
csf - сокет-фабрика клиентской стороны для вызовов удалённого объекта
ssf - сокет-фабрика серверной стороны для получения удалённых вызовов
Исключения:
ActivationException - если регистрация объекта завершилась неудачей.
RemoteException - если одно из следующих действий завершилось неудачей: а) регистрация объекта в системе активации или б) экспорт объекта в RMI-среду.
UnsupportedOperationException - если и только если активация не поддерживается данной реализацией.
С:
1.2

Activatable

protected Activatable(ActivationID id,
                      int port)
               throws RemoteException

Конструктор, используемый для активации/экспорта объекта на указанном порту. Удаленный активируемый объект должен иметь конструктор, принимающий два аргумента:

  • идентификатор активации объекта (ActivationID), и
  • данные инициализации объекта (MarshalledObject).

Конкретный подкласс этого класса должен вызвать этот конструктор, когда он активируется через конструктор с двумя параметрами, описанный выше. В качестве побочного эффекта построения, удалённый объект «экспортируется» в RMI-среду (на указанном port) и готов принимать входящие вызовы от клиентов.

Параметры:
id - идентификатор активации объекта
port - номер порта, на котором экспортируется объект
Исключения:
RemoteException - если экспорт объекта в RMI-среду завершился неудачей
UnsupportedOperationException - если и только если активация не поддерживается данной реализацией
С:
1.2

Activatable

protected Activatable(ActivationID id,
                      int port,
                      RMIClientSocketFactory csf,
                      RMIServerSocketFactory ssf)
               throws RemoteException

Конструктор, используемый для активации/экспорта объекта на указанном порту. Удаленный активируемый объект должен иметь конструктор, принимающий два аргумента:

  • идентификатор активации объекта (ActivationID), и
  • данные инициализации объекта (MarshalledObject).

Конкретный подкласс этого класса должен вызвать этот конструктор, когда он активируется через конструктор с двумя параметрами, описанный выше. В качестве побочного эффекта построения, удалённый объект «экспортируется» в RMI-среду (на указанном port) и готов принимать входящие вызовы от клиентов.

Параметры:
id - идентификатор активации объекта
port - номер порта, на котором экспортируется объект
csf - сокет-фабрика клиентской стороны для вызовов удалённого объекта
ssf - сокет-фабрика серверной стороны для получения удалённых вызовов
Исключения:
RemoteException - если экспорт объекта в RMI-среду завершился неудачей
UnsupportedOperationException - если и только если активация не поддерживается данной реализацией
С:
1.2

Методы

getID

protected ActivationID getID()

Возвращает идентификатор активации объекта. Метод защищён, поэтому только подклассы могут получить идентификатор объекта.

Возвращает:
идентификатор активации объекта
С:
1.2

register

public static Remote register(ActivationDesc desc)
                       throws UnknownGroupException,
                              ActivationException,
                              RemoteException

Регистрирует описатель объекта для активируемого удалённого объекта, чтобы он мог активироваться по требованию.

Параметры:
desc - описатель объекта
Возвращает:
заглушка для активируемого удалённого объекта
Исключения:
UnknownGroupException - если идентификатор группы в desc не зарегистрирован в системе активации
ActivationException - если система активации не запущена
RemoteException - если удалённый вызов завершился ошибкой
UnsupportedOperationException - если и только если активация не поддерживается данным реализацией
С:
1.2

inactive

public static boolean inactive(ActivationID id)
                        throws UnknownObjectException,
                               ActivationException,
                               RemoteException

Сообщает системе, что объект с соответствующим идентификатором активации id в настоящее время неактивен. Если объект в настоящее время активен, объект «деэкспортируется» из среды выполнения RMI (только если нет ожидающих или выполняющихся вызовов), чтобы он больше не мог получать входящие вызовы. Этот вызов сообщает группе активации этой виртуальной машины, что объект неактивен, что, в свою очередь, сообщает об этом своему монитору активации. Если этот вызов завершится успешно, последующий запрос на активацию активизатору приведёт к повторной активации объекта. Операция всё ещё может завершиться успешно, если объект считается активным, но уже деэкспортировал себя.

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

unregister

public static void unregister(ActivationID id)
                       throws UnknownObjectException,
                              ActivationException,
                              RemoteException

Отменяет предыдущую регистрацию для описателя активации, связанного с id. Объект больше не может быть активирован с помощью этого id.

Параметры:
id - идентификатор активации объекта
Исключения:
UnknownObjectException - если объект (id) неизвестен
ActivationException - если система активации не запущена
RemoteException - если удалённый вызов системе активации завершился ошибкой
UnsupportedOperationException - если и только если активация не поддерживается данным реализацией
С:
1.2

exportObject

public static ActivationID exportObject(Remote obj,
                                        String location,
                                        MarshalledObject<?> data,
                                        boolean restart,
                                        int port)
                                 throws ActivationException,
                                        RemoteException

Регистрирует описатель активации (с указанным расположением, данными и режимом перезапуска) для указанного объекта и экспортирует этот объект с указанным портом.

Примечание: Использование этого метода (а также конструкторов Activatable, которые одновременно регистрируют и экспортируют активируемый удалённый объект) строго не рекомендуется, так как действия по регистрации и экспорту удалённого объекта не гарантируют атомарность. Вместо этого приложение должно регистрировать описатель активации и экспортировать удалённый объект по отдельности, чтобы исключения обрабатывались надлежащим образом.

Этот метод вызывает метод exportObject с указанным объектом, местоположением, данными, режимом перезапуска и портом, и null для сокет-фабрик клиента и сервера, а затем возвращает полученный идентификатор активации.

Параметры:
obj - экспортируемый объект
location - местоположение кода объекта
data - данные загрузки объекта
restart - если true, объект перезапускается (повторно активируется), когда либо активизатор перезапускается, либо группа активации объекта перезапускается после непредвиденного сбоя; если false, объект активируется только по требованию. Указание restart как true не заставляет сразу активировать новый зарегистрированный объект; начальная активация ленивая.
port - порт, на котором экспортируется объект (используется анонимный порт, если порт=0)
Возвращает:
идентификатор активации, полученный при регистрации описателя, desc, в системе активации в неправильной группе
Исключения:
ActivationException - если группа активации неактивна
RemoteException - если регистрация объекта или экспорт завершились ошибкой
UnsupportedOperationException - если и только если активация не поддерживается данным реализацией
С:
1.2

exportObject

public static ActivationID exportObject(Remote obj,
                                        String location,
                                        MarshalledObject<?> data,
                                        boolean restart,
                                        int port,
                                        RMIClientSocketFactory csf,
                                        RMIServerSocketFactory ssf)
                                 throws ActivationException,
                                        RemoteException

Регистрирует описатель активации (с указанным расположением, данными и режимом перезапуска) для указанного объекта, и экспортирует этот объект с указанным портом и указанными клиентской и серверной фабриками сокетов.

Примечание: Использование этого метода (а также конструкторов Activatable, которые одновременно регистрируют и экспортируют активируемый удалённый объект) строго не рекомендуется, так как действия по регистрации и экспорту удалённого объекта не гарантируют атомарность. Вместо этого приложение должно регистрировать описатель активации и экспортировать удалённый объект по отдельности, чтобы исключения обрабатывались надлежащим образом.

Этот метод сначала регистрирует описатель активации для указанного объекта следующим образом. Он получает систему активации, вызвав метод ActivationGroup.getSystem. Затем этот метод получает ActivationID для объекта, вызвав метод registerObject системы активации с ActivationDesc, созданным с именем класса указанного объекта и указанным местоположением, данными и режимом перезапуска. Если при получении системы активации или регистрации описателя активации возникает исключение, это исключение выбрасывается вызывающему методу.

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

Наконец, этот метод вызывает метод activeObject в группе активации в этой виртуальной машине с идентификатором активации и указанным удалённым объектом и возвращает идентификатор активации вызывающему методу.

Параметры:
obj - экспортируемый объект
location - местоположение кода объекта
data - данные загрузки объекта
restart - если true, объект перезапускается (повторно активируется), когда либо активизатор перезапускается, либо группа активации объекта перезапускается после непредвиденного сбоя; если false, объект активируется только по требованию. Указание restart как true не заставляет сразу активировать новый зарегистрированный объект; начальная активация ленивая.
port - порт, на котором экспортируется объект (используется анонимный порт, если порт=0)
csf - фабрика сокетов на стороне клиента для вызова удалённого объекта
ssf - фабрика сокетов на стороне сервера для получения удалённых вызовов
Возвращает:
идентификатор активации, полученный при регистрации описателя в системе активации
Исключения:
ActivationException - если группа активации неактивна
RemoteException - если регистрация объекта или экспорт завершились ошибкой
UnsupportedOperationException - если и только если активация не поддерживается данным реализацией
С:
1.2

exportObject

public static Remote exportObject(Remote obj,
                                  ActivationID id,
                                  int port)
                           throws RemoteException

Экспортирует активируемый удалённый объект в среду выполнения RMI, чтобы объект стал доступным для получения входящих вызовов. Объект экспортируется на анонимном порте, если port равно нулю.

Во время активации этот exportObject метод должен вызываться явно «активируемым» объектом, который не расширяет класс Activatable. Объектам, которые расширяют класс Activatable, нет необходимости вызывать этот метод напрямую, так как объект экспортируется во время создания.

Параметры:
obj - реализация удалённого объекта
id - идентификатор активации объекта
port - порт, на котором экспортируется объект (используется анонимный порт, если порт=0)
Возвращает:
заглушка для активируемого удалённого объекта
Исключения:
RemoteException - если экспорт объекта завершился ошибкой
UnsupportedOperationException - если и только если активация не поддерживается данным реализацией
С:
1.2

exportObject

public static Remote exportObject(Remote obj,
                                  ActivationID id,
                                  int port,
                                  RMIClientSocketFactory csf,
                                  RMIServerSocketFactory ssf)
                           throws RemoteException

Экспортирует активируемый удаленный объект в среду выполнения RMI, чтобы сделать объект доступным для получения входящих вызовов. Объект экспортируется на анонимном порту, если port равно нулю.

Во время активации этот exportObject метод должен быть явно вызван объектом «activatable», который не расширяет класс Activatable. Нет необходимости для объектов, которые расширяют класс Activatable, вызывать этот метод напрямую, так как объект экспортируется во время создания.

Параметры:
obj - реализация удаленного объекта
id - идентификатор активации объекта
port - порт, на котором экспортируется объект (используется анонимный порт, если порт=0)
csf - фабрика сокета стороны клиента для выполнения вызовов удаленному объекту
ssf - фабрика сокета стороны сервера для получения удаленных вызовов
Возвращает:
заглушка для активируемого удаленного объекта
Исключения:
RemoteException - если экспорт объекта завершился неудачно
UnsupportedOperationException - если и только если активация не поддерживается этой реализацией
С:
1.2

unexportObject

public static boolean unexportObject(Remote obj,
                                     boolean force)
                              throws NoSuchObjectException

Удаляет удаленный объект, obj, из среды выполнения RMI. При успехе объект больше не может принимать входящие вызовы RMI. Если параметр force равен true, объект принудительно анэкспортируется, даже если есть ожидающие вызовы удаленному объекту или удаленный объект еще выполняет вызовы. Если параметр force равен false, объект анэкспортируется только в том случае, если нет ожидающих или выполняемых вызовов объекта.

Параметры:
obj - удаленный объект, который должен быть анэкспортирован
force - если true, анэкспортирует объект, даже если есть ожидающие или выполняемые вызовы; если false, анэкспортирует объект только в том случае, если нет ожидающих или выполняемых вызовов
Возвращает:
true, если операция выполнена успешно, в противном случае false
Исключения:
NoSuchObjectException - если удаленный объект в настоящее время не экспортирован
UnsupportedOperationException - если и только если активация не поддерживается этой реализацией
С:
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/Activatable.html

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