Spec-Zone.ru › OpenJDK 25

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

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

addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification

Методы, объявленные в классе 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. В этом случае данный метод должен вернуть ненулевой 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 завершилась неудачей, если было выброшено такое исключение. Поэтому рекомендуется, по возможности, не выбрасывать исключения RuntimeException или ошибки в реализациях postRegister.

Определено в:
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 с регистрации завершилось неудачей. Поэтому рекомендуется, по возможности, не выбрасывать исключения RuntimeException или ошибки в реализациях postDeregister.

Определено в:
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 — прежнее значение роли (список объектов 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 — список 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 — прежнее значение роли (список объектов 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 число оставшихся ссылок по-прежнему входит в допустимый диапазон кратности, связь сохраняется и обновляется вызовом её обратного вызова 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
Возвращает MBean, связанные с указанным 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 Server
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 Server

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 Server
IllegalArgumentException - если параметр равен null
RelationNotFoundException - если отношения с указанным идентификатором не существует
RoleNotFoundException - если роль не существует или недоступна для записи
InvalidRoleValueException - если указанное значение роли недопустимо:

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

или

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

или

- один из MBean, на которые ссылается значение, не является объектом ожидаемого для этой роли класса 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 Server
IllegalArgumentException - если параметр равен null
RelationNotFoundException - если отношения с указанным идентификатором не существует
См. также:
  • getRoles(String, String[])

getReferencedMBeans

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

ObjectName -> ArrayList String (имён ролей)

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

getNotificationInfo

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/relation/RelationService.html

Spec-Zone.ru

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