Класс 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, связанные с заданным 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) | Возвращает MBeans, на которые ссылаются различные роли отношения. |
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 | 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, sendNotification Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы, объявленные в интерфейсе javax.management.MBeanRegistration
postDeregister, postRegister, preDeregister, preRegister Методы, объявленные в интерфейсе javax.management.NotificationBroadcaster
removeNotificationListener Методы, объявленные в интерфейсе javax.management.NotificationEmitter
removeNotificationListener Конструкторы
RelationService
public RelationService(boolean immediatePurgeFlag)
Конструктор.
- Параметры:
-
immediatePurgeFlag- флаг, указывающий, следует ли при получении уведомления об отмене регистрации MBean, связанного с отношением, немедленно очистить отношения (поискать недействительные отношения) или это будет выполнено только при явном вызове метода purgeRelations.true — немедленная очистка.
Методы
isActive
public void isActive()
throws RelationServiceNotRegisteredException Проверяет, активна ли служба отношений. Текущее условие заключается в том, что служба отношений должна быть зарегистрирована в сервере MBean.
- Определено в:
-
isActiveв интерфейсеRelationServiceMBean - Исключения:
-
RelationServiceNotRegisteredException- если она не зарегистрирована
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
- иметь для ObjectName RelationService 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— если:- количество ссылающихся MBeans в роли меньше ожидаемой минимальной степени
- количество ссылающихся MBeans в роли превышает ожидаемую максимальную степень
- один ссылающийся 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 предполагаемого отношения - Возвращает:
- идентификатор отношения (строка) или null (если ObjectName не является отношением, обрабатываемым службой отношений)
- Исключения:
-
IllegalArgumentException— если параметр null
hasRelation
public Boolean hasRelation(String relationId)
throws IllegalArgumentException Проверяет, есть ли отношение, идентифицируемое в службе отношений, с заданным идентификатором отношения.
- Specified by:
-
hasRelationin interfaceRelationServiceMBean - Parameters:
-
relationId- идентификатор отношения, определяющий отношение - Returns:
- boolean: true, если отношение существует, false в противном случае
- Throws:
-
IllegalArgumentException- если параметр null
getAllRelationIds
public List<String> getAllRelationIds()
Возвращает все идентификаторы отношений для всех отношений, обрабатываемых службой Relation Service.
- Specified by:
-
getAllRelationIdsin interfaceRelationServiceMBean - Returns:
- ArrayList of String
checkRoleReading
public Integer checkRoleReading(String roleName,
String relationTypeName)
throws IllegalArgumentException,
RelationTypeNotFoundException Проверяет, может ли заданная роль быть прочитана в отношении данного типа.
- Specified by:
-
checkRoleReadingin interfaceRelationServiceMBean - Parameters:
-
roleName- имя роли для проверки -
relationTypeName- имя типа отношения - Returns:
- целое число, представляющее возможные проблемы, представленные как константы в RoleUnresolved:
- 0, если роль может быть прочитана
- целое число, соответствующее RoleStatus.NO_ROLE_WITH_NAME
- целое число, соответствующее RoleStatus.ROLE_NOT_READABLE
- Throws:
-
IllegalArgumentException- если параметр null -
RelationTypeNotFoundException- если тип отношения неизвестен в службе Relation Service
checkRoleWriting
public Integer checkRoleWriting(Role role,
String relationTypeName,
Boolean initFlag)
throws IllegalArgumentException,
RelationTypeNotFoundException Проверяет, может ли заданная роль быть установлена в отношении данного типа.
- Specified by:
-
checkRoleWritingin interfaceRelationServiceMBean - Parameters:
-
role- роль для проверки -
relationTypeName- имя типа отношения -
initFlag- флаг, указывающий, что проверка выполняется для инициализации роли, доступ на запись не будет проверен. - Returns:
- целое число, представляющее возможные проблемы, представленные как константы в 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
- Throws:
-
IllegalArgumentException- если параметр null -
RelationTypeNotFoundException- если неизвестный тип отношения
sendRelationCreationNotification
public void sendRelationCreationNotification(String relationId)
throws IllegalArgumentException,
RelationNotFoundException Отправляет уведомление (RelationNotification) о создании отношения. Тип уведомления:
- RelationNotification.RELATION_BASIC_CREATION, если отношение является внутренним объектом службы Relation Service
- RelationNotification.RELATION_MBEAN_CREATION, если отношение является MBean, добавленным как отношение.
Объектом источника является сама служба Relation Service.
Вызывается в методах createRelation() и addRelation() службы Relation Service.
- Specified by:
-
sendRelationCreationNotificationin interfaceRelationServiceMBean - Parameters:
-
relationId- идентификатор отношения обновленного отношения - Throws:
-
IllegalArgumentException- если параметр null -
RelationNotFoundException- если нет отношения для данного идентификатора отношения
sendRoleUpdateNotification
public void sendRoleUpdateNotification(String relationId,
Role newRole,
List<ObjectName> oldValue)
throws IllegalArgumentException,
RelationNotFoundException Отправляет уведомление (RelationNotification) об обновлении роли в данном отношении. Тип уведомления:
- RelationNotification.RELATION_BASIC_UPDATE, если отношение является внутренним объектом службы Relation Service
- RelationNotification.RELATION_MBEAN_UPDATE, если отношение является MBean, добавленным как отношение.
Объектом источника является сама служба Relation Service.
Вызывается в методах setRole() (для данной роли) и setRoles() (для каждой роли) MBean отношения (реализация, предоставленная в классе RelationSupport).
Также вызывается в методах setRole() (для данной роли) и setRoles() (для каждой роли) службы Relation Service.
- Specified by:
-
sendRoleUpdateNotificationin interfaceRelationServiceMBean - Parameters:
-
relationId- идентификатор отношения обновленного отношения -
newRole- новая роль (имя и новое значение) -
oldValue- старое значение роли (список объектов ObjectName) - Throws:
-
IllegalArgumentException- если параметр null -
RelationNotFoundException- если нет отношения для данного идентификатора отношения
sendRelationRemovalNotification
public void sendRelationRemovalNotification(String relationId,
List<ObjectName> unregMBeanList)
throws IllegalArgumentException,
RelationNotFoundException Отправляет уведомление (RelationNotification) об удалении отношения. Тип уведомления:
- RelationNotification.RELATION_BASIC_REMOVAL, если отношение было только внутренним для службы Relation Service
- RelationNotification.RELATION_MBEAN_REMOVAL, если отношение зарегистрировано как MBean.
Для MBean, на которые ссылается такое отношение, ничего не будет сделано,
- Specified by:
-
sendRelationRemovalNotificationin interfaceRelationServiceMBean - Parameters:
-
relationId- идентификатор отношения обновленного отношения -
unregMBeanList- список ObjectNames MBean, которые должны быть отменены регистрации из-за удаления отношения (может быть null) - Throws:
-
IllegalArgumentException- если параметр null -
RelationNotFoundException- если нет отношения для данного идентификатора отношения
updateRoleMap
public void updateRoleMap(String relationId,
Role newRole,
List<ObjectName> oldValue)
throws IllegalArgumentException,
RelationServiceNotRegisteredException,
RelationNotFoundException Обрабатывает обновление карты ролей службы Relation Service для обновления данной роли в данном отношении.
Вызывается в методах setRole() (для данной роли) и setRoles() (для каждой роли) MBean отношения (реализация, предоставленная в классе RelationSupport).
Также вызывается в методах setRole() (для данной роли) и setRoles() (для каждой роли) службы Relation Service.
Чтобы позволить службе Relation Service поддерживать согласованность (в случае отмены регистрации MBean) и иметь возможность выполнять запросы, этот метод должен вызываться при обновлении роли.
- Specified by:
-
updateRoleMapin interfaceRelationServiceMBean - Parameters:
-
relationId- идентификатор отношения обновленного отношения -
newRole- новая роль (имя и новое значение) -
oldValue- старое значение роли (список объектов ObjectName) - Throws:
-
IllegalArgumentException- если параметр null -
RelationServiceNotRegisteredException- если служба Relation Service не зарегистрирована в MBean Server -
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, на которые ссылается такое отношение, ничего не будет сделано,
- Specified by:
-
removeRelationin interfaceRelationServiceMBean - Parameters:
-
relationId- идентификатор отношения, которое нужно удалить - Throws:
-
RelationServiceNotRegisteredException- если служба Relation Service не зарегистрирована в MBean Server -
IllegalArgumentException- если параметр null -
RelationNotFoundException- если нет отношения, соответствующего данному идентификатору отношения
purgeRelations
public void purgeRelations()
throws RelationServiceNotRegisteredException Очищает отношения.
В зависимости от значения purgeFlag этот метод либо вызывается автоматически при получении уведомления об отмене регистрации MBean, на который ссылается отношение (если флаг установлен в true), либо нет (если флаг установлен в false).
В этом случае пользователь должен вызвать его, чтобы поддерживать согласованность отношений. Следует помнить, что если MBean отменен регистрации, а очистка не выполнена немедленно, если ObjectName используется повторно и присваивается другому MBean, на который ссылается отношение, вызов этого метода purgeRelations() вручную вызовет проблемы, поскольку будет рассматривать ObjectName как соответствующий отмененному MBean, не видя новый.
Поведение зависит от кардинальности роли, в которой указан отмененный MBean:
- если удаление одной ссылки MBean в роли делает количество ссылок меньше минимальной степени, отношение должно быть удалено.
- если оставшееся количество ссылок после удаления ссылки MBean по-прежнему находится в диапазоне кардинальности, сохраните отношение и обновите его, вызвав его обратный вызов handleMBeanUnregistration().
- Specified by:
-
purgeRelationsin interfaceRelationServiceMBean - Throws:
-
RelationServiceNotRegisteredException- если служба Relation Service не зарегистрирована в MBean Server.
findReferencingRelations
public Map<String,List<String>> findReferencingRelations(ObjectName mbeanName,
String relationTypeName,
String roleName)
throws IllegalArgumentException Извлекает отношения, где указан MBean.
Это соответствует операциям CIM "References" и "ReferenceNames".
- Specified by:
-
findReferencingRelationsin interfaceRelationServiceMBean - Parameters:
-
mbeanName- ObjectName MBean -
relationTypeName- может быть null; если указан, в поиске будут учитываться только отношения этого типа. В противном случае учитываются все типы отношений. -
roleName- может быть null; если указан, будут возвращены только отношения, где на MBean ссылается эта роль. В противном случае учитываются все роли. - Returns:
- HashMap, где ключи - это идентификаторы отношений, где указан MBean, а значение - для каждого ключа - ArrayList имен ролей (поскольку на MBean может ссылаться несколько ролей в одном отношении).
- Throws:
-
IllegalArgumentException- если параметр null
findAssociatedMBeans
public Map<ObjectName,List<String>> findAssociatedMBeans(ObjectName mbeanName,
String relationTypeName,
String roleName)
throws IllegalArgumentException Извлекает MBean, связанные с данным в отношении.
Это соответствует операциям CIM Associators и AssociatorNames.
- Указано в:
-
findAssociatedMBeansв интерфейсеRelationServiceMBean - Параметры:
-
mbeanName- Имя объекта MBean -
relationTypeName- может быть null; если указано, то при поиске будут учитываться только отношения этого типа. В противном случае учитываются все типы отношений. -
roleName- может быть null; если указано, то при поиске будут учитываться только отношения, где MBean упоминается в этой роли. В противном случае учитываются все роли. - Возвращает:
- словарь HashMap, где ключами являются имена объектов MBean, связанных с данным MBean, а значениями для каждого ключа — список ArrayList идентификаторов отношений, в которых MBean-ключ связан с данным 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- если служба отношений не зарегистрирована -
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- если служба отношений не зарегистрирована в сервере 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- если служба отношений не зарегистрирована в сервере 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 Устанавливает заданную роль в заданном отношении.
Проверит роль в соответствии с её определением, предоставленным в типе отношения.
Служба отношений будет отслеживать изменения, чтобы сохранить согласованность отношений, обрабатывая удаления зарегистрированных MBean.
- Указано в:
-
setRoleв интерфейсеRelationServiceMBean - Параметры:
-
relationId- идентификатор отношения -
role- роль, которая должна быть установлена (имя и новое значение) - Исключения:
-
RelationServiceNotRegisteredException- если служба отношений не зарегистрирована в сервере 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, отображающий:
Имя объекта -> список 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 - Возвращает:
- массив возможных событий.
© 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.management/javax/management/relation/RelationService.html