Spec-Zone.ru › OpenJDK 17

Пакет javax.management.relation

package javax.management.relation

Определяет Сервис отношений. Сервис отношений используется для записи взаимосвязей между MBean в сервере MBean. Сам Сервис отношений является MBean. В сервере MBean может быть зарегистрировано более одной инстанции MBean типа RelationService.

Тип отношения определяет отношение между MBean. Он содержит роли, которые играют MBean в отношении. Обычно в типе отношения есть, по крайней мере, две роли.

Отношение — это именованная инстанция типа отношения, где конкретные MBean появляются в ролях, представленных их ObjectName.

Например, предположим, что есть Module MBean, представляющие модули в приложении. Тип отношения DependsOn может выражать отношение, что некоторые модули зависят от других, что может использоваться для определения порядка запуска или остановки модулей. Тип отношения DependsOn будет иметь две роли, dependent и dependedOn.

Каждая роль типизирована, что означает, что MBean, появляющийся в этой роли, должен быть экземпляром типа роли. В примере DependsOn обе роли будут типа Module.

У каждой роли есть кардинальность, которая устанавливает нижнюю и верхнюю границы количества MBean, которые могут появиться в этой роли в данной инстанции отношения. Обычно нижняя и верхняя границы равны 1, и в роли появляется ровно один MBean. Кардинальность ограничивает только количество MBean в роли для каждой инстанции отношения. Один и тот же MBean может появляться в одной и той же роли в любом количестве инстанций типа отношения. В примере DependsOn определенный модуль может зависеть от многих других модулей и зависеть от многих других, но каждая конкретная инстанция отношения связывает ровно один dependent модуль с ровно одним dependedOn модулем.

Тип отношения может быть создан явно как объект, реализующий интерфейс RelationType, обычно это RelationTypeSupport. В качестве альтернативы он может быть создан неявно с помощью метода createRelationType Сервиса отношений.

Инстанцию отношения можно создать явно как объект, реализующий интерфейс Relation, обычно это RelationSupport. (Инстанция отношения сама по себе является допустимым MBean, поэтому она может быть зарегистрирована в сервере MBean, хотя это необязательно.) В качестве альтернативы инстанцию отношения можно создать неявно, используя метод createRelation Сервиса отношений.

Пример DependsOn может быть реализован следующим образом.

import java.util.*;
import javax.management.*;
import javax.management.relation.*;

// ...
MBeanServer mbs = ...;

// Create the Relation Service MBean
ObjectName relSvcName = new ObjectName(":type=RelationService");
RelationService relSvcObject = new RelationService(true);
mbs.registerMBean(relSvcObject, relSvcName);

// Create an MBean proxy for easier access to the Relation Service
RelationServiceMBean relSvc =
    MBeanServerInvocationHandler.newProxyInstance(mbs, relSvcName,
                                                  RelationServiceMBean.class,
                                                  false);

// Define the DependsOn relation type
RoleInfo[] dependsOnRoles = {
    new RoleInfo("dependent", Module.class.getName()),
    new RoleInfo("dependedOn", Module.class.getName())
};
relSvc.createRelationType("DependsOn", dependsOnRoles);

// Now define a relation instance "moduleA DependsOn moduleB"

ObjectName moduleA = new ObjectName(":type=Module,name=A");
ObjectName moduleB = new ObjectName(":type=Module,name=B");

Role dependent = new Role("dependent", Collections.singletonList(moduleA));
Role dependedOn = new Role("dependedOn", Collections.singletonList(moduleB));
Role[] roleArray = {dependent, dependedOn};
RoleList roles = new RoleList(Arrays.asList(roleArray));
relSvc.createRelation("A-DependsOn-B", "DependsOn", roles);

// Query the Relation Service to find what modules moduleA depends on
Map<ObjectName,List<String>> dependentAMap =
    relSvc.findAssociatedMBeans(moduleA, "DependsOn", "dependent");
Set<ObjectName> dependentASet = dependentAMap.keySet();
// Set of ObjectName containing moduleB
Since:
1.5
See Also:
  • Спецификация JMX, версия 1.4
Пакет Описание
javax.management
Предоставляет основные классы для Java Management Extensions.
Класс Описание
InvalidRelationIdException
Данное исключение генерируется, когда идентификатор отношения, предоставленный для отношения, уже используется.
InvalidRelationServiceException
Данное исключение генерируется, когда предоставлен недопустимый Сервис отношений.
InvalidRelationTypeException
Недопустимый тип отношения.
InvalidRoleInfoException
Данное исключение генерируется, когда в информации о роли минимальная степень больше максимальной степени.
InvalidRoleValueException
Значение роли недопустимо.
MBeanServerNotificationFilter
Фильтр для MBeanServerNotification.
Relation
Этот интерфейс должен реализовываться любым классом MBean, ожидаемым для представления отношения, управляемого с помощью Сервиса отношений.
RelationException
Этот класс является суперклассом любых исключений, которые могут возникать во время управления отношениями.
RelationNotFoundException
Данное исключение генерируется, когда для данного идентификатора отношения в Сервисе отношений нет отношения.
RelationNotification
Уведомление об изменении в Сервисе отношений.
RelationService
Сервис отношений отвечает за создание и удаление типов отношений и отношений, за поддержание согласованности и предоставление механизмов запросов.
RelationServiceMBean
Сервис отношений отвечает за создание и удаление типов отношений и отношений, за поддержание согласованности и предоставление механизмов запросов.
RelationServiceNotRegisteredException
Данное исключение генерируется, когда доступ к Сервису отношений производится, но он не зарегистрирован.
RelationSupport
Объект RelationSupport используется внутри Сервиса отношений для представления простых отношений (только роли, без свойств или методов), с неограниченным количеством ролей любого типа отношения.
RelationSupportMBean
Объект RelationSupport используется внутри Сервиса отношений для представления простых отношений (только роли, без свойств или методов), с неограниченным количеством ролей любого типа отношения.
RelationType
Интерфейс RelationType должен реализовываться любым классом, ожидаемым для представления типа отношения.
RelationTypeNotFoundException
Данное исключение генерируется, когда в Сервисе отношений нет типа отношения с данным именем.
RelationTypeSupport
Объект RelationTypeSupport реализует интерфейс RelationType.
Role
Представляет роль: включает имя роли и ссылающиеся MBean (через их ObjectNames).
RoleInfo
Объект RoleInfo обобщает роль в типе отношения.
RoleInfoNotFoundException
Данное исключение генерируется, когда в данном типе отношения нет информации о роли с данным именем.
RoleList
RoleList представляет список ролей (объекты Role).
RoleNotFoundException
Данное исключение генерируется, когда роль в отношении не существует, или она недоступна для чтения, или недоступна для записи.
RoleResult
Представляет результат множественного доступа к нескольким ролям отношения (для чтения или записи).
RoleStatus
Этот класс описывает различные проблемы, которые могут возникнуть при доступе к роли.
RoleUnresolved
Представляет неразрешенную роль: роль, не извлеченная из отношения из-за проблемы.
RoleUnresolvedList
RoleUnresolvedList представляет список объектов RoleUnresolved, представляющих роли, не извлеченные из отношения из-за проблемы, возникшей при попытке получить доступ (читать или писать) к ролям.

© 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/package-summary.html

Spec-Zone.ru

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