JavaTM Platform
Standard Ed. 6

javax.management.relation
クラス RelationSupport

java.lang.Object
  上位を拡張 javax.management.relation.RelationSupport
すべての実装されたインタフェース:
MBeanRegistration, Relation, RelationSupportMBean

public class RelationSupport
extends Object
implements RelationSupportMBean, MBeanRegistration

関係サービスは、RelationSupport オブジェクトを内部で使用して、ロール数に制限のない任意の関係型の単純な関係 (ロールのみでプロパティーやメソッドを持たない関係) を表現します。これは内部表現なので、ユーザーには公開されません。

RelationSupport クラスは、標準 MBean の設計パターンに準拠しています。したがって、ユーザーは、RelationSupport オブジェクトを MBean としてインスタンス化し (MBean の設計パターンに準拠しているため)、MBean Server に登録して関係サービスに追加することができます。

また、独自の MBean 関係クラスの作成時に RelationSupport を拡張して、必須インタフェース (下記参照) の実装を取得することもできます。

ユーザー関係 MBean クラス内に RelationSupport オブジェクトとなるメンバーを追加し、すべてをこのメンバーに委譲することによって必須インタフェースを実装する方法もあります。

RelationSupport は、関係サービスによって処理される Relation インタフェースを実装します。

関係サービスにアクセスするため、MBean Server に MBean として登録されている場合は、この登録先 MBean Server を取得するための MBeanRegistration インタフェースも実装します。

導入されたバージョン:
1.5

コンストラクタの概要
RelationSupport(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list)
          RelationSupport オブジェクトを作成します。
RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list)
          RelationSupport オブジェクトを作成します。
 
メソッドの概要
 RoleResult getAllRoles()
          関係に含まれるすべてのロールを返します。
 Map<ObjectName,List<String>> getReferencedMBeans()
          関係のさまざまなロールで参照される MBean を取得します。
 String getRelationId()
          関係サービス内の関係を一意に識別するために使用される関係識別子を返します。
 ObjectName getRelationServiceName()
          関係を処理する関係サービスの ObjectName を返します。
 String getRelationTypeName()
          関連付けられた関係型の名前を返します。
 List<ObjectName> getRole(String roleName)
          指定されたロール名のロール値を取得します。
 Integer getRoleCardinality(String roleName)
          指定されたロール内で現在参照されている MBean の数を返します。
 RoleResult getRoles(String[] roleNameArray)
          指定された名前のロールの値を取得します。
 void handleMBeanUnregistration(ObjectName objectName, String roleName)
          ロールに含まれる参照対象の MBean の登録が解除された場合に関係サービスによって使用されるコールバックです。
 Boolean isInRelationService()
          オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。
 void postDeregister()
          MBean サーバーから登録解除したあと、MBean が必要なオペレーションを実行できるようにします。
 void postRegister(Boolean registrationDone)
          MBean サーバーへの登録が成功または失敗したあと、MBean が必要なオペレーションを実行できるようにします。
 void preDeregister()
          MBean サーバーから登録解除する前に、MBean が必要なオペレーションを実行できるようにします。
 ObjectName preRegister(MBeanServer server, ObjectName name)
          MBean サーバーに登録する前に、MBean に必要なオペレーションを実行させることができます。
 RoleList retrieveAllRoles()
          読み取りモードをチェックしないで、関係に含まれるすべてのロールを返します。
 void setRelationServiceManagementFlag(Boolean flag)
          この関係を関係サービスで処理するかどうかを指定します。
 void setRole(Role role)
          指定されたロールを設定します。
 RoleResult setRoles(RoleList list)
          指定されたロールを設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

RelationSupport

public RelationSupport(String relationId,
                       ObjectName relationServiceName,
                       String relationTypeName,
                       RoleList list)
                throws InvalidRoleValueException,
                       IllegalArgumentException
RelationSupport オブジェクトを作成します。

このコンストラクタは、RelationSupport オブジェクトがユーザーによって MBean として登録されたとき、または RelationSupport を拡張するクラスを持つユーザー関係 MBean を作成するときに使用する必要があります。

関係サービスレベルでは何も行われません。 つまり、RelationSupport オブジェクトは RelationService に追加されず、適切な値が提供されたかどうかのチェックも行われません。オブジェクトは、以下の場合を除いて必ず作成されます。

- 必須パラメータがすべて null の場合

- 同じ名前が 2 つのロールで使用されている場合

関係として処理するためには、RelationSupport オブジェクトを関係サービスメソッド addRelation() を使って関係サービスに追加する必要があります。

パラメータ:
relationId - 関係サービス内の関係を一意に識別するために使用される 関係識別子

関係サービス内で一意でなければなりません。

