クラスJMXConnectorServer

java.lang.Object
javax.management.NotificationBroadcasterSupport
javax.management.remote.JMXConnectorServer
すべての実装されたインタフェース:
MBeanRegistration, NotificationBroadcaster, NotificationEmitter, JMXAddressable, JMXConnectorServerMBean
直系の既知のサブクラス:
RMIConnectorServer

public abstract class JMXConnectorServer extends NotificationBroadcasterSupport implements JMXConnectorServerMBean, MBeanRegistration, JMXAddressable

すべてのコネクタ・サーバーのスーパー・クラスです。 コネクタ・サーバーはMBeanサーバーに接続されます。 コネクタ・サーバーはクライアント接続要求を待機し、要求ごとに1つずつ接続を作成します。

コネクタ・サーバーとMBeanサーバーの関連付けは、コネクタ・サーバーをMBeanサーバーに登録するか、MBeanサーバーをコネクタ・サーバーのコンストラクタに渡すことによって行われます。

コネクタ・サーバーは作成された時点では非アクティブであり、 startメソッドが呼び出された時点でクライアント接続の待機を開始します。 その後、stopメソッドが呼び出されるか、MBeanサーバーから登録解除されると、コネクタ・サーバーはクライアント接続の待機を停止します。

コネクタ・サーバーを停止しても、MBeanサーバーから登録解除されることはありません。 いったん停止したコネクタ・サーバーを再起動することはできません。

クライアント接続が確立または終了するたびに、JMXConnectionNotificationクラスの通知が発行されます。

