Spec-Zone.ru › OpenJDK 17

Класс 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.

С тех пор:
1.5

Краткое описание конструкторов

Конструктор Описание
RelationService(boolean immediatePurgeFlag)
Конструктор.

Краткое описание методов

Модификатор и тип Метод Описание
void addRelation(ObjectName relationObjectName)
Добавляет MBean, созданный пользователем (и зарегистрированный им на сервере MBean), как взаимосвязь в службу взаимосвязей.
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)
Возвращает 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 - Если:

- тип отношения с таким именем уже существует

- одно и то же имя использовалось для двух различных ролей

- информация о роли не предоставлена

- предоставлена одна нулевая информация о роли

addRelationType

public void addRelationType(RelationType relationTypeObj) throws IllegalArgumentException, InvalidRelationTypeException
Добавляет заданный объект как тип отношения. Ожидается, что объект реализует интерфейс RelationType.
Определено в:
addRelationType в интерфейсе RelationServiceMBean
Параметры:
relationTypeObj - объект типа отношения (реализующий интерфейс RelationType)
Исключения:
IllegalArgumentException - если параметр null или если relationTypeObj.getRelationTypeName() возвращает null.
InvalidRelationTypeException - если:

- одно и то же имя использовалось для двух разных ролей

- информация о роли не предоставлена

- предоставлена одна нулевая информация о роли

- тип отношения с таким именем уже существует

getAllRelationTypeNames

public List<String> getAllRelationTypeNames()
Получает имена всех известных типов отношений.
Определено в:
getAllRelationTypeNames в интерфейсе RelationServiceMBean
Возвращает:
ArrayList имен типов отношений (строки)

getRoleInfos

