Spec-Zone.ru › OpenJDK 27

Класс 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, чтобы получать уведомления об отмене регистрации MBeans, на которые ссылаются роли отношений, а также MBeans отношений.

Она реализует интерфейс 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)
Получает MBeans, связанные с указанным 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)
Получает количество MBeans, на которые в данный момент ссылается указанная роль.
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)
Обрабатывает обновление карты ролей службы отношений при обновлении указанной роли в указанном отношении.

Методы, объявленные в классе NotificationBroadcasterSupport

addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
Модификатор и тип Метод Описание
void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Добавляет слушателя.
protected void handleNotification(NotificationListener listener, Notification notif, Object handback)
Этот метод вызывается методом sendNotification для каждого слушателя, чтобы отправить ему уведомление.
void removeNotificationListener(NotificationListener listener)
Удаляет слушателя из этого MBean.
void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Удаляет слушателя из этого MBean.
void sendNotification(Notification notification)
Отправляет уведомление.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

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, если параметр имени в одном из методов createMBean или registerMBean интерфейса MBeanServer равен 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), он останется зарегистрированным.

Это может сбить с толку код, вызывающий createMBean() или registerMBean(), поскольку такой код может предположить, что регистрация MBean не удалась, если возникло исключение. Поэтому рекомендуется, чтобы реализации postRegister по возможности не выбрасывали исключения Runtime или Errors.

Определено в:
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 или Errors.

Определено в:
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
Возвращает:
ArrayList с именами типов связей (String)

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
Получает сведения о роли с заданным именем для заданного типа связи.
Определено в:
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 объектов ObjectName.

Отправляется уведомление 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 — если:

— количество ссылающихся 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 объектов String

checkRoleReading

public Integer checkRoleReading(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
Проверяет, можно ли прочитать заданную роль в связи указанного типа.
Определено в:
checkRoleReading в интерфейсе RelationServiceMBean
Параметры:
roleName — имя проверяемой роли
relationTypeName — имя типа связи
Возвращает:
Integer, содержащий целое число, соответствующее возможной проблеме, представленной константой в 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 — флаг, указывающий, что проверка выполняется при инициализации роли; проверять доступ на запись не требуется.
Возвращает:
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

Вызывает исключение:
IllegalArgumentException — если параметр равен null
RelationTypeNotFoundException — если тип связи неизвестен

sendRelationCreationNotification

public void sendRelationCreationNotification(String relationId) throws IllegalArgumentException, RelationNotFoundException
Отправляет уведомление RelationNotification о создании связи. Тип уведомления:

— RelationNotification.RELATION_BASIC_CREATION, если связь является внутренним объектом службы связей

— RelationNotification.RELATION_MBEAN_CREATION, если связь представляет собой MBean, добавленный в качестве связи.

Объектом-источником является сама служба связей.

Вызывается в методах 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, добавленный в качестве связи.

Объектом-источником является сама служба связей.

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

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

Определено в:
sendRoleUpdateNotification в интерфейсе RelationServiceMBean
Параметры:
relationId — идентификатор обновленной связи
newRole — новая роль (имя и новое значение)
oldValue — старое значение роли (List объектов 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, добавленный в качестве связи.

Объектом-источником является сама служба связей.

Вызывается в методе removeRelation() службы связей.

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

updateRoleMap

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

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

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

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

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

removeRelation

public void removeRelation(String relationId) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
Удаляет заданную связь из службы связей.

Отправляется уведомление RelationNotification со следующим типом:

— RelationNotification.RELATION_BASIC_REMOVAL, если связь существовала только внутри службы связей

— RelationNotification.RELATION_MBEAN_REMOVAL, если связь зарегистрирована как MBean.

Для MBean, на которые ссылается такая связь, никаких действий выполняться не будет.

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

purgeRelations

public void purgeRelations() throws RelationServiceNotRegisteredException
Очищает связи.

В зависимости от значения purgeFlag этот метод либо вызывается автоматически при получении уведомления об отмене регистрации MBean, на который ссылается связь (если флаг установлен в true), либо не вызывается (если флаг установлен в false).

В последнем случае пользователь должен вызвать его самостоятельно, чтобы сохранить согласованность связей. Следует учитывать, что если регистрация MBean отменена, а очистка не выполнена немедленно, то повторное использование ObjectName и назначение его другому MBean, на который ссылается связь, может привести к проблемам при ручном вызове метода purgeRelations(): ObjectName будет считаться соответствующим MBean, регистрация которого отменена, а новый MBean не будет обнаружен.

Поведение зависит от кратности роли, в которой указан MBean с отмененной регистрацией:

— если удаление одной ссылки на MBean в роли уменьшает количество ссылок ниже минимальной степени, связь необходимо удалить.

— если после удаления ссылки на MBean оставшееся количество ссылок по-прежнему находится в диапазоне кратности, связь сохраняется и обновляется вызовом ее обратного вызова handleMBeanUnregistration().

Определено в:
purgeRelations в интерфейсе RelationServiceMBean
Вызывает исключение:
RelationServiceNotRegisteredException — если служба связей не зарегистрирована на сервере 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
Возвращает MBeans, связанные с указанным MBean в отношении.

Это соответствует операциям CIM Associators и AssociatorNames.

Указано в:
findAssociatedMBeans в интерфейсе RelationServiceMBean
Параметры:
mbeanName - ObjectName объекта MBean
relationTypeName - может быть null; если указано, при поиске будут рассматриваться только отношения этого типа. В противном случае рассматриваются все типы отношений.
roleName - может быть null; если указано, будут рассматриваться только отношения, в которых MBean является объектом ссылки в этой роли. В противном случае рассматриваются все роли.
Возвращает:
HashMap, в котором ключами являются ObjectName объектов 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(String, 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(String, 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
Возвращает количество MBeans, на которые в данный момент ссылается указанная роль.
Указано в:
getRoleCardinality в интерфейсе RelationServiceMBean
Параметры:
relationId - идентификатор отношения
roleName - имя роли
Возвращает:
количество MBeans, на которые в данный момент ссылается эта роль
Вызывает исключения:
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 - если заданное для роли значение недопустимо:

- количество MBeans, на которые ссылается заданное значение, меньше ожидаемой минимальной степени

или

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

или

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

или

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

См. также:
  • getRole(String, 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(String, String[])

getReferencedMBeans

public Map<ObjectName, List<String>> getReferencedMBeans(String relationId) throws IllegalArgumentException, RelationNotFoundException
Возвращает MBeans, на которые ссылаются различные роли отношения.
Указано в:
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. В настоящее время обрабатывает уведомления об отмене регистрации MBeans: как MBeans, на которые ссылается роль отношения, так и самих отношений.
Указано в:
handleNotification в интерфейсе NotificationListener
Параметры:
notif - уведомление.
handback - непрозрачный объект, который помогает слушателю связать сведения об источнике MBean (может быть null).

getNotificationInfo

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания, ориентированные на разработчиков, с концептуальными обзорами, определениями терминов, обходными решениями и рабочими примерами кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

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