JavaTM 2 Platform
Standard Ed. 5.0

javax.management.remote.rmi
クラス RMIConnector

java.lang.Object
  上位を拡張 javax.management.remote.rmi.RMIConnector
すべての実装されたインタフェース:
Serializable, JMXConnector

public class RMIConnector
extends Object
implements JMXConnector, Serializable

リモート RMI コネクタへの接続です。通常、こうした接続は、JMXConnectorFactory で作成されます。しかし、JNDI を使用しないで取得される RMIServer スタブなどにより、このクラスを直接使用する特殊なアプリケーションもあります。

導入されたバージョン:
1.5
関連項目:
直列化された形式

フィールドの概要
 
インタフェース javax.management.remote.JMXConnector から継承されたフィールド
CREDENTIALS
 
コンストラクタの概要
RMIConnector(JMXServiceURL url, Map<String,?> environment)
          指定されたアドレスの RMI コネクタサーバに接続する RMIConnector を構築します。
RMIConnector(RMIServer rmiServer, Map<String,?> environment)
          指定された RMI スタブを使って RMIConnector を構築します。
 
メソッドの概要
 void addConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          接続の状態の変化を通知されるリスナーを追加します。
 void close()
          クライアントとサーバの接続を終了します。
 void connect()
          コネクタサーバとの接続を確立します。
 void connect(Map<String,?> environment)
          コネクタサーバとの接続を確立します。
 String getConnectionId()
          コネクタサーバから、この接続の ID を取得します。
 MBeanServerConnection getMBeanServerConnection()
          リモート MBean サーバを表す MBeanServerConnection オブジェクトを返します。
 MBeanServerConnection getMBeanServerConnection(Subject delegationSubject)
          提供された委譲対象の代わりにオペレーションを実行する、リモート MBean サーバを表す MBeanServerConnection オブジェクトを返します。
 void removeConnectionNotificationListener(NotificationListener listener)
          状態の変更を通知されるリスナーをリストから削除します。
 void removeConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          状態の変更を通知されるリスナーをリストから削除します。
 String toString()
          このオブジェクトの文字列表現を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

RMIConnector

public RMIConnector(JMXServiceURL url,
                    Map<String,?> environment)

指定されたアドレスの RMI コネクタサーバに接続する RMIConnector を構築します。

アドレスは、コネクタサーバを直接参照できます。次のいずれかの構文を使用します。


 service:jmx:rmi://[host[:port]]/stub/encoded-stub
 service:jmx:iiop://[host[:port]]/ior/encoded-IOR
 

角括弧 [] はアドレスの一部ではなく、ホストとポートがオプションであることを示します。

アドレスを使って、JNDI から RMI スタブを検索する場所を示すこともできます。次のいずれかの構文を使用します。


 service:jmx:rmi://[host[:port]]/jndi/jndi-name
 service:jmx:iiop://[host[:port]]/jndi/jndi-name
 

実装も追加アドレス構文を認識できます。次に例を示します。


 service:jmx:iiop://[host[:port]]/stub/encoded-stub
 

パラメータ:
url - RMI コネクタサーバのアドレス
environment - 接続の作成方法を指定する追加属性。JNDI ベースのアドレスの場合、これらの属性に、InitialContext によって認識される JNDI 属性が含まれる。このパラメータが null の場合、空の Map を指定した場合と同じになる
例外:
IllegalArgumentException - url が null の場合

RMIConnector

public RMIConnector(RMIServer rmiServer,
                    Map<String,?> environment)

指定された RMI スタブを使って RMIConnector を構築します。

パラメータ:
rmiServer - RMI コネクタサーバを表す RMI スタブ
environment - 接続の作成方法を指定する追加属性。このパラメータが null の場合、空の Map を指定した場合と同じになる
例外:
IllegalArgumentException - rmiServer が null の場合
メソッドの詳細

toString

public String toString()

このオブジェクトの文字列表現を返します。通常、toString メソッドはこのオブジェクトを「テキストで表現する」文字列を返します。この結果は、人間が読める簡潔で有益な情報であるべきです。

オーバーライド:
クラス Object 内の toString
戻り値:
このオブジェクトの String 表現

connect

public void connect()
             throws IOException
インタフェース JMXConnector の記述:

コネクタサーバとの接続を確立します。このメソッドは、connect(null) と同等です。

定義:
インタフェース JMXConnector 内の connect
例外:
IOException - 通信障害により接続を確立できなかった場合

