Spec-Zone .ru
спецификации, руководства, описания, API
 Платформа Java™
Стандарт Эд. 7

Пакет javax.management.relation

Обеспечивает определение Службы Отношения.

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

Пакет javax.management.relation Описание

Обеспечивает определение Службы Отношения. Служба Отношения используется, чтобы записать отношения между MBeans в Сервере MBean. Служба Отношения является самостоятельно MBean. Больше чем один экземпляр a RelationService MBean может быть зарегистрирован в Сервере MBean.

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

Отношение является именованным экземпляром типа отношения, где определенный MBeans появляются в ролях, представленных их ObjectNames.

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

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

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

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

Экземпляр отношения может быть создан явно как объект, реализовывая Relation интерфейс, обычно a RelationSupport. (A 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 относительно технологии JMX, в особенности Спецификация JMX, версия 1.4
 Платформа Java™
Стандарт Эд. 7

Представьте ошибку или функцию
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.