Spec-Zone.ru › OpenJDK 8

Пакет javax.management.relation

Предоставляет определение сервиса отношений.

См.: Описание

Интерфейс Описание
Relation

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

RelationServiceMBean

Служба отношений отвечает за создание и удаление типов отношений и отношений, за обработку согласованности и предоставление механизмов запросов.

RelationSupportMBean

Объект RelationSupport используется внутри службы отношений для представления простых отношений (только роли, без свойств или методов), с неограниченным количеством ролей любого типа отношения.

RelationType

Интерфейс RelationType должен реализовываться любым классом, ожидаемым для представления типа отношения.

Класс Описание
MBeanServerNotificationFilter

Фильтр для MBeanServerNotification.

RelationNotification

Уведомление о изменении в службе отношений.

RelationService

Служба отношений отвечает за создание и удаление типов отношений и отношений, за обработку согласованности и предоставление механизмов запросов.

RelationSupport

Объект RelationSupport используется внутри службы отношений для представления простых отношений (только роли, без свойств или методов), с неограниченным количеством ролей любого типа отношения.

RelationTypeSupport

Объект RelationTypeSupport реализует интерфейс RelationType.

Role

Представляет роль: включает имя роли и MBean (через их ObjectNames).

RoleInfo

Объект RoleInfo обобщает роль в типе отношения.

RoleList

RoleList представляет список ролей (объектов Role).

RoleResult

Представляет результат множественного доступа к нескольким ролям отношения (как для чтения, так и для записи).

RoleStatus

Этот класс описывает различные проблемы, которые могут возникнуть при доступе к роли.

RoleUnresolved

Представляет неразрешённую роль: роль, не извлечённую из отношения из-за проблемы.

RoleUnresolvedList

RoleUnresolvedList представляет список объектов RoleUnresolved, представляющих роли, не извлечённые из отношения из-за проблемы, возникшей при попытке доступа (чтения или записи) к ролям.

Исключение Описание
InvalidRelationIdException

Это исключение возникает, когда идентификатор отношения, предоставленный для отношения, уже используется.

InvalidRelationServiceException

Это исключение возникает, когда предоставлена некорректная служба отношений.

InvalidRelationTypeException

Неверный тип отношения.

InvalidRoleInfoException

Это исключение возникает, когда в информации о роли её минимальная степень больше максимальной.

InvalidRoleValueException

Значение роли некорректно.

RelationException

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

RelationNotFoundException

Это исключение возникает, когда для данного идентификатора отношения в службе отношений нет отношения.

RelationServiceNotRegisteredException

Это исключение возникает, когда доступ к службе отношений осуществляется, и она не зарегистрирована.

RelationTypeNotFoundException

Это исключение возникает, когда в службе отношений нет типа отношения с данным именем.

RoleInfoNotFoundException

Это исключение возникает, когда в данном типе отношения нет информации о роли с данным именем.

RoleNotFoundException

Это исключение возникает, когда роль в отношении не существует, недоступна для чтения или записи.

Описание пакета 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
С:
1.5
См. также:
Документация Java Platform по технологии JMX, в частности Спецификация JMX, версия 1.4

© 1993, 2020, 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.

Spec-Zone.ru

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