relationServiceName - 関係の登録先となる 関係サービスの ObjectName

更新オペレーション (セット) をチェックする必要があるため、 指定された関係の型定義を認識する 関係サービスでなければならない

relationTypeName - 関係型の名前

指定された関係サービス内で作成されたものでなければならない

list - 関係を初期化するためのロール (Role オブジェクト) の リスト (null も可)

関連付けられた関係型の関係情報に準拠していなければなりません。

例外:
InvalidRoleValueException - 同じ名前が 2 つのロールで 使用されている場合
IllegalArgumentException - 必須パラメータ (関係 ID、関係サービス ObjectName、関係型名) のいずれかが null の場合

RelationSupport

public RelationSupport(String relationId,
                       ObjectName relationServiceName,
                       MBeanServer relationServiceMBeanServer,
                       String relationTypeName,
                       RoleList list)
                throws InvalidRoleValueException,
                       IllegalArgumentException
RelationSupport オブジェクトを作成します。

このコンストラクタは、RelationSupport オブジェクトへの委譲を行うことによって関係で利用できるようにする必要があるインタフェースを、ユーザー関係 MBean が実装したときに使用する必要があります。

このオブジェクトは、関係を処理する関係サービスを認識する必要があります。したがって、この関係サービスの登録先の MBean Server も認識する必要があります。

制限により、関係 MBean は、それを処理する関係サービスと同じ MBean Server に登録する必要があります。このため、ユーザー関係 MBean を作成し、登録する必要があります。 ユーザー関係 MBean の登録後、識別された MBean サーバー内部で、ラップされた RelationSupport オブジェクトを作成できます。

関係サービスレベルでは何も行われません。 つまり、RelationSupport オブジェクトは RelationService に追加されず、適切な値が提供されたかどうかのチェックも行われません。オブジェクトは、以下の場合を除いて必ず作成されます。

- 必須パラメータがすべて null の場合

- 同じ名前が 2 つのロールで使用されている場合

関係として処理するためには、RelationSupport オブジェクトを関係サービスメソッド addRelation() を使って関係サービスに追加する必要があります。

パラメータ:
relationId - 関係サービス内の関係を識別するために使用される 関係識別子

関係サービス内で一意でなければなりません。

relationServiceName - 関係の登録先となる 関係サービスの ObjectName

更新オペレーション (セット) をチェックする必要があるため、 指定された関係の型定義を認識する 関係サービスでなければならない

relationServiceMBeanServer - MBean のラップが登録されている、 またはこれから登録される MBean サーバー

関連サービスが登録されている、 またはこれから登録される MBean Server でなければならない

relationTypeName - 関係型の名前

指定された関係サービス内で作成されたものでなければならない

list - 関係を初期化するためのロール (Role オブジェクト) の リスト (null も可)

関連付けられた関係型の関係情報に準拠していなければなりません。

例外:
InvalidRoleValueException - 同じ名前が 2 つのロールで 使用されている場合
IllegalArgumentException - 必須パラメータ (関係 ID、関係サービス ObjectName、関係サービス MBeanServer、 関係型名) のいずれかが null である場合
メソッドの詳細

getRole

public List<ObjectName> getRole(String roleName)
                         throws IllegalArgumentException,
                                RoleNotFoundException,
                                RelationServiceNotRegisteredException
指定されたロール名のロール値を取得します。

ロールが存在し、関係型に従って読み取り可能かどうかをチェックします。

定義:
インタフェース Relation 内の getRole
パラメータ:
roleName - ロール名
戻り値:
ロール値となる ObjectName オブジェクトの ArrayList
例外:
IllegalArgumentException - ロール名が null の場合
RoleNotFoundException - 次の条件が成立する場合:

- 指定された名前のロールが存在しない場合

- ロールが読み取り不可な場合

RelationServiceNotRegisteredException - 関係サービス が MBean サーバーに登録されていない場合
関連項目:
setRole(javax.management.relation.Role)

getRoles

public RoleResult getRoles(String[] roleNameArray)
                    throws IllegalArgumentException,
                           RelationServiceNotRegisteredException
指定された名前のロールの値を取得します。

各ロールが存在し、関係型に従って読み取り可能かどうかをチェックします。

定義:
インタフェース Relation 内の getRoles
パラメータ:
roleNameArray - 取得されるロールの名前から成る配列
戻り値:
RoleResult オブジェクト。 取得に成功したロールの RoleList と 取得されなかったロールの RoleUnresolvedList を含む
例外:
IllegalArgumentException - ロール名が null の場合
RelationServiceNotRegisteredException - 関係サービス が MBean サーバーに登録されていない場合
関連項目:
setRoles(javax.management.relation.RoleList)

getAllRoles

public RoleResult getAllRoles()
                       throws RelationServiceNotRegisteredException