connect

public void connect(Map<String,?> environment)
             throws IOException
インタフェース JMXConnector の記述:

コネクタサーバとの接続を確立します。

このオブジェクト上で、すでに connect が呼び出されている場合、もう 1 回呼び出しても何も起こりません。一方、connect のあとで JMXConnector.close() が呼び出されている場合、再度 connect を呼び出すと IOException がスローされます。

このオブジェクト上で connect が 1 回も呼び出されていない場合、または、呼び出しに対して例外が生成された場合、connect を呼び出すとコネクタサーバとの接続が試行されます。

定義:
インタフェース JMXConnector 内の connect
パラメータ:
environment - 接続のプロパティ。このマップ内のプロパティは、JMXConnector の作成時に指定されたマップ内のプロパティをオーバーライドする。このパラメータが null の場合、空のマップを指定した場合と同じことになる
例外:
IOException - 通信障害により接続を確立できなかった場合

getConnectionId

public String getConnectionId()
                       throws IOException
インタフェース JMXConnector の記述:

コネクタサーバから、この接続の ID を取得します。コネクタサーバ内のすべての接続は一意の ID を持ち、この ID は接続の寿命が尽きるまで変わりません。

定義:
インタフェース JMXConnector 内の getConnectionId
戻り値:
この接続の一意の ID。コネクタサーバが JMXConnectionNotification に格納する ID と同じ。package description は接続 ID の規約の説明
例外:
IOException - 接続の終了、中断などが原因で接続 ID を取得できない場合

getMBeanServerConnection

public MBeanServerConnection getMBeanServerConnection()
                                               throws IOException
インタフェース JMXConnector の記述:

リモート MBean サーバを表す MBeanServerConnection オブジェクトを返します。通常、JMXConnector に対してこのメソッドを 2 回呼び出した場合、各呼び出しで同じ MBeanServerConnection オブジェクトが返されます。ただし、これは必須条件ではありません。

返された MBeanServerConnection 内の各メソッドに対してこのメソッドを呼び出すと、リモート MBean サーバ内の対応するメソッドが呼び出されます。MBean サーバメソッドによって返される値が、クライアントに返される値となります。MBean サーバメソッドが Exception をスローした場合、クライアントには同じ Exception が返されます。MBean サーバメソッド自体、またはその呼び出しの試行で Error が発生した場合、クライアントには、発生した Error をラップする JMXServerErrorException が返されます。

このメソッドの呼び出しは、getMBeanServerConnection(null) の呼び出しと同等です。委譲対象が指定されておらず、MBeanServerConnection 上で呼び出されたすべてのオペレーションは認証対象 (存在する場合) を使用する必要があります。

定義:
インタフェース JMXConnector 内の getMBeanServerConnection
戻り値:
メソッドをリモート MBean サーバに転送することにより MBeanServerConnection インタフェースを実装するオブジェクト
例外:
IOException - 有効な MBeanServerConnection を作成できない場合。たとえば、connect メソッドによるリモート MBean サーバとの接続がまだ確立されていない場合、MBean サーバとの接続がすでに終了している場合、接続が中断された場合など

getMBeanServerConnection

public MBeanServerConnection getMBeanServerConnection(Subject delegationSubject)
                                               throws IOException
インタフェース JMXConnector の記述:

提供された委譲対象の代わりにオペレーションを実行する、リモート MBean サーバを表す MBeanServerConnection オブジェクトを返します。通常、JMXConnector および Subject に対してこのメソッドを 2 回呼び出した場合、各呼び出しで同じ MBeanServerConnection オブジェクトが返されます。ただし、これは必須条件ではありません。

返された MBeanServerConnection 内の各メソッドに対してこのメソッドを呼び出すと、認証対象ではなく委譲対象に代わって、リモート MBean サーバ内の対応するメソッドが呼び出されます。MBean サーバメソッドによって返される値が、クライアントに返される値となります。MBean サーバメソッドが Exception をスローした場合、クライアントには同じ Exception が返されます。MBean サーバメソッド自体、またはその呼び出しの試行で Error が発生した場合、クライアントには、発生した Error をラップする JMXServerErrorException が返されます。

