public abstract class JMXConnectorServer extends NotificationBroadcasterSupport implements JMXConnectorServerMBean, MBeanRegistration, JMXAddressable
すべてのコネクタ・サーバーのスーパー・クラスです。コネクタ・サーバーはMBeanサーバーに接続されます。コネクタ・サーバーはクライアント接続要求を待機し、要求ごとに1つずつ接続を作成します。
コネクタ・サーバーとMBeanサーバーの関連付けは、コネクタ・サーバーをMBeanサーバーに登録するか、MBeanサーバーをコネクタ・サーバーのコンストラクタに渡すことによって行われます。
コネクタ・サーバーは作成された時点では非アクティブであり、startメソッドが呼び出された時点でクライアント接続の待機を開始します。その後、stopメソッドが呼び出されるか、MBeanサーバーから登録解除されると、コネクタ・サーバーはクライアント接続の待機を停止します。
コネクタ・サーバーを停止しても、MBeanサーバーから登録解除されることはありません。いったん停止したコネクタ・サーバーを再起動することはできません。
クライアント接続が確立または終了するたびに、JMXConnectionNotificationクラスの通知が発行されます。
| 修飾子と型 | フィールドと説明 |
|---|---|
static String |
AUTHENTICATOR
コネクタ・サーバーのオーセンティケータを指定する属性の名前です。
|
| コンストラクタと説明 |
|---|
JMXConnectorServer()
接続先のMBeanサーバーにMBeanとして登録されるコネクタ・サーバーを構築します。
|
JMXConnectorServer(MBeanServer mbeanServer)
指定された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)
新しいクライアント接続が開かれるとサブクラスによって呼び出されます。
|
String[] |
getConnectionIds()
このコネクタ・サーバーへの現在開いている接続のIDのリストです。
|
MBeanServer |
getMBeanServer()
このコネクタ・サーバーの接続先MBeanサーバーを返します。
|
MBeanNotificationInfo[] |
getNotificationInfo()
このMBeanから送信される通知を示す配列を返します。
|
void |
postDeregister()
MBeanサーバーから登録解除したあと、MBeanが必要なオペレーションを実行できるようにします。
|
void |
postRegister(Boolean registrationDone)
MBeanサーバーへの登録が成功または失敗したあと、MBeanが必要なオペレーションを実行できるようにします。
|
void |
preDeregister()
このコネクタ・サーバーがMBeanサーバーから登録解除されるとき、そのMBeanサーバーによって呼び出されます。
|
ObjectName |
preRegister(MBeanServer mbs, ObjectName name)
このコネクタ・サーバーがMBeanサーバーに登録されているとき、登録先のMBeanサーバーによって呼び出されます。
|
void |
setMBeanServerForwarder(MBeanServerForwarder mbsf)
このコネクタ・サーバー経由で着信したMBeanサーバーへの要求を遮断するオブジェクトを挿入します。
|
JMXConnector |
toJMXConnector(Map<String,?> env)
このコネクタ・サーバーのクライアント・スタブを返します。
|
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotificationclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetAddress, getAttributes, isActive, start, stopgetAddresspublic static final String AUTHENTICATOR
コネクタ・サーバーのオーセンティケータを指定する属性の名前です。この属性に値が関連付けられている場合、その値は、JMXAuthenticatorインタフェースを実装するオブジェクトである必要があります。
public JMXConnectorServer()
接続先のMBeanサーバーにMBeanとして登録されるコネクタ・サーバーを構築します。このコンストラクタは、通常、リモートで利用できるコネクタ・サーバーがMBeanサーバー内で作成されるとき、いずれかのcreateMBeanメソッドによって呼び出されます。
public JMXConnectorServer(MBeanServer mbeanServer)
指定されたMBeanサーバーに接続するコネクタ・サーバーを構築します。この方法で作成されたコネクタ・サーバーを別のMBeanサーバーに登録することもできます。または、いずれのMBeanサーバーにも登録しないこともできます。
mbeanServer - このコネクタ・サーバーの接続先MBeanサーバー。このコネクタ・サーバーをMBeanサーバーに登録することによってMBeanサーバーに接続する場合はnull。public MBeanServer getMBeanServer()
このコネクタ・サーバーの接続先MBeanサーバーを返します。
public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
JMXConnectorServerMBeanこのコネクタ・サーバー経由で着信したMBeanサーバーへの要求を遮断するオブジェクトを挿入します。このオブジェクトは、このコネクタ・サーバーによって作成された新しい接続のMBeanServerとして指定されます。既存の接続に影響はありません。
このメソッドは、異なるMBeanServerForwarderオブジェクトを使って繰返し呼び出すことができます。結果はフォワーダのチェーンになります。最後に追加されたフォワーダが、チェーンの先頭になります。詳細は次のとおりです。
このコネクタ・サーバーがすでにMBeanServerオブジェクトに関連付けられている場合は、mbsf.setMBeanServerにこのオブジェクトが渡されます。この処理で例外が生成された場合、このメソッドはその例外をスローします。
このコネクタがまだMBeanServerオブジェクトに関連付けられていない場合、またはmbsf.setMBeanServer呼出しが成功した場合、mbsfがこのコネクタ・サーバーのMBeanServerになります。
setMBeanServerForwarder、インタフェース: JMXConnectorServerMBeanmbsf - 新しいMBeanServerForwarder。public String[] getConnectionIds()
JMXConnectorServerMBeanこのコネクタ・サーバーへの現在開いている接続のIDのリストです。
getConnectionIds、インタフェース: JMXConnectorServerMBeanpublic JMXConnector toJMXConnector(Map<String,?> env) throws IOException
このコネクタ・サーバーのクライアント・スタブを返します。クライアント・スタブは直列化可能なオブジェクトです。このオブジェクトのconnectメソッドを使用して、このコネクタ・サーバーとの新しい接続を1つ確立できます。
指定されたコネクタが、クライアント・スタブの生成機能をサポートしない場合もあります。ただし、JMXリモートAPIによって指定されたコネクタ(JMXMPコネクタとRMIコネクタ)は、この機能をサポートします。
このメソッドのデフォルト実装は、JMXConnectorServerMBean.getAddress()とJMXConnectorFactoryを使って、次のようなコードのスタブを生成します。
JMXServiceURL addr =getAddress(); returnJMXConnectorFactory.newJMXConnector(addr, env);
これが適切でないコネクタ・サーバーは、適切なロジックを実装するか、UnsupportedOperationExceptionをスローするために、このメソッドをオーバーライドする必要があります。
toJMXConnector、インタフェース: JMXConnectorServerMBeanenv - JMXConnector.connect(Map)に提供可能な同じ種類のクライアント接続パラメータ。nullも可、その場合は空マップと同等。UnsupportedOperationException - このコネクタ・サーバーがクライアント・スタブの生成機能をサポートしない場合。IllegalStateException - JMXConnectorServerが起動していない場合(JMXConnectorServerMBean.isActive()を参照)。IOException - 通信障害により、スタブを作成できない場合。public MBeanNotificationInfo[] getNotificationInfo()
このMBeanから送信される通知を示す配列を返します。JMXConnectorServer内の実装は、要素1個の配列を返します。これは、JMXConnectionNotificationクラスの通知(そのクラスにタイプが定義される)を発行できることを示します。その他の通知を発行できるサブクラスは、この要素とその他の通知の説明を含む配列を返します。
getNotificationInfo、インタフェース: NotificationBroadcastergetNotificationInfo、クラス: NotificationBroadcasterSupportprotected void connectionOpened(String connectionId, String message, Object userData)
新しいクライアント接続が開かれるとサブクラスによって呼び出されます。getConnectionIds()によって返されるリストにconnectionIdを追加し、JMXConnectionNotification.OPENED型のJMXConnectionNotificationを発行します。
connectionId - 新しい接続のID。以前にこのコネクタ・サーバーによって開かれた接続のIDとは異なる必要がある。message - 発行されたJMXConnectionNotificationのメッセージ。nullも可。Notification.getMessage()を参照してください。userData - 発行されたJMXConnectionNotificationのuserData。nullも可。Notification.getUserData()を参照してください。NullPointerException - connectionIdがnullである場合。protected void connectionClosed(String connectionId, String message, Object userData)
クライアント接続が正常に終了したときサブクラスによって呼び出されます。getConnectionIds()によって返されるリストからconnectionIdを削除し、JMXConnectionNotification.CLOSED型のJMXConnectionNotificationを発行します。
connectionId - 終了した接続のID。message - 発行されたJMXConnectionNotificationのメッセージ。nullも可。Notification.getMessage()を参照してください。userData - 発行されたJMXConnectionNotificationのuserData。nullも可。Notification.getUserData()を参照してください。NullPointerException - connectionIdがnullである場合。protected void connectionFailed(String connectionId, String message, Object userData)
クライアント接続に失敗したときサブクラスによって呼び出されます。getConnectionIds()によって返されるリストからconnectionIdを削除し、JMXConnectionNotification.FAILED型のJMXConnectionNotificationを発行します。
connectionId - 失敗した接続のID。message - 発行されたJMXConnectionNotificationのメッセージ。nullも可。Notification.getMessage()を参照してください。userData - 発行されたJMXConnectionNotificationのuserData。nullも可。Notification.getUserData()を参照してください。NullPointerException - connectionIdがnullである場合。public ObjectName preRegister(MBeanServer mbs, ObjectName name)
このコネクタ・サーバーがMBeanサーバーに登録されているとき、登録先のMBeanサーバーによって呼び出されます。このコネクタ・サーバーがMBeanサーバーに接続され、そのgetMBeanServer()メソッドはmbsを返します。
このコネクタ・サーバーがすでにMBeanサーバーに接続されている場合、このメソッドは何も実行しません。接続先のMBeanサーバーが、登録先のMBeanサーバーに一致している必要はありません。
preRegister、インタフェース: MBeanRegistrationmbs - このコネクタ・サーバーの登録先MBeanサーバー。name - MBeanのオブジェクト名。NullPointerException - mbsまたはnameがnullの場合。public void postRegister(Boolean registrationDone)
MBeanRegistrationこのメソッドの実装がRuntimeExceptionまたはErrorをスローする場合、MBeanサーバーはRuntimeMBeanExceptionまたはRuntimeErrorExceptionの内部でこれらをそれぞれ再スローします。ただし、postRegisterで例外をスローしてもMBeanの状態は変化しません。MBeanがすでに登録されている(registrationDoneがtrueである)場合、MBeanの登録は解除されません。
createMBean()またはregisterMBean()を呼び出すコードでは、このような例外が発行されたときにMBeanの登録が失敗したとみなされることがあるため、これによって混乱が生じる可能性があります。したがって、回避できる場合はpostRegisterの実装で実行時例外またはエラーをスローしないことをお勧めします。
postRegister、インタフェース: MBeanRegistrationregistrationDone - MBeanがMBeanサーバーに正常に登録されたかどうかを示す。登録に失敗した場合の値はfalse。public void preDeregister()
throws Exception
このコネクタ・サーバーがMBeanサーバーから登録解除されるとき、そのMBeanサーバーによって呼び出されます。登録によってMBeanサーバーに接続していたコネクタ・サーバーがまだアクティブな場合、登録を解除するとstopメソッドが呼び出されます。stopメソッドが例外をスローした場合、登録解除は失敗します。stopメソッドは、MBeanの登録解除前に、明示的に呼び出すことをお勧めします。
preDeregister、インタフェース: MBeanRegistrationIOException - stopメソッドによってスローされた場合。Exception - この例外は、MBeanサーバーにキャッチされ、MBeanRegistrationExceptionとして再スローされる。public void postDeregister()
MBeanRegistrationこのメソッドの実装がRuntimeExceptionまたはErrorをスローする場合、MBeanサーバーはRuntimeMBeanExceptionまたはRuntimeErrorExceptionの内部でこれらをそれぞれ再スローします。ただし、postDeregisterで例外をスローしてもMBeanの状態は変化しません。MBeanはすでに正常に登録解除されており、その状態のままになります。
unregisterMBean()を呼び出すコードでは、MBeanの登録解除が失敗したとみなされることがあるため、これによって混乱が生じる可能性があります。したがって、回避できる場合はpostDeregisterの実装で実行時例外またはエラーをスローしないことをお勧めします。
postDeregister、インタフェース: MBeanRegistration バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.