Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class ActivationGroup extends UnicastRemoteObject implements ActivationInstantiator
ActivationGroup
ответственно за создание новых экземпляров объектов "activatable" в его группе, сообщая его ActivationMonitor
когда также: его объект стал активным или неактивным, или группа в целом становится неактивной. ActivationGroup
первоначально создается одним из нескольких способов:
ActivationDesc
без явного ActivationGroupID
поскольку первые activatable возражают в группе, или ActivationGroup.createGroup
метод ActivationGroupDesc
был только зарегистрирован. Только активатор может воссоздать ActivationGroup
. Икра активатора, столь же необходимая, отдельный VM (как дочерний процесс, например) для каждой зарегистрированной группы активации и, предписывает, чтобы активация запросила соответствующей группе. Это - реализация, определенная, как порождаются VMs. Группа активации создается через ActivationGroup.createGroup
статический метод. createGroup
у метода есть два требования к группе, чтобы быть созданным: 1) группа должна быть конкретным подклассом ActivationGroup
, и 2) у группы должен быть конструктор, который берет два параметра:
ActivationGroupID
, и java.rmi.MarshalledObject
) Когда создающийся, реализация по умолчанию ActivationGroup
переопределит системные свойства со свойствами, которые требуют когда ActivationGroupDesc
создавался, и установит a java.rmi.RMISecurityManager
как менеджер по безопасности системы значения по умолчанию. Если Ваше приложение требует, чтобы определенные свойства были установлены, когда объекты активируются в группе, приложение должно создать специальное предложение Properties
объект, содержащий эти свойства, затем создайте ActivationGroupDesc
с Properties
объект, и использование ActivationGroup.createGroup
прежде, чем создать любого ActivationDesc
s (прежде, чем значение по умолчанию ActivationGroupDesc
создается). Если Ваше приложение требует использования менеджера безопасности кроме java.rmi.RMISecurityManager
, в списке свойств ActivativationGroupDescriptor можно установить java.security.manager
свойство к имени менеджера безопасности требуется установить.
ActivationInstantiator
, ActivationGroupDesc
, ActivationGroupID
, Сериализированная Формакасательно
Модификатор | Конструктор и Описание |
---|---|
protected |
ActivationGroup(ActivationGroupID groupID)
Создает группу активации с данным групповым идентификатором активации.
|
Модификатор и Тип | Метод и Описание |
---|---|
protected void |
activeObject(ActivationID id, MarshalledObject<? extends Remote> mobj)
Этот защищенный метод необходим для подклассов, чтобы сделать
activeObject обратный вызов к монитору группы. |
abstract void |
activeObject(ActivationID id, Remote obj)
Группа
activeObject метод вызывают, когда объект экспортируется (любой Activatable объектная конструкция или явный звонок Activatable.exportObject . |
static ActivationGroup |
createGroup(ActivationGroupID id, ActivationGroupDesc desc, long incarnation)
Создайте и установите группу активации для текущего VM.
|
static ActivationGroupID |
currentGroupID()
Возвращает текущий групповой идентификатор активации.
|
static ActivationSystem |
getSystem()
Возвращает систему активации для VM.
|
protected void |
inactiveGroup()
Этот защищенный метод необходим для подклассов, чтобы сделать
inactiveGroup обратный вызов к монитору группы. |
boolean |
inactiveObject(ActivationID id)
Группа
inactiveObject метод вызывают косвенно через звонок Activatable.inactive метод. |
static void |
setSystem(ActivationSystem system)
Установите систему активации для VM.
|
clone, exportObject, exportObject, exportObject, unexportObject
getClientHost, getLog, setLog
equals, getRef, hashCode, toString, toStub
finalize, getClass, notify, notifyAll, wait, wait, wait
newInstance
protected ActivationGroup(ActivationGroupID groupID) throws RemoteException
java.rmi.server.UnicastRemoteObject
.groupID
- идентификатор группыRemoteException
- если эта группа не могла бы быть экспортированаpublic boolean inactiveObject(ActivationID id) throws ActivationException, UnknownObjectException, RemoteException
inactiveObject
метод вызывают косвенно через звонок Activatable.inactive
метод. Реализация удаленного объекта должна вызвать Activatable
's inactive
метод, когда тот объект деактивируется (объект считает, что это больше не активно). Если объект не вызывает Activatable.inactive
когда это деактивируется, объект никогда не будет собираться "мусор", так как группа сохраняет ссылки strong на объекты, которые это создает.
Группа inactiveObject
метод неэкспортирует удаленный объект от времени выполнения RMI так, чтобы объект больше не мог получить входящие вызовы RMI. Объект будет только неэкспортироваться, если у объекта не будет никакого ожидания или выполнения вызовов. Подкласс ActivationGroup
должен переопределить этот метод и неэкспортировать объект.
После удаления объекта от времени выполнения RMI группа должна сообщить ActivationMonitor
(через монитор inactiveObject
метод), что удаленный объект не является в настоящий момент активным так, чтобы удаленный объект был оживлен активатором по последующему запросу активации.
Этот метод просто сообщает монитору группы, что объект неактивен. Это до конкретного подкласса ActivationGroup, чтобы выполнить дополнительное требование неэкспорта объекта.
id
- идентификатор активации объектаUnknownObjectException
- если объект неизвестен (может уже быть неактивным),RemoteException
- если вызов, сообщающий сбоям монитораActivationException
- если группа неактивнаpublic abstract void activeObject(ActivationID id, Remote obj) throws ActivationException, UnknownObjectException, RemoteException
activeObject
метод вызывают, когда объект экспортируется (любой Activatable
объектная конструкция или явный звонок Activatable.exportObject
. Группа должна сообщить ActivationMonitor
то, что объект является активным (через монитор activeObject
метод), если группа уже не сделала так.id
- идентификатор объектаobj
- реализация удаленного объектаUnknownObjectException
- если объект не регистрируетсяRemoteException
- если вызов, сообщающий сбоям монитораActivationException
- если группа неактивнаpublic static ActivationGroup createGroup(ActivationGroupID id, ActivationGroupDesc desc, long incarnation) throws ActivationException
createGroup
метод, когда Activator
инициирует воссоздание группы активации, чтобы выполнить поступление activate
запросы. Группа должна сначала быть зарегистрирована в ActivationSystem
прежде, чем это сможет быть создано через этот метод. Группа class, определенный ActivationGroupDesc
должен быть конкретный подкласс ActivationGroup
и имейте общедоступного конструктора, который берет два параметра: ActivationGroupID
для группы и MarshalledObject
содержа данные инициализации группы (полученный из ActivationGroupDesc
.
Если группа имя class, определенное в ActivationGroupDesc
null
, тогда этот метод будет вести себя как будто групповой дескриптор, содержавший имя групповой реализации активации значения по умолчанию class.
Отметьте, что, если Ваше приложение создает свою собственную группу активации, менеджер безопасности должен быть установлен для той группы. Иначе объекты не могут быть активированы в группе. java.rmi.RMISecurityManager
устанавливается по умолчанию.
Если менеджер безопасности уже устанавливается в группе VM, этот метод первые вызовы менеджер безопасности checkSetFactory
метод. Это могло привести к a SecurityException
. Если Ваше приложение должно установить различного менеджера безопасности, следует гарантировать что файл политики, определенный группой ActivationGroupDesc
предоставляет группе необходимые полномочия, чтобы установить нового менеджера безопасности. (Отметьте: Это будет необходимо, если Ваша группа загрузит и установит менеджера безопасности).
После того, как группа создается, ActivationSystem
сообщается, что группа активна, вызывая activeGroup
метод, который возвращается ActivationMonitor
для группы. Приложение не должно вызвать activeGroup
независимо, так как это заботится об этим методом.
Как только группа создается, последующие звонки currentGroupID
метод возвратит идентификатор для этой группы, пока группа не станет неактивной.
id
- групповой идентификатор активацииdesc
- групповой дескриптор активацииincarnation
- число воплощения группы (обнуляют на начальном создании группы),ActivationException
- если группа уже существует или если ошибка происходит во время группового созданияSecurityException
- если разрешение, чтобы создать группу отрицается. (Отметьте: реализация по умолчанию менеджера безопасности checkSetFactory
метод требует RuntimePermission "setFactory"),SecurityManager.checkSetFactory()
public static ActivationGroupID currentGroupID()
public static void setSystem(ActivationSystem system) throws ActivationException
getSystem
метод пытается получить ссылку на ActivationSystem
ища имя "java.rmi.activation. ActivationSystem" в реестре Активатора. По умолчанию номер порта, используемый, чтобы искать систему активации, определяется ActivationSystem.SYSTEM_PORT
. Этот порт может быть переопределен, устанавливая свойство java.rmi.activation.port
. Если есть менеджер безопасности, этот метод первые вызовы менеджер безопасности checkSetFactory
метод. Это могло привести к SecurityException.
system
- удаленная ссылка на ActivationSystem
ActivationException
- если система активации уже устанавливаетсяSecurityException
- если разрешение, чтобы установить систему активации отрицается. (Отметьте: реализация по умолчанию менеджера безопасности checkSetFactory
метод требует RuntimePermission "setFactory"),getSystem()
, SecurityManager.checkSetFactory()
public static ActivationSystem getSystem() throws ActivationException
setSystem
метод. Если система активации не устанавливается через setSystem
метод, тогда getSystem
метод пытается получить ссылку на ActivationSystem
ища имя "java.rmi.activation. ActivationSystem" в реестре Активатора. По умолчанию номер порта, используемый, чтобы искать систему активации, определяется ActivationSystem.SYSTEM_PORT
. Этот порт может быть переопределен, устанавливая свойство java.rmi.activation.port
.ActivationException
- если система активации не может быть получена или не связывается (означает, что она не работает),setSystem(java.rmi.activation.ActivationSystem)
protected void activeObject(ActivationID id, MarshalledObject<? extends Remote> mobj) throws ActivationException, UnknownObjectException, RemoteException
activeObject
обратный вызов к монитору группы. Вызов просто переводится группе ActivationMonitor
.id
- идентификатор объектаmobj
- упорядоченный объект, содержащий тупик удаленного объектаUnknownObjectException
- если объект не регистрируетсяRemoteException
- если вызов, сообщающий сбоям монитораActivationException
- если ошибка активации происходитprotected void inactiveGroup() throws UnknownGroupException, RemoteException
inactiveGroup
обратный вызов к монитору группы. Вызов просто переводится группе ActivationMonitor
. Кроме того, текущая группа для VM, устанавливают в NULL.UnknownGroupException
- если группа не регистрируетсяRemoteException
- если вызов, сообщающий сбоям монитора
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92