javax.management.remote

接口
异常
所有已知实现类:
JMXConnectorServer, RMIConnectorServer

public interface JMXConnectorServerMBean

供连接器服务器使用的 MBean 接口。JMX API 连接器服务器连接到 MBean 服务器并为远程客户端建立到该 MBean 服务器的连接。

新创建的连接器服务器为非活动的,它还不侦听连接。只有在调用其 start 方法后,它才开始侦听连接。

从以下版本开始:
1.5

方法摘要
 JMXServiceURL getAddress()
          该连接器服务器的地址。
 Map<String,?> getAttributes()
          此连接器服务器的属性。
 String[] getConnectionIds()
          当前打开的到此连接器服务器的连接 ID 列表。
 boolean isActive()
          确定连接器服务器是否活动。
 void setMBeanServerForwarder(MBeanServerForwarder mbsf)
          添加一个截取对 MBean 服务器请求的对象,该请求是通过此连接器服务器到达的。
 void start()
          激活连接器服务器,即开始侦听客户端连接。
 void stop()
          取消激活连接器服务器,即停止对客户端连接的侦听。
 JMXConnector toJMXConnector(Map<String,?> env)
          返回此连接器服务器的客户端 stub。
 

方法详细信息

start

void start()
           throws IOException

激活连接器服务器,即开始侦听客户端连接。在连接器服务器已激活时,调用此方法没有任何作用。在连接器服务器已停止时,调用此方法将生成 IOException

抛出:
IOException - 如果无法启动侦听,或者如果连接器服务器已经停止。
IllegalStateException - 如果此连接器服务器尚未连接到 MBean 服务器。

stop

void stop()
          throws IOException

取消激活连接器服务器,即停止对客户端连接的侦听。调用此方法还将关闭所有由此服务器建立的客户端连接。返回此方法后,无论正常返回还是抛出异常,连接器服务器都不再创建任何新的客户端连接。

连接器服务器一旦停止就无法再启动。

在连接器服务器已停止时,调用此方法没有任何效果。在客户端服务器尚未启动时调用此方法将永久禁用连接器服务器对象。

如果关闭客户端连接导致异常,则该异常不会从此方法抛出。而会从此 MBean 发出一个类型为 JMXConnectionNotification.FAILEDJMXConnectionNotification,同时显示无法关闭连接的连接 ID。

关闭连接器服务器是一个潜在的慢操作。例如,如果具有打开连接的客户端发生崩溃,则关闭操作不得不等待网络协议超时。不希望关闭操作出现阻塞的调用者应在单独的线程中处理关闭。

抛出:
IOException - 如果无法完全关闭服务器。抛出此异常时,服务器已尝试关闭所有的客户端连接。除了那些服务器尝试将它们关闭时生成异常的连接,所有的客户端连接都被关闭。

isActive

boolean isActive()

确定连接器服务器是否活动。当连接器服务器的 start 方法成功返回时,此连接器服务器即进入活动状态,并一直保持活动状态直到调用其 stop 方法或连接器服务器失败。

返回:
如果该连接器服务器为活动的,则返回 true。

setMBeanServerForwarder

void setMBeanServerForwarder(MBeanServerForwarder mbsf)

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

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

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

参数:
mbsf - 新的 MBeanServerForwarder
抛出:
IllegalArgumentException - 如果调用 mbsf.setMBeanServer 失败,生成了 IllegalArgumentException。这包含了 mbsf 为 null 的情况。

getConnectionIds

String[] getConnectionIds()

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

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

getAddress

JMXServiceURL getAddress()

该连接器服务器的地址。

返回:
该连接器服务器的地址,或者如果没有任何地址,则返回 null。

getAttributes

Map<String,?> getAttributes()

此连接器服务器的属性。

返回:
包含该连接器服务器的属性的一个只读映射。该映射中忽略了其值不可序列化的属性。如果没有可序列化的属性,则返回的映射为空。

toJMXConnector

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

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

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

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