関係に含まれるすべてのロールを返します。

定義:
インタフェース Relation 内の getAllRoles
戻り値:
RoleResult オブジェクト。 取得に成功したロールの RoleList と 読み取れなかったロールの RoleUnresolvedList を含む
例外:
RelationServiceNotRegisteredException - 関係サービス が MBean サーバーに登録されていない場合

retrieveAllRoles

public RoleList retrieveAllRoles()
読み取りモードをチェックしないで、関係に含まれるすべてのロールを返します。

定義:
インタフェース Relation 内の retrieveAllRoles
戻り値:
RoleList

getRoleCardinality

public Integer getRoleCardinality(String roleName)
                           throws IllegalArgumentException,
                                  RoleNotFoundException
指定されたロール内で現在参照されている MBean の数を返します。

定義:
インタフェース Relation 内の getRoleCardinality
パラメータ:
roleName - ロール名
戻り値:
ロール内の現在参照されている MBean の数
例外:
IllegalArgumentException - ロール名が null の場合
RoleNotFoundException - 指定された名前のロールが存在しない場合

setRole

public void setRole(Role role)
             throws IllegalArgumentException,
                    RoleNotFoundException,
                    RelationTypeNotFoundException,
                    InvalidRoleValueException,
                    RelationServiceNotRegisteredException,
                    RelationNotFoundException
指定されたロールを設定します。

関係の関係型に含まれている対応するロール定義に従って、ロールをチェックします。

通知を送信します。 関係が MBean であるかどうかによって、RelationNotification の型は RELATION_BASIC_UPDATE または RELATION_MBEAN_UPDATE になります。

定義:
インタフェース Relation 内の setRole
パラメータ:
role - 設定されるロール (名前と新しい値)
例外:
IllegalArgumentException - ロールが null の場合
RoleNotFoundException - 指定された名前のロールが存在しない場合、 またはロールが 書き込み可能でない場合 (ロールの初期化時には、書き込みアクセスモードのチェックは行われない)
InvalidRoleValueException - ロールに対して提供された 値が無効な場合:

- 指定された値に含まれる参照対象の MBean の数が 予想最小値より小さい場合

- 指定された値に含まれる参照対象の MBean の数が 予想最大値を超えている場合

- 値に含まれる参照対象の MBean のうち 1 つが、 そのロールの MBean クラスのオブジェクトでない場合

- そのロールの MBean が存在しない場合

RelationServiceNotRegisteredException - 関係サービス が MBean サーバーに登録されていない場合
RelationTypeNotFoundException - 関係サービスに 関係型が宣言されていない場合
RelationNotFoundException - 関係サービスに 関係が追加されていない場合
関連項目:
getRole(java.lang.String)

setRoles

public RoleResult setRoles(RoleList list)
                    throws IllegalArgumentException,
                           RelationServiceNotRegisteredException,
                           RelationTypeNotFoundException,
                           RelationNotFoundException
指定されたロールを設定します。

関係の関係型に含まれている対応するロール定義に従って、ロールをチェックします。

ロールが更新されるたびに通知を送信します。 関係が MBean であるかどうかによって、RelationNotification の型は RELATION_BASIC_UPDATE または RELATION_MBEAN_UPDATE になります。

定義:
インタフェース Relation 内の setRoles
パラメータ:
list - 設定されるロールのリスト
戻り値:
RoleResult オブジェクト。 設定に成功したロールの RoleList と 設定されなかったロールの RoleUnresolvedList を含む
例外:
IllegalArgumentException - ロールリストが null の場合
RelationServiceNotRegisteredException - 関係サービス が MBean サーバーに登録されていない場合
RelationTypeNotFoundException - 関係サービスに 関係型が宣言されていない場合
RelationNotFoundException - 関係サービスに 関係 MBean が追加されていない場合
関連項目:
getRoles(java.lang.String[])

handleMBeanUnregistration

public void handleMBeanUnregistration(ObjectName objectName,
                                      String roleName)
                               throws IllegalArgumentException,
                                      RoleNotFoundException,
                                      InvalidRoleValueException,
                                      RelationServiceNotRegisteredException,
                                      RelationTypeNotFoundException,
                                      RelationNotFoundException
ロールに含まれる参照対象の MBean の登録が解除された場合に関係サービスによって使用されるコールバックです。

関係サービスは、このメソッドを呼び出して、関係に、登録解除の影響を反映するためのアクションを取らせます。

このメソッドは、ユーザーからは呼び出されません。

現在の実装は、現在の値 (参照対象の MBean の ObjectName のリスト) を使ってロールを設定します。 登録解除されているものは使用しません。

