Класс RelationService
- java.lang.Object
-
- javax.management.NotificationBroadcasterSupport
-
- javax.management.relation.RelationService
- Все реализованные интерфейсы:
- EventListener, MBeanRegistration, NotificationBroadcaster, NotificationEmitter, NotificationListener, RelationServiceMBean
public class RelationService extends NotificationBroadcasterSupport implements RelationServiceMBean, MBeanRegistration, NotificationListener
Сервис отношений отвечает за создание и удаление типов отношений и самих отношений, за поддержание согласованности и предоставление механизмов запросов.
Он реализует интерфейс NotificationBroadcaster, расширяя NotificationBroadcasterSupport, чтобы отправлять уведомления при удалении отношения.
Он реализует интерфейс NotificationListener, чтобы иметь возможность получать уведомления об отмене регистрации MBean, ссылающихся на роли в отношениях, и об MBean отношений.
Он реализует интерфейс MBeanRegistration, чтобы иметь возможность получить свой ObjectName и MBean Server.
- С:
- 1.5
Конструкторы
| Конструктор и описание |
|---|
RelationService(boolean immediatePurgeFlag) Конструктор. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
addRelation(ObjectName relationObjectName) Добавляет MBean, созданный пользователем (и зарегистрированный им в MBean Server), как отношение в сервис отношений. |
void |
addRelationType(RelationType relationTypeObj) Добавляет заданный объект как тип отношения. |
Integer |
checkRoleReading(String roleName,
String relationTypeName) Проверяет, может ли заданная роль читаться в отношении заданного типа. |
Integer |
checkRoleWriting(Role role,
String relationTypeName,
Boolean initFlag) Проверяет, может ли заданная роль быть установлена в отношении заданного типа. |
void |
createRelation(String relationId,
String relationTypeName,
RoleList roleList) Создаёт простое отношение (представленное объектом RelationSupport) заданного типа отношения и добавляет его в сервис отношений. |
void |
createRelationType(String relationTypeName,
RoleInfo[] roleInfoArray) Создаёт тип отношения (объект RelationTypeSupport) с заданными сведениями о роли (предоставленными объектами RoleInfo) и добавляет его в сервис отношений. |
Map<ObjectName,List<String>> |
findAssociatedMBeans(ObjectName mbeanName,
String relationTypeName,
String roleName) Получает MBean, связанные с заданным в отношении. |
Map<String,List<String>> |
findReferencingRelations(ObjectName mbeanName,
String relationTypeName,
String roleName) Получает отношения, где заданный MBean указан. |
List<String> |
findRelationsOfType(String relationTypeName) Возвращает идентификаторы отношений для отношений заданного типа. |
List<String> |
getAllRelationIds() Возвращает все идентификаторы отношений для всех отношений, обрабатываемых сервисом отношений. |
List<String> |
getAllRelationTypeNames() Получает имена всех известных типов отношений. |
RoleResult |
getAllRoles(String relationId) Возвращает все роли, присутствующие в отношении. |
MBeanNotificationInfo[] |
getNotificationInfo() Возвращает объект NotificationInfo, содержащий имя Java-класса уведомления и типы отправленных уведомлений. |
boolean |
getPurgeFlag() Возвращает флаг, указывающий, если при получении уведомления об отмене регистрации MBean, ссылающегося на отношение, должна быть выполнена немедленная «очистка» отношений (поиск недействительных отношений) или это будет выполнено только при явном вызове метода purgeRelations. |
Map<ObjectName,List<String>> |
getReferencedMBeans(String relationId) Получает MBean, на которые ссылаются различные роли отношения. |
String |
getRelationTypeName(String relationId) Возвращает имя связанного типа отношения для данного отношения. |
List<ObjectName> |
getRole(String relationId,
String roleName) Получает значение роли для заданного имени роли в заданном отношении. |
Integer |
getRoleCardinality(String relationId,
String roleName) Получает количество MBean, в настоящее время указанных в данной роли. |
RoleInfo |
getRoleInfo(String relationTypeName,
String roleInfoName) Получает сведения о роли для заданного имени роли заданного типа отношения. |
List<RoleInfo> |
getRoleInfos(String relationTypeName) Получает список сведений о роли (объекты RoleInfo) заданного типа отношения. |
RoleResult |
getRoles(String relationId,
String[] roleNameArray) Получает значения ролей с заданными именами в заданном отношении. |
void |
handleNotification(Notification notif,
Object handback) Вызывается при возникновении JMX-уведомления. |
Boolean |
hasRelation(String relationId) Проверяет, есть ли отношение, идентифицированное в сервисе отношений, с заданным идентификатором отношения. |
void |
isActive() Проверяет, активен ли сервис отношений. |
String |
isRelation(ObjectName objectName) Возвращает идентификатор отношения, связанный с заданным ObjectName, если MBean был добавлен как отношение в сервис отношений. |
ObjectName |
isRelationMBean(String relationId) Если отношение представлено MBean (созданным пользователем и добавленным как отношение в сервис отношений), возвращает ObjectName MBean. |
void |
postDeregister() Позволяет MBean выполнять любые необходимые операции после того, как он был отменён в сервере MBean. |
void |
postRegister(Boolean registrationDone) Позволяет MBean выполнять любые необходимые операции после регистрации в сервере MBean или после того, как регистрация завершилась неудачно. |
void |
preDeregister() Позволяет MBean выполнить любые необходимые операции до того, как он будет отменён сервером MBean. |
ObjectName |
preRegister(MBeanServer server,
ObjectName name) Позволяет MBean выполнить любые необходимые операции перед регистрацией в сервере MBean. |
void |
purgeRelations() Очищает отношения. |
void |
removeRelation(String relationId) Удаляет заданное отношение из сервиса отношений. |
void |
removeRelationType(String relationTypeName) Удаляет заданный тип отношения из сервиса отношений. |
void |
sendRelationCreationNotification(String relationId) Отправляет уведомление (RelationNotification) о создании отношения. |
void |
sendRelationRemovalNotification(String relationId,
List<ObjectName> unregMBeanList) Отправляет уведомление (RelationNotification) об удалении отношения. |
void |
sendRoleUpdateNotification(String relationId,
Role newRole,
List<ObjectName> oldValue) Отправляет уведомление (RelationNotification) об обновлении роли в заданном отношении. |
void |
setPurgeFlag(boolean purgeFlag) Устанавливает флаг, указывающий, если при получении уведомления об отмене регистрации MBean, ссылающегося на отношение, должна быть выполнена немедленная «очистка» отношений (поиск недействительных отношений), или это будет выполнено только при явном вызове метода purgeRelations. |
void |
setRole(String relationId,
Role role) Устанавливает заданную роль в заданном отношении. |
RoleResult |
setRoles(String relationId,
RoleList roleList) Устанавливает заданные роли в заданном отношении. |
void |
updateRoleMap(String relationId,
Role newRole,
List<ObjectName> oldValue) Обрабатывает обновление карты ролей сервиса отношений для обновления заданной роли в заданном отношении. |
Методы, унаследованные от класса javax.management.NotificationBroadcasterSupport
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
RelationService
public RelationService(boolean immediatePurgeFlag)
Конструктор.
- Параметры:
-
immediatePurgeFlag- флаг, указывающий, когда при получении уведомления об отмене регистрации MBean, ссылающегося на отношение, необходимо выполнить немедленное «очищение» отношений (поиск недействительных отношений), или это будет выполнено только при явном вызове метода purgeRelations.true — немедленное очищение.
Методы
isActive
public void isActive()
throws RelationServiceNotRegisteredException Проверяет, активен ли сервис отношений. Текущее условие состоит в том, что сервис отношений должен быть зарегистрирован в сервере MBean.
- Определено в:
-
isActiveв интерфейсеRelationServiceMBean - Исключения:
-
RelationServiceNotRegisteredException— если он не зарегистрирован
preRegister
public ObjectName preRegister(MBeanServer server,
ObjectName name)
throws Exception Описание скопировано из интерфейса: MBeanRegistration
Позволяет MBean выполнить любые необходимые операции перед регистрацией в сервере MBean. Если имя MBean не указано, MBean может предоставить имя для своей регистрации. Если возникает какое-либо исключение, MBean не будет зарегистрирован в сервере MBean.
- Определено в:
-
preRegisterв интерфейсеMBeanRegistration - Параметры:
-
server— сервер MBean, в котором будет зарегистрирован MBean. -
name— имя объекта MBean. Это имя равно null, если параметр name в одном из методовcreateMBeanилиregisterMBeanв интерфейсеMBeanServerравен null. В этом случае этот метод должен вернуть не null ObjectName для нового MBean. - Возвращает:
- Имя, под которым MBean должен быть зарегистрирован. Это значение не должно быть null. Если параметр
nameне null, это обычно, но не обязательно, возвращаемое значение. - Исключения:
-
Exception— это исключение будет перехвачено сервером MBean и повторно выброшено какMBeanRegistrationException.
postRegister
public void postRegister(Boolean registrationDone)
Описание скопировано из интерфейса: MBeanRegistration
Позволяет MBean выполнить любые необходимые операции после регистрации в сервере MBean или после неудачной регистрации.
Если реализация этого метода выбрасывает RuntimeException или Error, сервер MBean повторно выбросит их внутри RuntimeMBeanException или RuntimeErrorException соответственно. Однако выброс исключения в postRegister не изменит состояние MBean: если MBean уже был зарегистрирован (registrationDone равно true), MBean останется зарегистрированным.
Это может быть непонятно для кода, вызывающего createMBean() или registerMBean(), поскольку такой код может предположить, что регистрация MBean завершилась неудачей, когда такое исключение возникает. Поэтому рекомендуется, чтобы реализации postRegister не выбрасывали исключения Runtime или ошибки, если этого можно избежать.
- Определено в:
-
postRegisterв интерфейсеMBeanRegistration - Параметры:
-
registrationDone— указывает, была ли MBean успешно зарегистрирована в сервере MBean. Значение false означает, что фаза регистрации завершилась неудачей.
preDeregister
public void preDeregister()
throws Exception Описание скопировано из интерфейса: MBeanRegistration
Позволяет MBean выполнить любые необходимые операции перед отзывом регистрации сервером MBean.
- Определено в:
-
preDeregisterв интерфейсеMBeanRegistration - Исключения:
-
Exception— это исключение будет перехвачено сервером MBean и повторно выброшено какMBeanRegistrationException.
postDeregister
public void postDeregister()
Описание скопировано из интерфейса: MBeanRegistration
Позволяет MBean выполнить любые необходимые операции после отмены регистрации в сервере MBean.
Если реализация этого метода выбрасывает RuntimeException или Error, сервер MBean повторно выбросит их внутри RuntimeMBeanException или RuntimeErrorException соответственно. Однако выброс исключения в postDeregister не изменит состояние MBean: MBean уже был успешно отменён от регистрации и останется таковым.
Это может быть непонятно для кода, вызывающего unregisterMBean(), поскольку он может предположить, что отмена регистрации MBean завершилась неудачей. Поэтому рекомендуется, чтобы реализации postDeregister не выбрасывали исключения Runtime или ошибки, если этого можно избежать.
- Определено в:
-
postDeregisterв интерфейсеMBeanRegistration
getPurgeFlag
public boolean getPurgeFlag()
Возвращает флаг, указывающий, следует ли при получении уведомления об отмене регистрации MBean, ссылающегося на отношение, немедленно «очищать» отношения (искать недействительные отношения) или это будет выполнено только при явном вызове метода purgeRelations.
true — немедленное очищение.
- Определено в:
-
getPurgeFlagв интерфейсеRelationServiceMBean - Возвращает:
- true, если очищение происходит автоматически.
- См. также:
setPurgeFlag(boolean)
setPurgeFlag
public void setPurgeFlag(boolean purgeFlag)
Устанавливает флаг, указывающий, следует ли при получении уведомления об отмене регистрации MBean, ссылающегося на отношение, немедленно «очищать» отношения (поиск недействительных отношений) или это будет выполнено только при явном вызове метода purgeRelations.
true — немедленное очищение.
- Определено в:
-
setPurgeFlagв интерфейсеRelationServiceMBean - Параметры:
-
purgeFlag— флаг - См. также:
getPurgeFlag()
createRelationType
public void createRelationType(String relationTypeName,
RoleInfo[] roleInfoArray)
throws IllegalArgumentException,
InvalidRelationTypeException Создаёт тип отношения (объект RelationTypeSupport) с заданными сведениями о ролях (предоставленными объектами RoleInfo) и добавляет его в сервис отношений.
- Определено в:
-
createRelationTypeв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeName— имя типа отношения -
roleInfoArray— массив сведений о ролях - Исключения:
-
IllegalArgumentException— если параметр null -
InvalidRelationTypeException— если:- тип отношения с таким именем уже существует
- одно и то же имя использовано для двух разных сведений о ролях
- сведения о ролях не предоставлены
- одно из сведений о ролях равно null
addRelationType
public void addRelationType(RelationType relationTypeObj)
throws IllegalArgumentException,
InvalidRelationTypeException Добавляет заданный объект в качестве типа отношения. Ожидается, что объект реализует интерфейс RelationType.
- Определено в:
-
addRelationTypeв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeObj— объект типа отношения (реализующий интерфейс RelationType) - Исключения:
-
IllegalArgumentException— если параметр null илиrelationTypeObj.getRelationTypeName()возвращает null. -
InvalidRelationTypeException— если:- одно и то же имя использовано для двух разных ролей
- сведения о ролях не предоставлены
- одно из сведений о ролях равно null
- тип отношения с таким именем уже существует
getAllRelationTypeNames
public List<String> getAllRelationTypeNames()
Возвращает имена всех известных типов отношений.
- Определено в:
-
getAllRelationTypeNamesв интерфейсеRelationServiceMBean - Возвращает:
- Список имен типов отношений (строки).
getRoleInfos
public List<RoleInfo> getRoleInfos(String relationTypeName)
throws IllegalArgumentException,
RelationTypeNotFoundException Возвращает список сведений о ролях (объекты RoleInfo) заданного типа отношения.
- Определено в:
-
getRoleInfosв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeName— имя типа отношения - Возвращает:
- Список объектов RoleInfo.
- Исключения:
-
IllegalArgumentException— если параметр null -
RelationTypeNotFoundException— если тип отношения с таким именем не найден.
getRoleInfo
public RoleInfo getRoleInfo(String relationTypeName,
String roleInfoName)
throws IllegalArgumentException,
RelationTypeNotFoundException,
RoleInfoNotFoundException Возвращает сведения о роли для заданного имени роли заданного типа отношения.
- Определено в:
-
getRoleInfoв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeName— имя типа отношения -
roleInfoName— имя роли - Возвращает:
- Объект RoleInfo.
- Исключения:
-
IllegalArgumentException— если параметр null -
RelationTypeNotFoundException— если тип отношения не известен сервису отношений -
RoleInfoNotFoundException— если роль не является частью типа отношения.
removeRelationType
public void removeRelationType(String relationTypeName)
throws RelationServiceNotRegisteredException,
IllegalArgumentException,
RelationTypeNotFoundException Удаляет заданный тип отношения из сервиса отношений.
Объекты отношений этого типа будут удалены из сервиса отношений.
- Определено в:
-
removeRelationTypeв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeName— имя типа отношения для удаления - Исключения:
-
RelationServiceNotRegisteredException— если сервис отношений не зарегистрирован в сервере MBean -
IllegalArgumentException— если параметр null -
RelationTypeNotFoundException— если тип отношения с таким именем не существует
createRelation
public void createRelation(String relationId,
String relationTypeName,
RoleList roleList)
throws RelationServiceNotRegisteredException,
IllegalArgumentException,
RoleNotFoundException,
InvalidRelationIdException,
RelationTypeNotFoundException,
InvalidRoleValueException Создаёт простое отношение (представленное объектом RelationSupport) заданного типа отношения и добавляет его в сервис отношений.
Роли инициализируются в соответствии со списком ролей, предоставленным в параметре. Те, которые не инициализированы таким образом, устанавливаются в пустой ArrayList ObjectNames.
Отправка уведомления RelationNotification с типом RELATION_BASIC_CREATION.
- Определено в:
-
createRelationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор связи, для уникальной идентификации связи внутри сервиса связей -
relationTypeName— имя типа связи (должно быть создано в сервисе связей) -
roleList— список ролей для инициализации ролей связи (может быть null). - Исключения:
-
RelationServiceNotRegisteredException— если сервис связей не зарегистрирован в сервере MBean -
IllegalArgumentException— если null параметр, за исключением списка ролей, который может быть null, если инициализация ролей не требуется -
RoleNotFoundException— если значение предоставлено для роли, которая не существует в типе связи -
InvalidRelationIdException— если идентификатор связи уже используется -
RelationTypeNotFoundException— если тип связи неизвестен сервису связей -
InvalidRoleValueException— если:- одно и то же имя роли используется для двух разных ролей
- количество ссылаемых MBean в заданном значении меньше ожидаемой минимальной степени
- количество ссылаемых MBean в предоставленном значении превышает ожидаемую максимальную степень
- один ссылаемый MBean в значении не является объектом класса MBean, ожидаемого для данной роли
- MBean, предоставленный для данной роли, не существует
addRelation
public void addRelation(ObjectName relationObjectName)
throws IllegalArgumentException,
RelationServiceNotRegisteredException,
NoSuchMethodException,
InvalidRelationIdException,
InstanceNotFoundException,
InvalidRelationServiceException,
RelationTypeNotFoundException,
RoleNotFoundException,
InvalidRoleValueException Добавляет MBean, созданный пользователем (и зарегистрированный им в сервере MBean), в качестве связи в сервисе связей.
Чтобы быть добавленным в качестве связи, MBean должен соответствовать следующим условиям:
- реализовывать интерфейс Relation
- иметь для RelationService ObjectName ObjectName текущего сервиса связей
- иметь уникальный и неиспользуемый идентификатор связи в текущем сервисе связей
- иметь для типа связи тип связи, созданный в сервисе связей
- иметь роли, соответствующие информации о роли, предоставленной в типе связи.
- Определено в:
-
addRelationв интерфейсеRelationServiceMBean - Параметры:
-
relationObjectName— ObjectName MBean связи, который необходимо добавить. - Исключения:
-
IllegalArgumentException— если null параметр -
RelationServiceNotRegisteredException— если сервис связей не зарегистрирован в сервере MBean -
NoSuchMethodException— если MBean не реализует интерфейс Relation -
InvalidRelationIdException— если:- нет идентификатора связи в MBean
- идентификатор связи уже используется в сервисе связей
-
InstanceNotFoundException— если MBean для данного ObjectName не зарегистрирован -
InvalidRelationServiceException— если:- нет имени сервиса связей в MBean
- имя сервиса связей в MBean не соответствует имени текущего сервиса связей
-
RelationTypeNotFoundException— если:- нет имени типа связи в MBean
- имя типа связи в MBean не соответствует типу связи, созданному в сервисе связей
-
InvalidRoleValueException— если:- количество ссылаемых MBean в роли меньше ожидаемой минимальной степени
- количество ссылаемых MBean в роли превышает ожидаемую максимальную степень
- один ссылаемый MBean в значении не является объектом ожидаемого класса MBean для данной роли
- MBean, предоставленный для роли, не существует
-
RoleNotFoundException— если значение предоставлено для роли, которая не существует в типе связи
isRelationMBean
public ObjectName isRelationMBean(String relationId)
throws IllegalArgumentException,
RelationNotFoundException Если связь представлена MBean (созданным пользователем и добавленным в качестве связи в сервисе связей), возвращает ObjectName MBean.
- Определено в:
-
isRelationMBeanв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор связи, определяющий связь - Возвращает:
- ObjectName соответствующего MBean связи или null, если связь не является MBean.
- Исключения:
-
IllegalArgumentException— если null параметр -
RelationNotFoundException— связи, связанной с этим идентификатором, нет
isRelation
public String isRelation(ObjectName objectName)
throws IllegalArgumentException Возвращает идентификатор связи, связанный с заданным ObjectName, если MBean был добавлен в качестве связи в сервисе связей.
- Определено в:
-
isRelationв интерфейсеRelationServiceMBean - Параметры:
-
objectName— ObjectName предполагаемой связи - Возвращает:
- идентификатор связи (String) или null (если ObjectName не является связью, обрабатываемой сервисом связей)
- Исключения:
-
IllegalArgumentException— если null параметр
hasRelation
public Boolean hasRelation(String relationId)
throws IllegalArgumentException Проверяет, есть ли в сервисе связей связь, идентифицируемая заданным идентификатором связи.
- Определено в:
-
hasRelationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор связи, определяющий связь - Возвращает:
- boolean: true, если связь существует, false иначе
- Исключения:
-
IllegalArgumentException— если null параметр
getAllRelationIds
public List<String> getAllRelationIds()
Возвращает все идентификаторы связей для всех связей, обрабатываемых сервисом связей.
- Определено в:
-
getAllRelationIdsв интерфейсеRelationServiceMBean - Возвращает:
- ArrayList of String
checkRoleReading
public Integer checkRoleReading(String roleName,
String relationTypeName)
throws IllegalArgumentException,
RelationTypeNotFoundException Проверяет, может ли быть прочитана заданная роль в связи заданного типа.
- Определено в:
-
checkRoleReadingв интерфейсеRelationServiceMBean - Параметры:
-
roleName— имя роли, которую нужно проверить -
relationTypeName— имя типа связи - Возвращает:
- целое число, соответствующее возможным проблемам, представленным как константы в RoleUnresolved:
- 0, если роль может быть прочитана
- целое число, соответствующее RoleStatus.NO_ROLE_WITH_NAME
- целое число, соответствующее RoleStatus.ROLE_NOT_READABLE
- Исключения:
-
IllegalArgumentException— если null параметр -
RelationTypeNotFoundException— если тип связи неизвестен в сервисе связей
checkRoleWriting
public Integer checkRoleWriting(Role role,
String relationTypeName,
Boolean initFlag)
throws IllegalArgumentException,
RelationTypeNotFoundException Проверяет, может ли быть установлена заданная роль в связи заданного типа.
- Определено в:
-
checkRoleWritingв интерфейсеRelationServiceMBean - Параметры:
-
role— роль, которую нужно проверить -
relationTypeName— имя типа связи -
initFlag— флаг, указывающий, что проверка выполняется для инициализации роли, доступ к записи не проверяется. - Возвращает:
- целое число, соответствующее возможным проблемам, представленным как константы в RoleUnresolved:
- 0, если роль может быть установлена
- целое число, соответствующее RoleStatus.NO_ROLE_WITH_NAME
- целое число для RoleStatus.ROLE_NOT_WRITABLE
- целое число для RoleStatus.LESS_THAN_MIN_ROLE_DEGREE
- целое число для RoleStatus.MORE_THAN_MAX_ROLE_DEGREE
- целое число для RoleStatus.REF_MBEAN_OF_INCORRECT_CLASS
- целое число для RoleStatus.REF_MBEAN_NOT_REGISTERED
- Исключения:
-
IllegalArgumentException— если null параметр -
RelationTypeNotFoundException— если тип связи неизвестен
sendRelationCreationNotification
public void sendRelationCreationNotification(String relationId)
throws IllegalArgumentException,
RelationNotFoundException Отправляет уведомление (RelationNotification) о создании связи. Тип уведомления:
- RelationNotification.RELATION_BASIC_CREATION, если связь является внутренним объектом сервиса связей
- RelationNotification.RELATION_MBEAN_CREATION, если связь является добавленным в качестве связи MBean.
Источник объекта — сам сервис связей.
Вызывается в методах Relation Service createRelation() и addRelation().
- Определено в:
-
sendRelationCreationNotificationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор обновленной связи - Исключения:
-
IllegalArgumentException— если null параметр -
RelationNotFoundException— связи для данного идентификатора нет
sendRoleUpdateNotification
public void sendRoleUpdateNotification(String relationId,
Role newRole,
List<ObjectName> oldValue)
throws IllegalArgumentException,
RelationNotFoundException Отправляет уведомление (RelationNotification) об обновлении роли в данной связи. Тип уведомления:
- RelationNotification.RELATION_BASIC_UPDATE, если связь является внутренним объектом сервиса связей
- RelationNotification.RELATION_MBEAN_UPDATE, если связь является добавленным в качестве связи MBean.
Источник объекта — сам сервис связей.
Вызывается в методах Relation MBean setRole() (для заданной роли) и setRoles() (для каждой роли) (реализация, предоставленная в классе RelationSupport).
Также вызывается в методах Relation Service setRole() (для заданной роли) и setRoles() (для каждой роли).
- Определено в:
-
sendRoleUpdateNotificationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор обновленной связи -
newRole— новая роль (имя и новое значение) -
oldValue— старое значение роли (список объектов ObjectName) - Исключения:
-
IllegalArgumentException— если null параметр -
RelationNotFoundException— связи для данного идентификатора нет
sendRelationRemovalNotification
public void sendRelationRemovalNotification(String relationId,
List<ObjectName> unregMBeanList)
throws IllegalArgumentException,
RelationNotFoundException Отправляет уведомление (RelationNotification) об удалении связи. Тип уведомления:
- RelationNotification.RELATION_BASIC_REMOVAL, если связь является внутренним объектом сервиса связей
- RelationNotification.RELATION_MBEAN_REMOVAL, если связь является добавленным в качестве связи MBean.
Источник объекта — сам сервис связей.
Вызывается в методе Relation Service removeRelation().
- Определено в:
-
sendRelationRemovalNotificationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор обновленной связи -
unregMBeanList— список ObjectName MBean, которые ожидают удаления из-за удаления связи (может быть null) - Исключения:
-
IllegalArgumentException— если null параметр -
RelationNotFoundException— связи для данного идентификатора нет
updateRoleMap
public void updateRoleMap(String relationId,
Role newRole,
List<ObjectName> oldValue)
throws IllegalArgumentException,
RelationServiceNotRegisteredException,
RelationNotFoundException Обрабатывает обновление карты ролей службы Relation Service для обновления заданной роли в заданном отношении.
Вызывается в методах setRole() (для заданной роли) и setRoles() (для каждой роли) класса Relation MBean (реализация предоставлена в классе RelationSupport).
Также вызывается в методах setRole() (для заданной роли) и setRoles() (для каждой роли) службы Relation Service.
Для обеспечения согласованности службы Relation Service (в случае разрегистрации MBean) и возможности выполнения запросов, этот метод должен вызываться при обновлении роли.
- Определено в:
-
updateRoleMapв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор отношения обновленного отношения -
newRole— новая роль (имя и новое значение) -
oldValue— старое значение роли (список объектов ObjectName) - Исключения:
-
IllegalArgumentException— если параметр null -
RelationServiceNotRegisteredException— если служба Relation Service не зарегистрирована в сервере MBean -
RelationNotFoundException— если нет отношения для заданного идентификатора.
removeRelation
public void removeRelation(String relationId)
throws RelationServiceNotRegisteredException,
IllegalArgumentException,
RelationNotFoundException Удаляет заданное отношение из службы Relation Service.
Отправляется уведомление RelationNotification, его тип:
- RelationNotification.RELATION_BASIC_REMOVAL, если отношение было только внутренним для Relation Service
- RelationNotification.RELATION_MBEAN_REMOVAL, если отношение зарегистрировано как MBean.
Для MBean, на которые ссылается такое отношение, ничего не будет сделано.
- Определено в:
-
removeRelationв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор отношения, подлежащего удалению - Исключения:
-
RelationServiceNotRegisteredException— если служба Relation Service не зарегистрирована в сервере MBean -
IllegalArgumentException— если параметр null -
RelationNotFoundException— если нет отношения, соответствующего заданному идентификатору отношения
purgeRelations
public void purgeRelations()
throws RelationServiceNotRegisteredException Очищает отношения.
В зависимости от значения purgeFlag, этот метод вызывается либо автоматически при получении уведомления о разрегистрации MBean, на который ссылается отношение (если флаг установлен в true), либо нет (если флаг установлен в false).
В этом случае пользователю необходимо вызывать его для поддержания согласованности отношений. Следует помнить, что если MBean разрегистрирован, а очистка не выполняется немедленно, если ObjectName повторно используется и назначается другому MBean, на который ссылается отношение, ручное вызов метода purgeRelations() приведет к проблемам, так как он будет рассматривать ObjectName как соответствующий разрегистрированному MBean, а не новому.
Поведение зависит от кратности роли, где ссылается разрегистрированный MBean:
- если удаление одной ссылки на MBean в роли уменьшает количество ссылок меньше минимальной степени, отношение должно быть удалено.
- если оставшееся число ссылок после удаления ссылки на MBean все еще находится в диапазоне кратности, сохраните отношение и обновите его, вызвав обратный вызов handleMBeanUnregistration().
- Определено в:
-
purgeRelationsв интерфейсеRelationServiceMBean - Исключения:
-
RelationServiceNotRegisteredException— если служба Relation Service не зарегистрирована в сервере MBean.
findReferencingRelations
public Map<String,List<String>> findReferencingRelations(ObjectName mbeanName,
String relationTypeName,
String roleName)
throws IllegalArgumentException Возвращает отношения, где указанный MBean ссылается.
Это соответствует операциям CIM «References» и «ReferenceNames».
- Определено в:
-
findReferencingRelationsв интерфейсеRelationServiceMBean - Параметры:
-
mbeanName— ObjectName MBean -
relationTypeName— может быть null; если указано, то при поиске будут рассмотрены только отношения указанного типа. В противном случае рассматриваются все типы отношений. -
roleName— может быть null; если указано, то будут возвращены только отношения, где MBean ссылается на эту роль. В противном случае рассматриваются все роли. - Возвращает:
- HashMap, где ключи — идентификаторы отношений, в которых ссылается MBean, а значение — для каждого ключа ArrayList имен ролей (так как MBean может ссылаться на несколько ролей в одном отношении).
- Исключения:
-
IllegalArgumentException— если параметр null
findAssociatedMBeans
public Map<ObjectName,List<String>> findAssociatedMBeans(ObjectName mbeanName,
String relationTypeName,
String roleName)
throws IllegalArgumentException Возвращает MBean, связанные с заданным в отношении.
Это соответствует операциям CIM Associators и AssociatorNames.
- Определено в:
-
findAssociatedMBeansв интерфейсеRelationServiceMBean - Параметры:
-
mbeanName— ObjectName MBean -
relationTypeName— может быть null; если указано, то при поиске будут рассмотрены только отношения указанного типа. В противном случае рассматриваются все типы отношений. -
roleName— может быть null; если указано, то будут рассмотрены только отношения, где MBean ссылается на эту роль. В противном случае рассматриваются все роли. - Возвращает:
- HashMap, где ключи — ObjectNames связанных MBean, а значение — для каждого ключа ArrayList идентификаторов отношений, в которых MBean-ключ связан с заданным (так как они могут быть связаны в нескольких разных отношениях).
- Исключения:
-
IllegalArgumentException— если параметр null
findRelationsOfType
public List<String> findRelationsOfType(String relationTypeName)
throws IllegalArgumentException,
RelationTypeNotFoundException Возвращает идентификаторы отношений заданного типа.
- Определено в:
-
findRelationsOfTypeв интерфейсеRelationServiceMBean - Параметры:
-
relationTypeName— имя типа отношения - Возвращает:
- ArrayList идентификаторов отношений.
- Исключения:
-
IllegalArgumentException— если параметр null -
RelationTypeNotFoundException— если нет типа отношения с таким именем.
getRole
public List<ObjectName> getRole(String relationId,
String roleName)
throws RelationServiceNotRegisteredException,
IllegalArgumentException,
RelationNotFoundException,
RoleNotFoundException Возвращает значение роли для заданного имени роли в заданном отношении.
- Определено в:
-
getRoleв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор отношения -
roleName— имя роли - Возвращает:
- ArrayList объектов ObjectName, являющихся значением роли
- Исключения:
-
RelationServiceNotRegisteredException— если служба Relation Service не зарегистрирована -
IllegalArgumentException— если параметр null -
RelationNotFoundException— если нет отношения с заданным идентификатором -
RoleNotFoundException— если:- нет роли с заданным именем
или
- роль недоступна для чтения.
- См. также:
setRole(java.lang.String, javax.management.relation.Role)
getRoles
public RoleResult getRoles(String relationId,
String[] roleNameArray)
throws RelationServiceNotRegisteredException,
IllegalArgumentException,
RelationNotFoundException Возвращает значения ролей с заданными именами в заданном отношении.
- Определено в:
-
getRolesв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор отношения -
roleNameArray— массив имен ролей, которые необходимо получить - Возвращает:
- объект RoleResult, включающий RoleList (для ролей, успешно полученных) и RoleUnresolvedList (для ролей, которые не были получены).
- Исключения:
-
RelationServiceNotRegisteredException— если служба Relation Service не зарегистрирована в сервере MBean -
IllegalArgumentException— если параметр null -
RelationNotFoundException— если нет отношения с заданным идентификатором - См. также:
setRoles(java.lang.String, javax.management.relation.RoleList)
getAllRoles
public RoleResult getAllRoles(String relationId)
throws IllegalArgumentException,
RelationNotFoundException,
RelationServiceNotRegisteredException Возвращает все роли, присутствующие в отношении.
- Определено в:
-
getAllRolesв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор отношения - Возвращает:
- объект RoleResult, включающий RoleList (для ролей, успешно полученных) и RoleUnresolvedList (для ролей, которые не доступны для чтения).
- Исключения:
-
IllegalArgumentException— если параметр null -
RelationNotFoundException— если нет отношения для заданного идентификатора -
RelationServiceNotRegisteredException— если служба Relation Service не зарегистрирована в сервере MBean
getRoleCardinality
public Integer getRoleCardinality(String relationId,
String roleName)
throws IllegalArgumentException,
RelationNotFoundException,
RoleNotFoundException Возвращает количество MBean, в настоящее время ссылающихся на заданную роль.
- Определено в:
-
getRoleCardinalityв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор отношения -
roleName— имя роли - Возвращает:
- количество MBean, в настоящее время ссылающихся на эту роль
- Исключения:
-
IllegalArgumentException— если параметр null -
RelationNotFoundException— если нет отношения с заданным идентификатором -
RoleNotFoundException— если нет роли с заданным именем
setRole
public void setRole(String relationId,
Role role)
throws RelationServiceNotRegisteredException,
IllegalArgumentException,
RelationNotFoundException,
RoleNotFoundException,
InvalidRoleValueException Устанавливает заданную роль в заданном отношении.
Проверит роль в соответствии с ее соответствующим определением роли, предоставленным в типе отношения.
Служба Relation Service будет отслеживать изменения для поддержания согласованности отношений путем обработки разрегистраций MBean, на которые ссылаются.
- Определено в:
-
setRoleв интерфейсеRelationServiceMBean - Параметры:
-
relationId— идентификатор отношения -
role— назначаемая роль (имя и новое значение) - Исключения:
-
RelationServiceNotRegisteredException— если служба Relation Service не зарегистрирована в сервере MBean -
IllegalArgumentException— если параметр null -
RelationNotFoundException— если нет отношения с заданным идентификатором -
RoleNotFoundException— если роль не существует или не доступна для записи -
InvalidRoleValueException— если предоставленное значение для роли недопустимо:- количество MBean, на которые ссылается заданное значение, меньше ожидаемой минимальной степени
или
- количество MBean, на которые ссылается предоставленное значение, превышает ожидаемую максимальную степень
или
- один ссылающийся MBean в значении не является объектом класса MBean, ожидаемого для этой роли
или
- MBean, предоставленный для этой роли, не существует
- См. также:
getRole(java.lang.String, java.lang.String)
setRoles
public RoleResult setRoles(String relationId,
RoleList roleList)
throws RelationServiceNotRegisteredException,
IllegalArgumentException,
RelationNotFoundException Устанавливает заданные роли в заданном отношении.
Будет проверять роль в соответствии с ее соответствующим определением роли, предоставленным в типе отношения отношения.
Служба отношений отслеживает изменения, чтобы сохранить согласованность отношений, обрабатывая удаления зарегистрированных MBean.
- Определено в:
-
setRolesв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения -
roleList- список ролей, которые нужно установить - Возвращает:
- объект RoleResult, включающий RoleList (для ролей, успешно установленных) и RoleUnresolvedList (для ролей, не установленных).
- Исключения:
-
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована в сервере MBean -
IllegalArgumentException- если параметр null -
RelationNotFoundException- если нет отношения с заданным идентификатором - См. также:
getRoles(java.lang.String, java.lang.String[])
getReferencedMBeans
public Map<ObjectName,List<String>> getReferencedMBeans(String relationId)
throws IllegalArgumentException,
RelationNotFoundException Извлекает MBean, на которые ссылаются различные роли отношения.
- Определено в:
-
getReferencedMBeansв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения - Возвращает:
- словарь HashMap, сопоставляющий:
ObjectName -> ArrayList строк (имена ролей)
- Исключения:
-
IllegalArgumentException- если параметр null -
RelationNotFoundException- если нет отношения для данного идентификатора отношения
getRelationTypeName
public String getRelationTypeName(String relationId)
throws IllegalArgumentException,
RelationNotFoundException Возвращает имя связанного типа отношения для данного отношения.
- Определено в:
-
getRelationTypeNameв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения - Возвращает:
- имя связанного типа отношения.
- Исключения:
-
IllegalArgumentException- если параметр null -
RelationNotFoundException- если нет отношения для данного идентификатора отношения
handleNotification
public void handleNotification(Notification notif,
Object handback) Вызывается при возникновении уведомления JMX. В настоящее время обрабатывает уведомления об отмене регистрации MBean, либо ссылающиеся на роль отношения, либо являющиеся самим отношением.
- Определено в:
-
handleNotificationв интерфейсеNotificationListener - Параметры:
-
notif- Уведомление. -
handback- Непрозрачный объект, который помогает слушателю ассоциировать информацию о создателе MBean (может быть null).
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
Возвращает объект NotificationInfo, содержащий имя Java-класса уведомления и типы отправленных уведомлений.
- Определено в:
-
getNotificationInfoв интерфейсеNotificationBroadcaster - Переопределяет:
-
getNotificationInfoв классеNotificationBroadcasterSupport - Возвращает:
- массив возможных уведомлений.
© 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.