Класс Activatable
- java.lang.Object
-
- java.rmi.server.RemoteObject
-
- java.rmi.server.RemoteServer
-
- java.rmi.activation.Activatable
- Все реализованные интерфейсы:
- Serializable, Remote
public abstract class Activatable extends RemoteServer
Класс Activatable предоставляет поддержку удалённых объектов, которые требуют постоянного доступа с течением времени и могут быть активированы системой.
Для конструкторов и статических exportObject методов, заглушка для удалённого экспортируемого объекта получается, как описано в UnicastRemoteObject.
Попытка явного сериализации экземпляра этого класса завершится ошибкой.
- С тех пор:
- 1.2
Поля
Поля, унаследованные от класса java.rmi.server.RemoteObject
ref Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
Activatable(ActivationID id,
int port) Конструктор, используемый для активации/экспорта объекта на указанном порту. |
protected |
Activatable(ActivationID id,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf) Конструктор, используемый для активации/экспорта объекта на указанном порту. |
protected |
Activatable(String location,
MarshalledObject<?> data,
boolean restart,
int port) Создаёт активируемый удалённый объект, регистрируя дескриптор активации (с указанным местоположением, данными и режимом перезапуска) для этого объекта и экспортируя объект на указанном порту. |
protected |
Activatable(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, чтобы объект стал доступным для получения входящих вызовов. |
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) Регистрирует дескриптор активации (с указанным местоположением, данными и режимом перезапуска) для указанного объекта, экспортирует этот объект на указанном порту и с указанными фабриками сокетов клиента и сервера. |
protected ActivationID |
getID() Возвращает идентификатор активации объекта. |
static boolean |
inactive(ActivationID id) Сообщает системе, что объект с соответствующим идентификатором активации |
static Remote |
register(ActivationDesc desc) Регистрирует дескриптор объекта для активируемого удалённого объекта, чтобы его можно было активировать по запросу. |
static boolean |
unexportObject(Remote obj,
boolean force) Удаляет удалённый объект, obj, из среды RMI. |
static void |
unregister(ActivationID 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- если любой из следующих пунктов завершился неудачно: a) регистрация объекта в системе активации или b) экспорт объекта в среду 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- если любой из следующих пунктов завершился неудачно: a) регистрация объекта в системе активации или b) экспорт объекта в среду 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, вызывать этот метод напрямую, так как объект экспортируется во время создания.
- Параметры:
-
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.