| インタフェース | 説明 |
|---|---|
| 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 オブジェクトのリストを表現します。 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 モジュールをリンクします。
関係タイプは、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
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.