|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個軟體套件 下一個軟體套件 | 框架 無框架 |
請參見:
描述
介面摘要 | |
---|---|
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 | 關係中的某個角色不存在,或不可讀,或不可設置時,引發此異常。 |
提供 Relation Service 的定義。Relation Service 用於記錄 MBean Server 中各個 MBean 之間的關係。Relation Service 本身就是一個 MBean。在一個 MBean Server 中可以註冊多個 RelationService
MBean 實例。
關係型別 定義各個 MBean 之間的關係。它包含各個 MBean 在關係中充當的角色。通常,在一個關係型別中至少有兩個角色。
關係 是關係型別的命名實例,其中具體的 MBean 將出現在由其 ObjectName
表示的角色中。
例如,假定存在表示應用程序中的模組的 Module
MBean。DependsOn
關係型別可以表達一些模組依賴於其他模組(這些模組可以用於定義模組開始和停止的順序)的關係。DependsOn
關係型別應有兩個角色,dependent
和 dependedOn
。
每個角色都經過了型別化,這意味著在該角色中出現的 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
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個軟體套件 下一個軟體套件 | 框架 無框架 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。