javax.management.remote

接口
异常
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 服务器。它侦听客户端连接请求并为每个请求创建连接。

连接器服务器或者通过在该 MBean 服务器上注册该连接器服务器,或者通过将 MBean 服务器传给其构造方法来与 MBean 服务器关联。

连接器服务器在创建时为非活动的。只有在调用了 start 方法后,它才开始侦听客户端连接。当调用了 stop 方法,或者将连接器服务器从其 MBean 服务器注销后,连接器服务器停止侦听客户端连接。

停止连接器服务器并不会将它从其 MBean 服务器注销。连接器服务器一旦停止就无法重新启动。

客户端连接每次建立或断开都将发出一个类 JMXConnectionNotification 的通知。

从以下版本开始:
1.5

字段摘要
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)
          返回此连接器服务器的客户端 stub。
 
从类 javax.management.NotificationBroadcasterSupport 继承的方法
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 javax.management.remote.JMXConnectorServerMBean 继承的方法
getAddress, getAttributes, isActive, start, stop
 
从接口 javax.management.remote.JMXAddressable 继承的方法
getAddress
 

字段详细信息

AUTHENTICATOR

public static final String AUTHENTICATOR

为连接器服务器指定经验证的属性名称。此属性关联的值(如果有)必须是一个实现 JMXAuthenticator 接口的对象。

另请参见:
常量字段值
构造方法详细信息

JMXConnectorServer

public JMXConnectorServer()

构造一个将注册为连接到 MBean 服务器的 MBean 的连接器服务器。此构造方法通常由 createMBean 方法之一在创建(在 MBean 服务器内)实现远程可用的连接器服务器时调用。


JMXConnectorServer

public JMXConnectorServer(MBeanServer mbeanServer)

构造一个连接到给定 MBean 服务器的连接器服务器。使用这样的方法创建的连接器服务器可注册到一个不同的 MBean 服务器上。

参数:
mbeanServer - 该连接器服务器连接到的 MBean 服务器。如果该连接器服务器将通过注册的方式连接到 MBean 服务器,则为 Null。
方法详细信息

getMBeanServer

public MBeanServer getMBeanServer()

返回该连接器服务器连接到的 MBean 服务器。

返回:
该连接器服务器连接到的 MBean 服务器,或者如果尚未连接到 MBean 服务器,则返回 null。

setMBeanServerForwarder

public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
从接口 JMXConnectorServerMBean 复制的描述

添加一个截取对 MBean 服务器请求的对象,该请求是通过此连接器服务器到达的。此对象将作为任何由此连接器服务器创建的新连接的 MBeanServer 提供。现有连接不受影响。

如果此连接器服务器已与一个 MBeanServer 对象关联,则将该对象提供给 mbsf.setMBeanServer。如果这样做生成异常,则该方法抛出相同的异常,没有任何其他作用。

如果此连接器尚未与一个 MBeanServer 对象关联,或者如果刚才提到的 mbsf.setMBeanServer 调用成功,则 mbsf 成为该连接器服务器的 MBeanServer

指定者:
接口 JMXConnectorServerMBean 中的 setMBeanServerForwarder
参数:
mbsf - 新的 MBeanServerForwarder

getConnectionIds

public String[] getConnectionIds()
从接口 JMXConnectorServerMBean 复制的描述

当前打开的到此连接器服务器的连接 ID 列表。

指定者:
接口 JMXConnectorServerMBean 中的 getConnectionIds
返回:
包含 ID 列表的新字符串数组。如果当前没有打开的连接,则此数组将为空。

toJMXConnector

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

返回此连接器服务器的客户端 stub。客户端 stub 为一个可序列化的对象,其 connect 方法可用于建立一个到此连接器服务器的新连接。

给定的连接器不必支持生成客户端 stub。但是,由 JMX Remote API 指定的连接器必须支持生成客户端 stub(JMXMP Connector 和 RMI Connector)。

此方法的默认实现使用 JMXConnectorServerMBean.getAddress()JMXConnectorFactory 生成 stub,其代码等效于:

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

此代码不适用的连接器服务器必须重写此方法,这样或者实现适当的逻辑,或者抛出 UnsupportedOperationException

指定者:
接口 JMXConnectorServerMBean 中的 toJMXConnector
参数:
env - 客户端连接参数,与提供给 JMXConnector.connect(Map) 的参数具有相同的类型。可以为 null,它等效于一个空映射。
返回:
可用于建立到此连接器服务器的新连接的客户端 stub。
抛出:
UnsupportedOperationException - 如果此连接器服务器不支持生成客户端 stub。
IllegalStateException - 如果 JMXConnectorServer 未启动(请参阅 JMXConnectorServerMBean.isActive())。
IOException - 如果存在通信问题而导致无法创建 stub。

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()

返回一个指示由该 MBean 发送的通知的数组。JMXConnectorServer 中的实现返回带一个元素的数组,这指示它可以发出在此类中定义的类型的类 JMXConnectionNotification 的通知。能够发出其他通知的子类应返回一个包含该元素和对其他通知的描述的数组。

指定者:
接口 NotificationBroadcaster 中的 getNotificationInfo
覆盖:
NotificationBroadcasterSupport 中的 getNotificationInfo
返回:
可能的通知的数组。

connectionOpened

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

打开新的客户端连接时由子类调用。将由 getConnectionIds() 返回的 connectionId 添加到列表中,然后发出一个类型为 JMXConnectionNotification.OPENEDJMXConnectionNotification

参数:
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.CLOSEDJMXConnectionNotification

参数:
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.FAILEDJMXConnectionNotification

参数:
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 服务器。

指定者:
接口 MBeanRegistration 中的 preRegister
参数:
mbs - 该连接器服务器注册所在的 MBean 服务器。
name - MBean 的对象名。
返回:
MBean 将注册的名称。
抛出:
NullPointerException - 如果 mbsname 为 null。

postRegister

public void postRegister(Boolean registrationDone)
从接口 MBeanRegistration 复制的描述
允许 MBean 在被注册到 MBean 服务器或注销失败后执行任何所需要的操作。

指定者:
接口 MBeanRegistration 中的 postRegister
参数:
registrationDone - 指示该 MBean 是否已在 MBean 服务器中成功注册。false 值意味着注册阶段已失败。

preDeregister

public void preDeregister()
                   throws Exception

当此连接器服务器从 MBean 服务器上注销时,由该 MBean 服务器调用此方法。如果该连接器服务器以注册的方式连接到该 MBean 服务器,并且如果该连接器服务器仍为活动状态,则注销它将调用 stop 方法。如果 stop 方法抛出一个异常,则注销尝试将失败。建议在注销 MBean 之前显式调用 stop 方法。

指定者:
接口 MBeanRegistration 中的 preDeregister
抛出:
IOException - 如果异常由 stop 方法抛出。
Exception - MBean 服务器会捕捉此异常并以 MBeanRegistrationException 的形式重新抛出。

postDeregister

public void postDeregister()
从接口 MBeanRegistration 复制的描述
允许 MBean 在已从 MBean 服务器注销之后执行所需要的任何操作。

指定者:
接口 MBeanRegistration 中的 postDeregister