Пакет 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:
| Класс | Описание |
|---|---|
| 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