定義:
インタフェース JMXConnector 内の getMBeanServerConnection
パラメータ:
delegationSubject - Subject。これの代わりに要求が実行される。null の場合、認証済み Subject の代わりに要求が実行される
戻り値:
メソッドをリモート MBean サーバに転送することにより、委譲対象の代わりに MBeanServerConnection インタフェースを実装するオブジェクト
例外:
IOException - 有効な MBeanServerConnection を作成できない場合。たとえば、connect メソッドによるリモート MBean サーバとの接続がまだ確立されていない場合、MBean サーバとの接続がすでに終了している場合、接続が中断された場合など

addConnectionNotificationListener

public void addConnectionNotificationListener(NotificationListener listener,
                                              NotificationFilter filter,
                                              Object handback)
インタフェース JMXConnector の記述:

接続の状態の変化を通知されるリスナーを追加します。このリスナーは、JMXConnectionNotification 型の通知を受信します。実装により、これ以外の型の通知が送信される場合もあります。

このメソッドに追加できるリスナーの数に制限はありません。フィルタとハンドバックに同一の値または異なった値を指定して、同一のリスナーを繰り返し追加することも可能です。複製エントリも特別扱いされません。たとえば、リスナーをフィルタなしで 2 回登録した場合、各通知で、このリスナーの handleNotification メソッドが 2 回呼び出されます。

定義:
インタフェース JMXConnector 内の addConnectionNotificationListener
パラメータ:
listener - 接続状態通知を受け取るリスナー
filter - リスナーに配信される通知を選択するフィルタ。すべての通知を配信する場合は null
handback - 各通知とともにリスナーに渡されるオブジェクト。null も可
関連項目:
JMXConnector.removeConnectionNotificationListener(javax.management.NotificationListener), NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

removeConnectionNotificationListener

public void removeConnectionNotificationListener(NotificationListener listener)
                                          throws ListenerNotFoundException
インタフェース JMXConnector の記述:

状態の変更を通知されるリスナーをリストから削除します。削除対象として指定できるのは、以前に追加されたリスナーのみです。条件に該当するリスナーが複数存在する場合、すべて削除されます。

定義:
インタフェース JMXConnector 内の removeConnectionNotificationListener
パラメータ:
listener - 接続状態通知を受け取るリスナー
例外:
ListenerNotFoundException - リスナーが JMXConnector に登録されていない場合
関連項目:
JMXConnector.removeConnectionNotificationListener(NotificationListener, NotificationFilter, Object), JMXConnector.addConnectionNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

removeConnectionNotificationListener

public void removeConnectionNotificationListener(NotificationListener listener,
                                                 NotificationFilter filter,
                                                 Object handback)
                                          throws ListenerNotFoundException
インタフェース JMXConnector の記述:

状態の変更を通知されるリスナーをリストから削除します。削除対象として指定できるのは、以前に同じ 3 つのパラメータで追加されたリスナーのみです。条件に該当するリスナーが複数存在する場合も、削除されるのは 1 つだけです。

定義:
インタフェース JMXConnector 内の removeConnectionNotificationListener
パラメータ:
listener - 接続状態通知を受け取るリスナー
filter - リスナーに配信される通知を選択するフィルタ。null も可
handback - 各通知とともにリスナーに渡されるオブジェクト。null も可
例外:
ListenerNotFoundException - リスナーが JMXConnector に登録されていない場合、または指定されたフィルタおよびハンドバックで登録されていない場合
関連項目:
JMXConnector.removeConnectionNotificationListener(NotificationListener), JMXConnector.addConnectionNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

close

public void close()
           throws IOException
インタフェース JMXConnector の記述:

クライアントとサーバの接続を終了します。現行の要求または新しい要求が、JMXConnector.getMBeanServerConnection() から返される MBeanServerConnection を使用する場合、IOException がスローされます。

このオブジェクト上で、すでに close が呼び出されている場合、もう 1 回呼び出しても何も起こりません。close が 1 回も呼び出されていない場合、または、呼び出しに対して例外が生成された場合は、接続の終了が試行されます。この試行に成功した場合、close は通常どおり終了します。失敗した場合は例外が生成されることがあります。

接続の終了は、時間のかかるオペレーションです。たとえばサーバがクラッシュした場合、終了オペレーションはネットワークプロトコルのタイムアウトまで中断される可能性があります。終了オペレーションの途中で待たされたくない場合は、別スレッドで実行してください。

定義:
インタフェース JMXConnector 内の close
例外:
IOException - 接続を正常に終了できない場合。この例外がスローされた場合、接続のサーバ側が正常に終了したかどうかは不明

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 も参照してください。