JavaTM 2 Platform
Standard Ed. 5.0

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 theRelId, ObjectName theRelServiceName, MBeanServer theRelServiceMBeanServer, String theRelTypeName, RoleList theRoleList)
          オブジェクトを作成します。
RelationSupport(String theRelId, ObjectName theRelServiceName, String theRelTypeName, RoleList theRoleList)
          オブジェクトを作成します。
 
メソッドの概要
 RoleResult getAllRoles()
          関係に含まれるすべてのロールを返します。
 Map getReferencedMBeans()
          関係のさまざまなロールで参照される MBean を取得します。
 String getRelationId()
          関係サービス内の関係を一意に識別するために使用される関係識別子を返します。
 ObjectName getRelationServiceName()
          関係を処理する関係サービスの ObjectName を返します。
 String getRelationTypeName()
          関連付けられた関係型の名前を返します。
 List getRole(String theRoleName)
          指定されたロール名のロール値を取得します。
 Integer getRoleCardinality(String theRoleName)
          指定されたロール内で現在参照されている MBean の数を返します。
 RoleResult getRoles(String[] theRoleNameArray)
          指定された名前のロールの値を取得します。
 void handleMBeanUnregistration(ObjectName theObjName, String theRoleName)
          ロールに含まれる参照対象の 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 theFlg)
          この関係を関係サービスで処理するかどうかを指定します。
 void setRole(Role theRole)
          指定されたロールを設定します。
 RoleResult setRoles(RoleList theRoleList)
          指定されたロールを設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

RelationSupport

public RelationSupport(String theRelId,
                       ObjectName theRelServiceName,
                       String theRelTypeName,
                       RoleList theRoleList)
                throws InvalidRoleValueException,
                       IllegalArgumentException
オブジェクトを作成します。

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

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

- 必須パラメータの一部が指定されていない場合

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

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

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

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

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

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

theRelTypeName - 関係型の名前

関係サービス内で作成されたものでなければなりません。

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

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

例外:
InvalidRoleValueException - 同じ名前が 2 つのロールで使用されている場合
IllegalArgumentException - 必須値 (関係サービスオブジェクト名など) がパラメータとして指定されていない場合

RelationSupport

public RelationSupport(String theRelId,
                       ObjectName theRelServiceName,
                       MBeanServer theRelServiceMBeanServer,
                       String theRelTypeName,
                       RoleList theRoleList)
                throws InvalidRoleValueException,
                       IllegalArgumentException
オブジェクトを作成します。

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

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

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

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

- 必須パラメータの一部が指定されていない場合

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

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

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

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

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

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

theRelServiceMBeanServer - RelationSupport オブジェクトをラップする MBean が登録されている、またはこれから登録される MBean Server

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

theRelTypeName - 関係型の名前

関係サービス内で作成されたものでなければなりません。

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

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

例外:
InvalidRoleValueException - 同じ名前が 2 つのロールで使用されている場合
IllegalArgumentException - 必須値 (関係サービスオブジェクト名など) がパラメータとして指定されていない場合
メソッドの詳細

getRole

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

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

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

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

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

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

getRoles

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

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

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

getAllRoles

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

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

retrieveAllRoles

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

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

getRoleCardinality

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

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

setRole

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

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

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

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

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

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

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

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

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

setRoles

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

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

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

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

handleMBeanUnregistration

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

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

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

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

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

getReferencedMBeans

public Map 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 theFlg)
                                      throws IllegalArgumentException
インタフェース RelationSupportMBean の記述:

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

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

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

JavaTM 2 Platform
Standard Ed. 5.0

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

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