|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
参照先:
説明
インタフェースの概要 | |
---|---|
Relation | 関係サービスによって管理される関係を表す MBean クラスは、このインタフェースを実装する必要があります。 |
RelationServiceMBean | 関係サービスには、関係型と関係の作成および削除、整合性の処理、ならびにクエリー機構の提供の機能があります。 |
RelationSupportMBean | 関係サービスは、RelationSupport オブジェクトを内部で使用して、ロール数に制限のない任意の関係型の単純な関係 (ロールのみでプロパティーやメソッドを持たない関係) を表現します。 |
RelationType | 関係型を表現するすべてのクラスが、RelationType インタフェースを実装する必要があります。 |
クラスの概要 | |
---|---|
MBeanServerNotificationFilter | MBeanServerNotification のフィルタです。 |
RelationNotification | 関係サービス内の変更の通知です。 |
RelationService | 関係サービスには、関係型と関係の作成および削除、整合性の処理、ならびにクエリー機構の提供の機能があります。 |
RelationSupport | 関係サービスは、RelationSupport オブジェクトを内部で使用して、ロール数に制限のない任意の関係型の単純な関係 (ロールのみでプロパティーやメソッドを持たない関係) を表現します。 |
RelationTypeSupport | RelationTypeSupport オブジェクトは、RelationType インタフェースを実装します。 |
Role | ロール名、ObjectName で参照される MBean を含めて、ロールを表現します。 |
RoleInfo | RoleInfo オブジェクトは、関係型に含まれるロールを集計します。 |
RoleList | RoleList は、ロール (Role オブジェクト) のリストを表します。 |
RoleResult | 関係の複数のロールへの複数のアクセス (読み取りまたは書き込みアクセス) の結果を表現します。 |
RoleStatus | このクラスは、ロールのアクセス時に発生する可能性があるさまざまな問題を説明します。 |
RoleUnresolved | 未解決のロール (問題の発生により、関係から取得できなかったロール) を表現します。 |
RoleUnresolvedList | RoleUnresolvedList は、RoleUnresolved オブジェクトのリストを表現します。 |
例外の概要 | |
---|---|
InvalidRelationIdException | この例外は、関係に対して、すでに使用されている関係 ID が提供された場合に発行されます。 |
InvalidRelationServiceException | この例外は、提供された関係サービスが無効な場合に発行されます。 |
InvalidRelationTypeException | 関係型が無効です。 |
InvalidRoleInfoException | この例外は、ロール情報において、最小値が最大値よりも大きい場合に発行されます。 |
InvalidRoleValueException | ロール値が無効です。 |
RelationException | このクラスは、関係の管理中に発行される例外のスーパークラスです。 |
RelationNotFoundException | この例外は、関係サービス内に、指定された関係 ID で表される関係が存在しない場合に発行されます。 |
RelationServiceNotRegisteredException | この例外は、関係サービスへのアクセスが登録されていない場合に発行されます。 |
RelationTypeNotFoundException | この例外は、関係サービス内に、指定された名前の関係型が存在しない場合に発行されます。 |
RoleInfoNotFoundException | この例外は、指定された関連型に指定された名前のロール情報が存在しない場合に発行されます。 |
RoleNotFoundException | この例外は、関係に含まれるロールが存在しない場合、存在したとしても読み取り不能な場合、または設定不能な場合に発行されます。 |
関係サービスについて定義します。関係サービスは、MBean サーバー内の MBean 間の関係を記録するために使用されます。関係サービスそれ自体が MBean です。1 台の MBean サーバーに、複数の RelationService
MBean を登録できます。
「関係型」は、MBean 間の関係を定義します。その関係において MBean が担当する「ロール」を含みます。通常、1 つの関係型に 2 つ以上のロールが含まれます。
「関係」は、関係型の名前付きのインスタンスです。関係では、ロール内の特定の MBean は ObjectName
によって表されます。
たとえば、アプリケーション A に含まれるモジュールを表す Module
MBean があるとします。DependsOn
関係型は、その他のモジュールに依存するモジュールの関係を表現することができます。このため、モジュールの開始または停止順の決定に使用されます。DependsOn
関係型は、dependent
と dependedOn
の 2 つのロールを持ちます。
どのロールも typed です。このため、ロール内に表示される MBean は、ロールの型のインスタンスでなければなりません。DependsOn
の例では、両方のロールが Module
型になります。
すべてのロールが「カーディナリティー」を持ちます。カーディナリティーにより、指定された関係インスタンスに含まれる特定のロール内の MBean 数に、上限値と下限値が設定されます。通常は、上限値、下限値ともに 1 で、ロール内の MBean 数は 1 です。カーディナリティーは、関係インスタンスごとにロール内の MBean 数を制限するだけです。関係型のインスタンス数に関係なく、同じロール内には同じ MBean が存在できます。DependsOn
の例では、あるモジュールが依存できるその他のモジュール数に制限はありません。しかし、関係インスタンスは、常に単一の dependent
モジュールと単一の dependedOn
モジュールをリンクします。
関係型は、javax.management.relation.RelationTypeRelationType
インタフェースを実装するオブジェクト (通常 javax.management.relation.RelationTypeSupportRelationTypeSupport
) として、明示的に作成できます。関係サービスの createRelationType
メソッドを使って、暗黙的に作成することもできます。
関係インスタンスは、javax.management.relation.RelationRelation
インタフェースを実装するオブジェクト (通常 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
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。