JavaTM 2 Platform
Standard Ed. 6

軟體套件 javax.management.relation

提供 Relation Service 的定義。

請參見:
          描述

介面摘要
Relation 此介面必須由任何 MBean 類別(期望表示為一種使用 Relation Service 管理的關係)來實作。
RelationServiceMBean Relation Service 負責創建和刪除關係型別和關係,還負責處理一致性和提供查詢機制。
RelationSupportMBean RelationSupport 物件由 Relation Service 內部使用,表示任何關係型別的具有無限量角色的簡單關係(只有角色,沒有屬性或方法)。
RelationType 該 RelationType 介面必須由期望表示關係型別的任何類別來實作。
 

類別摘要
MBeanServerNotificationFilter MBeanServerNotification 的過濾器。
RelationNotification Relation Service(關係服務)中的更改通知。
RelationService Relation Service 負責創建和刪除關係型別和關係,負責處理一致性並負責提供查詢機制。
RelationSupport RelationSupport 物件由 Relation Service 內部使用,表示任何關係型的具有不限數量的角色的簡單關係(只有角色,沒有屬性或方法)。
RelationTypeSupport RelationTypeSupport 物件實作 RelationType 介面。
Role 表示角色:包括角色名稱和參考的 MBean(通過其 ObjectName)。
RoleInfo RoleInfo 概括介紹關係型別中的角色。
RoleList RoleList 表示角色(Role 物件)的列表。
RoleResult 表示對一個關係的幾個角色多個存取的結果(可以是讀取,也可以是寫入)。
RoleStatus 此類別描述存取某個角色時可能遇到的各種問題。
RoleUnresolved 表示未解析的角色:由於存在問題而無法從關係中檢索到的角色。
RoleUnresolvedList RoleUnresolvedList 表示 RoleUnresolved 物件的列表,這些物件代表在試圖存取角色(進行讀取或寫入)時遇到問題而無法從關係檢索到的角色。
 

異常摘要
InvalidRelationIdException 為關係提供的關係 id 已使用時引發此異常。
InvalidRelationServiceException 提供無效 Relation Service(關係服務)時引發此異常。
InvalidRelationTypeException 無效的關係型別。
InvalidRoleInfoException 在角色資訊中,其最小程度大於其最大程度時,引發此異常。
InvalidRoleValueException 角色值無效。
RelationException 此類別是關係管理過程中引發的任何異常的父級類別。
RelationNotFoundException Relation Service(關係服務)中不存在給定關係 id 的關係時引發此異常。
RelationServiceNotRegisteredException 在對 Relation Service(關係服務)進行存取而該 Relation Service 未註冊時引發此異常。
RelationTypeNotFoundException Relation Service(關係服務)中不存在帶給定名稱的關係型別時引發此異常。
RoleInfoNotFoundException 給定的關係型別中不存在帶指定名稱的角色資訊時引發此異常。
RoleNotFoundException 關係中的某個角色不存在,或不可讀,或不可設置時,引發此異常。
 

軟體套件 javax.management.relation 的描述

提供 Relation Service 的定義。Relation Service 用於記錄 MBean Server 中各個 MBean 之間的關係。Relation Service 本身就是一個 MBean。在一個 MBean Server 中可以註冊多個 RelationService MBean 實例。

關係型別 定義各個 MBean 之間的關係。它包含各個 MBean 在關係中充當的角色。通常,在一個關係型別中至少有兩個角色。

關係 是關係型別的命名實例,其中具體的 MBean 將出現在由其 ObjectName 表示的角色中。

例如,假定存在表示應用程序中的模組的 Module MBean。DependsOn 關係型別可以表達一些模組依賴於其他模組(這些模組可以用於定義模組開始和停止的順序)的關係。DependsOn 關係型別應有兩個角色,dependentdependedOn

每個角色都經過了型別化,這意味著在該角色中出現的 MBean 必須是該角色型別的實例。在 DependsOn 範例中,兩個角色都屬於型別 Module

每個角色都有一個容量,它為給定關係實例的角色中出現的 MBean 的數量提供上下邊界。通常,上下邊界都是 1,這樣可保證在此角色中只出現一個 MBean。該容量只限制每個關係實例的角色中的 MBean 的數量。同一個 MBean 可以在任意數量的關係型別實例中的同一個角色中出現。在 DependsOn 範例中,給定模組可能依賴於許多其他模組,也可以被許多其他模組所依賴,但是任何給定關係實例都只能將一個 dependent 模組與唯一對應的那個 dependedOn 模組連接。

關係型別可以作為實作 RelationType 介面的物件顯式地創建,此物件通常為 RelationTypeSupport。或者,它可以使用 Relation Service 的 createRelationType 方法隱式地創建。

關係型別可以作為實作 Relation 介面的物件顯式地創建,此物件通常是為 RelationSupport。(RelationSupport 本身是一個有效的 MBean,因此它可以在 MBean Server 中註冊,但不要求這樣做。)或者,關係型別可以使用 Relation Service 的 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 SE 6 Platform documentation on JMX technology, 特別是 JMX Specification, version 1.4

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only