定義:
インタフェース Relation 内の handleMBeanUnregistration
パラメータ:
objectName - 登録解除された MBean の ObjectName
roleName - MBean の参照に使用されるロール名
例外:
IllegalArgumentException - パラメータが null の場合
RoleNotFoundException - 関係内にロールが存在しないか、 書き込み不可である場合
InvalidRoleValueException - ロール値が 関連するロール情報に準拠していない場合 (関係サービスから 呼び出された場合は起こり得ない条件)
RelationServiceNotRegisteredException - 関係サービス が MBean サーバーに登録されていない場合
RelationTypeNotFoundException - 関係サービスに 関係型が宣言されていない場合
RelationNotFoundException - このメソッドが、 関係サービスに追加されていない関係 MBean に対して呼び出された場合

getReferencedMBeans

public Map<ObjectName,List<String>> getReferencedMBeans()
関係のさまざまなロールで参照される MBean を取得します。

定義:
インタフェース Relation 内の getReferencedMBeans
戻り値:
HashMap マッピング:

ObjectName → String (ロール名) から成る ArrayList


getRelationTypeName

public String getRelationTypeName()
関連付けられた関係型の名前を返します。

定義:
インタフェース Relation 内の getRelationTypeName
戻り値:
関係型の名前

getRelationServiceName

public ObjectName getRelationServiceName()
関係を処理する関係サービスの ObjectName を返します。

定義:
インタフェース Relation 内の getRelationServiceName
戻り値:
関係サービスの ObjectName

getRelationId

public String getRelationId()
関係サービス内の関係を一意に識別するために使用される関係識別子を返します。

定義:
インタフェース Relation 内の getRelationId
戻り値:
関係 ID

preRegister

public ObjectName preRegister(MBeanServer server,
                              ObjectName name)
                       throws Exception
インタフェース MBeanRegistration の記述:
MBean サーバーに登録する前に、MBean に必要なオペレーションを実行させることができます。MBean の名前を指定しないと、MBean により、登録用の名前が提供されます。例外がスローされた場合、MBean は MBean サーバーに登録されません。

定義:
インタフェース MBeanRegistration 内の preRegister
パラメータ:
server - MBean サーバー。MBean はここに登録される
name - MBean のオブジェクト名。MBeanServer インタフェース内の createMBean または registerMBean メソッドの name パラメータが null の場合、 この名前も null になる。この場合、このメソッドは、 新しい MBean 用に null 以外の ObjectName を必ず返す
戻り値:
MBean の登録名。 null は指定できない。name パラメータが null 以外の場合、通常は値が返されるが、 これは必須ではない
例外:
Exception - この例外は、MBean サーバーにキャッチされ、 MBeanRegistrationException として再スローされる

postRegister

public void postRegister(Boolean registrationDone)
インタフェース MBeanRegistration の記述:
MBean サーバーへの登録が成功または失敗したあと、MBean が必要なオペレーションを実行できるようにします。

定義:
インタフェース MBeanRegistration 内の postRegister
パラメータ:
registrationDone - MBean が MBean サーバーに 正常に登録されたかどうかを示す。登録に 失敗した場合の値は false

preDeregister

public void preDeregister()
                   throws Exception
インタフェース MBeanRegistration の記述:
MBean サーバーから登録解除する前に、MBean が必要なオペレーションを実行できるようにします。

定義:
インタフェース MBeanRegistration 内の preDeregister
例外:
Exception - この例外は、MBean サーバーにキャッチされ、 MBeanRegistrationException として再スローされる

postDeregister

public void postDeregister()
インタフェース MBeanRegistration の記述:
MBean サーバーから登録解除したあと、MBean が必要なオペレーションを実行できるようにします。

定義:
インタフェース MBeanRegistration 内の postDeregister

isInRelationService

public Boolean isInRelationService()
オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。

定義:
インタフェース RelationSupportMBean 内の isInRelationService
戻り値:
Boolean 型。 オブジェクトを引き続き関係サービスで処理する場合は Boolean.TRUE、 それ以外の場合は Boolean.FALSE

setRelationServiceManagementFlag

public void setRelationServiceManagementFlag(Boolean flag)
                                      throws IllegalArgumentException
インタフェース RelationSupportMBean の記述:

この関係を関係サービスで処理するかどうかを指定します。

関係サービスは、管理インタフェースを使って関係にアクセスします。 したがって、このメソッドは公開の必要があります。このメソッドの使用は推奨されていません。たとえ使用しても、関係サービス内の関係オブジェクトの登録に影響はありませんが、誤った情報が提供される恐れがあるからです。

定義:
インタフェース RelationSupportMBean 内の setRelationServiceManagementFlag
パラメータ:
flag - 関係を関係サービスで処理するかどうか
例外:
IllegalArgumentException - パラメータが null の場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。