Spec-Zone.ru › OpenJDK 21

Пакет 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. (Инстанция 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, 2023, 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/21/docs/api/java.management/javax/management/relation/package-summary.html

Spec-Zone.ru

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