public List<RoleInfo> getRoleInfos(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
Получает список информации о ролях (объекты RoleInfo) заданного типа отношения.
Определено в:
getRoleInfos в интерфейсе RelationServiceMBean
Параметры:
relationTypeName - имя типа отношения
Возвращает:
ArrayList объектов RoleInfo.
Исключения:
IllegalArgumentException - если параметр null
RelationTypeNotFoundException - если нет типа отношения с таким именем.

getRoleInfo

public RoleInfo getRoleInfo(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
Извлекает информацию о роли для заданного имени роли определённого типа отношения.
Specified by:
getRoleInfo в интерфейсе RelationServiceMBean
Parameters:
relationTypeName - имя типа отношения
roleInfoName - имя роли
Returns:
Объект RoleInfo.
Throws:
IllegalArgumentException - если параметр null
RelationTypeNotFoundException - если тип отношения неизвестен в службе отношений
RoleInfoNotFoundException - если роль не является частью типа отношения.

removeRelationType

public void removeRelationType(String relationTypeName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationTypeNotFoundException
Удаляет заданный тип отношения из службы отношений.

Объекты отношений этого типа будут удалены из службы отношений.

Specified by:
removeRelationType в интерфейсе RelationServiceMBean
Parameters:
relationTypeName - имя типа отношения для удаления
Throws:
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.

Specified by:
createRelation в интерфейсе RelationServiceMBean
Parameters:
relationId - идентификатор отношения, для уникальной идентификации отношения внутри службы отношений
relationTypeName - имя типа отношения (должно быть создано в службе отношений)
roleList - список ролей для инициализации ролей отношения (может быть null).
Throws:
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 текущей службы отношений

- иметь уникальный и неиспользованный идентификатор отношения в текущей службе отношений

- иметь для типа отношения тип отношения, созданный в службе отношений

- иметь роли, соответствующие информации о роли, предоставленной в типе отношения.

Specified by:
addRelation в интерфейсе RelationServiceMBean
Parameters:
relationObjectName - ObjectName MBean отношения, который должен быть добавлен.
Throws:
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.
Specified by:
isRelationMBean в интерфейсе RelationServiceMBean
Parameters:
relationId - идентификатор отношения, определяющий отношение
Returns:
ObjectName соответствующего MBean отношения или null, если отношение не является MBean.
Throws:
IllegalArgumentException - если параметр null
RelationNotFoundException - нет отношения, связанного с этим идентификатором

isRelation

public String isRelation(ObjectName objectName) throws IllegalArgumentException
Возвращает идентификатор отношения, связанный с заданным ObjectName, если MBean был добавлен в качестве отношения в службу отношений.
Specified by:
isRelation в интерфейсе RelationServiceMBean
Parameters:
objectName - ObjectName предполагаемого отношения
Returns:
идентификатор отношения (строка) или null (если ObjectName не является отношением, обрабатываемым службой отношений)
Throws:
IllegalArgumentException - если параметр null

hasRelation

public Boolean hasRelation(String relationId) throws IllegalArgumentException
Проверяет, существует ли отношение, идентифицируемое в службе отношений, с заданным идентификатором отношения.
Specified by:
hasRelation в интерфейсе RelationServiceMBean
Parameters:
relationId - идентификатор отношения, определяющий отношение
Returns:
boolean: true, если отношение существует, false иначе
Throws:
IllegalArgumentException - если параметр null

getAllRelationIds

public List<String> getAllRelationIds()
Возвращает все идентификаторы отношений для всех отношений, обрабатываемых службой отношений.
Specified by:
getAllRelationIds в интерфейсе RelationServiceMBean
Returns:
ArrayList строк

checkRoleReading

public Integer checkRoleReading(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
Проверяет, может ли заданная роль быть прочитана в отношении заданного типа.
Specified by:
checkRoleReading в интерфейсе RelationServiceMBean
Parameters:
roleName - имя роли для проверки
relationTypeName - имя типа отношения
Returns:
объект Integer, содержащий целое число, соответствующее возможным проблемам, представленным константами в RoleUnresolved:

- 0, если роль может быть прочитана

- целое число, соответствующее RoleStatus.NO_ROLE_WITH_NAME

- целое число, соответствующее RoleStatus.ROLE_NOT_READABLE

Throws:
IllegalArgumentException - если параметр null
RelationTypeNotFoundException - если тип отношения неизвестен в службе отношений

checkRoleWriting

public Integer checkRoleWriting(Role role, String relationTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException
Проверяет, может ли заданная роль быть установлена в отношении заданного типа.
Specified by:
checkRoleWriting в интерфейсе RelationServiceMBean
Parameters:
role - проверяемая роль
relationTypeName - имя типа отношения
initFlag - флаг, указывающий, что проверка выполняется для инициализации роли, доступ для записи не будет проверяться.
Returns:
объект Integer, содержащий целое число, соответствующее возможным проблемам, представленным константами в 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, если отношение является внутренним объектом службы отношений

- RelationNotification.RELATION_MBEAN_CREATION, если отношение является добавленным MBean.

Источник — сама служба отношений.

Вызывается в методах createRelation() и addRelation() службы отношений.

Specified by:
sendRelationCreationNotification в интерфейсе RelationServiceMBean
Parameters:
relationId - идентификатор обновлённого отношения
Throws:
IllegalArgumentException - если параметр null
RelationNotFoundException - если для данного идентификатора отношения нет отношения
END_OF_DOCUMENT_MARKER

Обновить уведомление о роли

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).

Также вызывается в методах Relation Service setRole() (для заданной роли) и setRoles() (для каждой роли).

Определено в:
sendRoleUpdateNotification в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор обновленного отношения
newRole — новая роль (имя и новое значение)
oldValue — старое значение роли (список объектов ObjectName)
Исключения:
IllegalArgumentException — если параметр равен null
RelationNotFoundException — если для данного идентификатора отношения нет отношения

Отправить уведомление об удалении отношения

public void sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList) throws IllegalArgumentException, RelationNotFoundException
Отправляет уведомление (RelationNotification) об удалении отношения. Тип уведомления:

- RelationNotification.RELATION_BASIC_REMOVAL, если отношение было только внутренним для Relation Service

- RelationNotification.RELATION_MBEAN_REMOVAL, если отношение зарегистрировано как MBean.

Для MBeans, на которые ссылается такое отношение, ничего не будет сделано.

Вызывается в методе Relation Service removeRelation().

Определено в:
sendRelationRemovalNotification в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор обновленного отношения
unregMBeanList — список ObjectName MBeans, ожидаемых для отмены регистрации из-за удаления отношения (может быть null)
Исключения:
IllegalArgumentException — если параметр равен null
RelationNotFoundException — если для данного идентификатора отношения нет отношения

Обновить карту ролей

public void updateRoleMap(String relationId, Role newRole, List<ObjectName> oldValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
Обрабатывает обновление карты ролей Relation Service для обновления заданной роли в данном отношении.

Вызывается в методах setRole() (для заданной роли) и setRoles() (для каждой роли) MBean отношения (реализация предоставлена в классе RelationSupport).

Также вызывается в методах Relation Service setRole() (для заданной роли) и setRoles() (для каждой роли).

Чтобы разрешить Relation Service поддерживать согласованность (в случае отмены регистрации MBean) и для возможности выполнения запросов, этот метод должен быть вызван при обновлении роли.

Определено в:
updateRoleMap в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор обновленного отношения
newRole — новая роль (имя и новое значение)
oldValue — старое значение роли (список объектов ObjectName)
Исключения:
IllegalArgumentException — если параметр равен null
RelationServiceNotRegisteredException — если Relation Service не зарегистрирован в MBean Server
RelationNotFoundException — если нет отношения для данного идентификатора.

Удалить отношение

public void removeRelation(String relationId) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
Удаляет заданное отношение из Relation Service.

Отправляется уведомление RelationNotification, тип которого:

- RelationNotification.RELATION_BASIC_REMOVAL, если отношение было только внутренним для Relation Service

- RelationNotification.RELATION_MBEAN_REMOVAL, если отношение зарегистрировано как MBean.

Для MBeans, на которые ссылается такое отношение, ничего не будет сделано.

Определено в:
removeRelation в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор отношения, подлежащего удалению
Исключения:
RelationServiceNotRegisteredException — если Relation Service не зарегистрирован в MBean Server
IllegalArgumentException — если параметр равен null
RelationNotFoundException — если нет отношения, соответствующего данному идентификатору отношения

Очистить отношения

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 Server.

Найти ссылающиеся отношения

public Map<String,List<String>> findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
Возвращает отношения, где указанный MBean ссылается.

Это соответствует операциям CIM «Ссылки» и «Имена ссылок».

Определено в:
findReferencingRelations в интерфейсе RelationServiceMBean
Параметры:
mbeanName — ObjectName MBean
relationTypeName — может быть null; если указано, при поиске будут рассматриваться только отношения этого типа. Иначе рассматриваются все типы отношений.
roleName — может быть null; если указано, будут возвращены только отношения, где MBean ссылается в этой роли. Иначе рассматриваются все роли.
Возвращаемое значение:
HashMap, где ключи — идентификаторы отношений, где MBean ссылается, а значение — для каждого ключа, список имен ролей (так как MBean может ссылаться на несколько ролей в одном отношении).
Исключения:
IllegalArgumentException — если параметр равен null

Найти связанные MBeans

public Map<ObjectName,List<String>> findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
Возвращает MBeans, связанные с заданным в отношении.

Это соответствует операциям CIM «Ассоциированные» и «Имена ассоциатов».

Определено в:
findAssociatedMBeans в интерфейсе RelationServiceMBean
Параметры:
mbeanName — ObjectName MBean
relationTypeName — может быть null; если указано, при поиске будут рассматриваться только отношения этого типа. Иначе рассматриваются все типы отношений.
roleName — может быть null; если указано, будут рассматриваться только отношения, где MBean ссылается в этой роли. Иначе рассматриваются все роли.
Возвращаемое значение:
HashMap, где ключи — ObjectNames связанных MBeans, а значение — для каждого ключа, список идентификаторов отношений, в которых ключевой MBean связан с данным (поскольку они могут быть связаны в нескольких различных отношениях).
Исключения:
IllegalArgumentException — если параметр равен null

Найти отношения типа

public List<String> findRelationsOfType(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
Возвращает идентификаторы отношений для отношений заданного типа.
Определено в:
findRelationsOfType в интерфейсе RelationServiceMBean
Параметры:
relationTypeName — имя типа отношения
Возвращаемое значение:
Список идентификаторов отношений.
Исключения:
IllegalArgumentException — если параметр равен null
RelationTypeNotFoundException — если нет типа отношения с этим именем.

Получить роль

public List<ObjectName> getRole(String relationId, String roleName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
Получает значение роли для заданного имени роли в заданном отношении.
Определено в:
getRole в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор отношения
roleName — имя роли
Возвращаемое значение:
Список объектов ObjectName, представляющий значение роли
Исключения:
RelationServiceNotRegisteredException — если Relation Service не зарегистрирован
IllegalArgumentException — если параметр равен null
RelationNotFoundException — если нет отношения с данным идентификатором
RoleNotFoundException — если:

- нет роли с заданным именем

или

- роль недоступна для чтения.

См. также:
  • setRole(java.lang.String, javax.management.relation.Role)

Получить роли

public RoleResult getRoles(String relationId, String[] roleNameArray) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
Получает значения ролей с заданными именами в заданном отношении.
Определено в:
getRoles в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор отношения
roleNameArray — массив имен ролей для получения
Возвращаемое значение:
Объект RoleResult, включающий RoleList (для успешно полученных ролей) и RoleUnresolvedList (для ролей, не полученных).
Исключения:
RelationServiceNotRegisteredException — если Relation Service не зарегистрирован в MBean Server
IllegalArgumentException — если параметр равен null
RelationNotFoundException — если нет отношения с данным идентификатором
См. также:
  • setRoles(java.lang.String, javax.management.relation.RoleList)

getAllRoles

public RoleResult getAllRoles(String relationId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
Возвращает все роли, присутствующие в отношении.
Specified by:
getAllRoles в интерфейсе RelationServiceMBean
Parameters:
relationId - идентификатор отношения
Returns:
объект RoleResult, содержащий список ролей (для успешно полученных ролей) и список неразрешенных ролей (для ролей, недоступных для чтения).
Throws:
IllegalArgumentException - если параметр null
RelationNotFoundException - если нет отношения с заданным идентификатором
RelationServiceNotRegisteredException - если служба отношений не зарегистрирована в сервере MBean

getRoleCardinality

public Integer getRoleCardinality(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
Получает количество MBean, в настоящее время ссылающихся на заданную роль.
Specified by:
getRoleCardinality в интерфейсе RelationServiceMBean
Parameters:
relationId - идентификатор отношения
roleName - имя роли
Returns:
количество MBean, в настоящее время ссылающихся на эту роль
Throws:
IllegalArgumentException - если параметр null
RelationNotFoundException - если нет отношения с заданным идентификатором
RoleNotFoundException - если нет роли с заданным именем

setRole

public void setRole(String relationId, Role role) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException, InvalidRoleValueException
Устанавливает заданную роль в заданном отношении.

Будет проверять роль в соответствии с соответствующим определением роли, указанным в типе отношения.

Служба отношений будет отслеживать изменения для поддержания согласованности отношений, обрабатывая отмены регистрации ссылающихся MBean.

Specified by:
setRole в интерфейсе RelationServiceMBean
Parameters:
relationId - идентификатор отношения
role - роль, которая должна быть установлена (имя и новое значение)
Throws:
RelationServiceNotRegisteredException - если служба отношений не зарегистрирована в сервере MBean
IllegalArgumentException - если параметр null
RelationNotFoundException - если нет отношения с заданным идентификатором
RoleNotFoundException - если роль не существует или не доступна для записи
InvalidRoleValueException - если предоставленное значение для роли недействительно:

- количество ссылающихся MBean в данном значении меньше ожидаемой минимальной степени

или

- количество ссылающихся MBean в предоставленном значении превышает ожидаемую максимальную степень

или

- один из ссылающихся MBean в значении не является объектом ожидаемого класса MBean для этой роли

или

- MBean, предоставленный для этой роли, не существует

See Also:
  • getRole(java.lang.String, java.lang.String)

setRoles

public RoleResult setRoles(String relationId, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
Устанавливает заданные роли в заданном отношении.

Будет проверять роли в соответствии с их определением в типе отношения.

Служба отношений отслеживает изменения для поддержания согласованности отношений, обрабатывая отмены регистрации ссылающихся MBean.

Specified by:
setRoles в интерфейсе RelationServiceMBean
Parameters:
relationId - идентификатор отношения
roleList - список ролей, которые нужно установить
Returns:
объект RoleResult, содержащий список ролей (для успешно установленных ролей) и список неразрешенных ролей (для ролей, которые не были установлены).
Throws:
RelationServiceNotRegisteredException - если служба отношений не зарегистрирована в сервере MBean
IllegalArgumentException - если параметр null
RelationNotFoundException - если нет отношения с заданным идентификатором
See Also:
  • getRoles(java.lang.String, java.lang.String[])

getReferencedMBeans

public Map<ObjectName,List<String>> getReferencedMBeans(String relationId) throws IllegalArgumentException, RelationNotFoundException
Получает MBean, ссылающиеся на различные роли отношения.
Specified by:
getReferencedMBeans в интерфейсе RelationServiceMBean
Parameters:
relationId - идентификатор отношения
Returns:
HashMap, сопоставляющий:

ObjectName -> ArrayList строк (имена ролей)

Throws:
IllegalArgumentException - если параметр null
RelationNotFoundException - если нет отношения с заданным идентификатором

getRelationTypeName

public String getRelationTypeName(String relationId) throws IllegalArgumentException, RelationNotFoundException
Возвращает имя связанного типа отношения для данного отношения.
Specified by:
getRelationTypeName в интерфейсе RelationServiceMBean
Parameters:
relationId - идентификатор отношения
Returns:
имя связанного типа отношения.
Throws:
IllegalArgumentException - если параметр null
RelationNotFoundException - если нет отношения с заданным идентификатором

handleNotification

public void handleNotification(Notification notif, Object handback)
Вызывается при возникновении уведомления JMX. В настоящее время обрабатывает уведомления об отмене регистрации MBean, которые либо ссылаются на роль в отношении, либо являются самим отношением.
Specified by:
handleNotification в интерфейсе NotificationListener
Parameters:
notif - уведомление.
handback - Непрозрачный объект, который помогает слушателю связать информацию о создателе MBean (может быть null).

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
Возвращает объект NotificationInfo, содержащий имя Java-класса уведомления и типы уведомлений, которые отправляются.
Specified by:
getNotificationInfo в интерфейсе NotificationBroadcaster
Returns:
массив возможных уведомлений.

© 1993, 2021, 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/17/docs/api/java.management/javax/management/relation/RelationService.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API