Spec-Zone.ru › OpenJDK 24

Пакет javax.management.relation

package javax.management.relation

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

Тип отношения определяет отношение между 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. (Инстанция 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 (через их ObjectName).
RoleInfo
Объект RoleInfo резюмирует роль в типе отношения.
RoleInfoNotFoundException
Это исключение возникает, когда в данном типе отношения нет информации о роли с заданным именем.
RoleList
RoleList представляет собой список объектов роли (Role).
RoleNotFoundException
Это исключение возникает, когда роль в отношении не существует, или не читаема, или не устанавливаема.
RoleResult
Представляет результат множественного доступа к нескольким ролям отношения (как для чтения, так и для записи).
RoleStatus
Этот класс описывает различные проблемы, которые могут возникнуть при доступе к роли.
RoleUnresolved
Представляет неразрешённую роль: роль, не извлечённую из отношения из-за проблемы.
RoleUnresolvedList
RoleUnresolvedList представляет собой список объектов RoleUnresolved, представляющих роли, не извлечённые из отношения из-за проблемы, возникшей при попытке доступа (чтения или записи) к ролям.

© 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://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/relation/package-summary.html

Spec-Zone.ru

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