導入されたバージョン:
1.5
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final String
    コネクタ・サーバーのオーセンティケータを指定する属性の名前です。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    接続先のMBeanサーバーにMBeanとして登録されるコネクタ・サーバーを構築します。
    指定されたMBeanサーバーに接続するコネクタ・サーバーを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected void
    connectionClosed(String connectionId, String message, Object userData)
    クライアント接続が正常に終了したときサブクラスによって呼び出されます。
    protected void
    connectionFailed(String connectionId, String message, Object userData)
    クライアント接続に失敗したときサブクラスによって呼び出されます。
    protected void
    connectionOpened(String connectionId, String message, Object userData)
    新しいクライアント接続が開かれるとサブクラスによって呼び出されます。
    このコネクタ・サーバーへの現在開いている接続のIDのリストです。
    このコネクタ・サーバーの接続先MBeanサーバーを返します。
    このMBeanから送信される通知を示す配列を返します。
    void
    MBeanサーバーから登録解除したあと、MBeanが必要なオペレーションを実行できるようにします。
    void
    postRegister(Boolean registrationDone)
    MBeanサーバーへの登録が成功または失敗したあと、MBeanが必要なオペレーションを実行できるようにします。
    void
    このコネクタ・サーバーがMBeanサーバーから登録解除されるとき、そのMBeanサーバーによって呼び出されます。
    このコネクタ・サーバーがMBeanサーバーに登録されているとき、登録先のMBeanサーバーによって呼び出されます。
    void
    このコネクタ・サーバー経由で着信したMBeanサーバーへの要求を遮断するオブジェクトを挿入します。
    このコネクタ・サーバーのクライアント・スタブを返します。

    クラスで宣言されたメソッド NotificationBroadcasterSupport

    addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
    修飾子と型
    メソッド
    説明
    void
    リスナーを追加します。
    protected void
    このメソッドは、リスナーに通知を送信するため、sendNotificationによって呼び出されます。
    void
    このMBeanからリスナーを削除します。
    void
    このMBeanからリスナーを削除します。
    void
    通知を送信します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

    インタフェースで宣言されたメソッド JMXAddressable

    getAddress
    修飾子と型
    メソッド
    説明
    このオブジェクトのアドレスです。

    インタフェースで宣言されたメソッド JMXConnectorServerMBean

    getAddress, getAttributes, isActive, start, stop
    修飾子と型
    メソッド
    説明
    このコネクタ・サーバーのアドレス。
    このコネクタ・サーバーの属性。
    boolean
    コネクタ・サーバーがアクティブかどうかを判定します。
    void
    コネクタ・サーバーをアクティブにして、クライアント接続の待機を開始します。
    void
    コネクタ・サーバーを終了して、クライアント接続の待機を停止します。
  • フィールド詳細

    • AUTHENTICATOR

      public static final String AUTHENTICATOR

      コネクタ・サーバーのオーセンティケータを指定する属性の名前です。 この属性に値が関連付けられている場合、その値は、JMXAuthenticatorインタフェースを実装するオブジェクトである必要があります。

      関連項目:
  • コンストラクタの詳細

    • JMXConnectorServer

      public JMXConnectorServer()

      接続先のMBeanサーバーにMBeanとして登録されるコネクタ・サーバーを構築します。 このコンストラクタは、通常、リモートで利用できるコネクタ・サーバーがMBeanサーバー内で作成されるとき、いずれかのcreateMBeanメソッドによって呼び出されます。

    • JMXConnectorServer

      public JMXConnectorServer(MBeanServer mbeanServer)

      指定されたMBeanサーバーに接続するコネクタ・サーバーを構築します。 この方法で作成されたコネクタ・サーバーを別のMBeanサーバーに登録することもできます。または、いずれのMBeanサーバーにも登録しないこともできます。

      パラメータ:
      mbeanServer - このコネクタ・サーバーの接続先MBeanサーバー。 このコネクタ・サーバーをMBeanサーバーに登録することによってMBeanサーバーに接続する場合はnull。
  • メソッドの詳細

    • getMBeanServer

      public MBeanServer getMBeanServer()

      このコネクタ・サーバーの接続先MBeanサーバーを返します。

      戻り値:
      このコネクタ・サーバーの接続先MBeanサーバー。これがMBeanサーバーに接続されていない場合はnull。
    • setMBeanServerForwarder

      public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
      次のインタフェースからコピーされた説明: JMXConnectorServerMBean

      このコネクタ・サーバー経由で着信したMBeanサーバーへの要求を遮断するオブジェクトを挿入します。 このオブジェクトは、このコネクタ・サーバーによって作成された新しい接続のMBeanServerとして指定されます。 既存の接続には影響しません。

      このメソッドは、異なるMBeanServerForwarderオブジェクトを使って繰返し呼び出すことができます。 結果はフォワーダのチェーンになります。 最後に追加されたフォワーダが、チェーンの先頭になります。 詳細は次のとおりです。

      • このコネクタ・サーバーがすでにMBeanServerオブジェクトに関連付けられている場合は、mbsf.setMBeanServerにこのオブジェクトが渡されます。 この処理で例外が生成された場合、このメソッドはその例外をスローします。

      • このコネクタがまだMBeanServerオブジェクトに関連付けられていない場合、またはmbsf.setMBeanServer呼出しが成功した場合、mbsfがこのコネクタ・サーバーのMBeanServerになります。

      定義:
      setMBeanServerForwarder、インタフェースJMXConnectorServerMBean
      パラメータ:
      mbsf - 新しいMBeanServerForwarder
    • getConnectionIds

      public String[] getConnectionIds()
      次のインタフェースからコピーされた説明: JMXConnectorServerMBean

      このコネクタ・サーバーへの現在開いている接続のIDのリストです。

      定義:
      getConnectionIds、インタフェースJMXConnectorServerMBean
      戻り値:
      IDリストを含む新しい文字配列。 現在有効になっている接続がない場合、この配列は空になる。
    • toJMXConnector

      public JMXConnector toJMXConnector(Map<String,?> env) throws IOException

      このコネクタ・サーバーのクライアント・スタブを返します。 クライアント・スタブは直列化可能なオブジェクトです。このオブジェクトのconnectメソッドを使用して、このコネクタ・サーバーとの新しい接続を1つ確立できます。

      指定されたコネクタが、クライアント・スタブの生成機能をサポートしない場合もあります。 RMIコネクタはこれを実行します。

      このメソッドのデフォルト実装は、JMXConnectorServerMBean.getAddress()JMXConnectorFactoryを使って、次のようなコードのスタブを生成します。

      JMXServiceURL addr = getAddress();
      return JMXConnectorFactory.newJMXConnector(addr, env);
      

      これが適切でないコネクタ・サーバーは、適切なロジックを実装するか、UnsupportedOperationExceptionをスローするために、このメソッドをオーバーライドする必要があります。

      定義:
      toJMXConnector、インタフェースJMXConnectorServerMBean
      パラメータ:
      env - JMXConnector.connect(Map)に提供可能な同じ種類のクライアント接続パラメータ。 nullも可、その場合は空マップと同等。
      戻り値:
      このコネクタ・サーバーとの新しい接続を確立するために使用できるクライアント・スタブ。
      スロー:
      UnsupportedOperationException - このコネクタ・サーバーがクライアント・スタブの生成機能をサポートしない場合。
      IllegalStateException - JMXConnectorServerが起動していない場合(JMXConnectorServerMBean.isActive()を参照)。
      IOException - 通信障害により、スタブを作成できない場合。
    • getNotificationInfo

      public MBeanNotificationInfo[] getNotificationInfo()

      このMBeanから送信される通知を示す配列を返します。 JMXConnectorServer内の実装は、要素1個の配列を返します。これは、JMXConnectionNotificationクラスの通知(そのクラスにタイプが定義される)を発行できることを示します。 その他の通知を発行できるサブクラスは、この要素とその他の通知の説明を含む配列を返します。

      定義:
      getNotificationInfo、インタフェースNotificationBroadcaster
      戻り値:
      可能な通知の配列。
    • connectionOpened

      protected void connectionOpened(String connectionId, String message, Object userData)

      新しいクライアント接続が開かれるとサブクラスによって呼び出されます。 getConnectionIds()によって返されるリストにconnectionIdを追加し、JMXConnectionNotification.OPENED型のJMXConnectionNotificationを発行します。

      パラメータ:
      connectionId - 新しい接続のID。 以前にこのコネクタ・サーバーによって開かれた接続のIDとは異なる必要がある。
      message - 発行されたJMXConnectionNotificationのメッセージ。 nullも可。 Notification.getMessage()を参照してください。
      userData - 発行されたJMXConnectionNotificationuserData nullも可。 Notification.getUserData()を参照してください。
      スロー:
      NullPointerException - connectionIdがnullである場合。
    • connectionClosed

      protected void connectionClosed(String connectionId, String message, Object userData)

      クライアント接続が正常に終了したときサブクラスによって呼び出されます。 getConnectionIds()によって返されるリストからconnectionIdを削除し、JMXConnectionNotification.CLOSED型のJMXConnectionNotificationを発行します。

      パラメータ:
      connectionId - 終了した接続のID。
      message - 発行されたJMXConnectionNotificationのメッセージ。 nullも可。 Notification.getMessage()を参照してください。
      userData - 発行されたJMXConnectionNotificationuserData nullも可。 Notification.getUserData()を参照してください。
      スロー:
      NullPointerException - connectionIdがnullである場合。
    • connectionFailed

      protected void connectionFailed(String connectionId, String message, Object userData)

      クライアント接続に失敗したときサブクラスによって呼び出されます。 getConnectionIds()によって返されるリストからconnectionIdを削除し、JMXConnectionNotification.FAILED型のJMXConnectionNotificationを発行します。

      パラメータ:
      connectionId - 失敗した接続のID。
      message - 発行されたJMXConnectionNotificationのメッセージ。 nullも可。 Notification.getMessage()を参照してください。
      userData - 発行されたJMXConnectionNotificationuserData nullも可。 Notification.getUserData()を参照してください。
      スロー:
      NullPointerException - connectionIdがnullである場合。
    • preRegister

      public ObjectName preRegister(MBeanServer mbs, ObjectName name)

      このコネクタ・サーバーがMBeanサーバーに登録されているとき、登録先のMBeanサーバーによって呼び出されます。 このコネクタ・サーバーがMBeanサーバーに接続され、そのgetMBeanServer()メソッドはmbsを返します。

      このコネクタ・サーバーがすでにMBeanサーバーに接続されている場合、このメソッドは何も実行しません。 接続先のMBeanサーバーが、登録先のMBeanサーバーに一致している必要はありません。

      定義:
      preRegister、インタフェースMBeanRegistration
      パラメータ:
      mbs - このコネクタ・サーバーの登録先MBeanサーバー。
      name - MBeanのオブジェクト名。
      戻り値:
      MBeanの登録名。
      スロー:
      NullPointerException - mbsまたはnameがnullの場合。
    • postRegister

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

      このメソッドの実装がRuntimeExceptionまたはErrorをスローする場合、MBeanサーバーはRuntimeMBeanExceptionまたはRuntimeErrorExceptionの内部でこれらをそれぞれ再スローします。 ただし、postRegisterで例外をスローしてもMBeanの状態は変化しません。MBeanがすでに登録されている(registrationDonetrueである)場合、MBeanの登録は解除されません。

      createMBean()またはregisterMBean()を呼び出すコードでは、このような例外が発行されたときにMBeanの登録が失敗したとみなされることがあるため、これによって混乱が生じる可能性があります。 したがって、回避できる場合はpostRegisterの実装で実行時例外またはエラーをスローしないことをお勧めします。

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

      public void preDeregister() throws Exception

      このコネクタ・サーバーがMBeanサーバーから登録解除されるとき、そのMBeanサーバーによって呼び出されます。 登録によってMBeanサーバーに接続していたコネクタ・サーバーがまだアクティブな場合、登録を解除するとstopメソッドが呼び出されます。 stopメソッドが例外をスローした場合、登録解除は失敗します。 stopメソッドは、MBeanの登録解除前に、明示的に呼び出すことをお勧めします。

      定義:
      preDeregister、インタフェースMBeanRegistration
      スロー:
      IOException - stopメソッドによってスローされた場合。
      Exception - この例外は、MBeanサーバーにキャッチされ、MBeanRegistrationExceptionとして再スローされる。
    • postDeregister

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

      このメソッドの実装がRuntimeExceptionまたはErrorをスローする場合、MBeanサーバーはRuntimeMBeanExceptionまたはRuntimeErrorExceptionの内部でこれらをそれぞれ再スローします。 ただし、postDeregisterで例外をスローしてもMBeanの状態は変化しません。MBeanはすでに正常に登録解除されており、その状態のままになります。

      unregisterMBean()を呼び出すコードでは、MBeanの登録解除が失敗したとみなされることがあるため、これによって混乱が生じる可能性があります。 したがって、回避できる場合はpostDeregisterの実装で実行時例外またはエラーをスローしないことをお勧めします。

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