public interface JMXConnectorServerMBean
供连接器服务器使用的 MBean 接口。JMX API 连接器服务器连接到 MBean 服务器并为远程客户端建立到该 MBean 服务器的连接。
新创建的连接器服务器为非活动的,它还不侦听连接。只有在调用其 start
方法后,它才开始侦听连接。
方法摘要 | |
---|---|
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。 |
方法详细信息 |
---|
void start() throws IOException
激活连接器服务器,即开始侦听客户端连接。在连接器服务器已激活时,调用此方法没有任何作用。在连接器服务器已停止时,调用此方法将生成 IOException
。
IOException
- 如果无法启动侦听,或者如果连接器服务器已经停止。
IllegalStateException
- 如果此连接器服务器尚未连接到 MBean 服务器。
void stop() throws IOException
取消激活连接器服务器,即停止对客户端连接的侦听。调用此方法还将关闭所有由此服务器建立的客户端连接。返回此方法后,无论正常返回还是抛出异常,连接器服务器都不再创建任何新的客户端连接。
连接器服务器一旦停止就无法再启动。
在连接器服务器已停止时,调用此方法没有任何效果。在客户端服务器尚未启动时调用此方法将永久禁用连接器服务器对象。
如果关闭客户端连接导致异常,则该异常不会从此方法抛出。而会从此 MBean 发出一个类型为 JMXConnectionNotification.FAILED
的 JMXConnectionNotification
,同时显示无法关闭连接的连接 ID。
关闭连接器服务器是一个潜在的慢操作。例如,如果具有打开连接的客户端发生崩溃,则关闭操作不得不等待网络协议超时。不希望关闭操作出现阻塞的调用者应在单独的线程中处理关闭。
IOException
- 如果无法完全关闭服务器。抛出此异常时,服务器已尝试关闭所有的客户端连接。除了那些服务器尝试将它们关闭时生成异常的连接,所有的客户端连接都被关闭。
boolean isActive()
确定连接器服务器是否活动。当连接器服务器的 start
方法成功返回时,此连接器服务器即进入活动状态,并一直保持活动状态直到调用其 stop
方法或连接器服务器失败。
void setMBeanServerForwarder(MBeanServerForwarder mbsf)
添加一个截取对 MBean 服务器请求的对象,该请求是通过此连接器服务器到达的。此对象将作为任何由此连接器服务器创建的新连接的 MBeanServer
提供。现有连接不受影响。
如果此连接器服务器已与一个 MBeanServer
对象关联,则将该对象提供给 mbsf.setMBeanServer
。如果这样做生成异常,则该方法抛出相同的异常,没有任何其他作用。
如果此连接器尚未与一个 MBeanServer
对象关联,或者如果刚才提到的 mbsf.setMBeanServer
调用成功,则 mbsf
成为该连接器服务器的 MBeanServer
。
mbsf
- 新的
MBeanServerForwarder
。
IllegalArgumentException
- 如果调用
mbsf.setMBeanServer
失败,生成了
IllegalArgumentException
。这包含了
mbsf
为 null 的情况。
String[] getConnectionIds()
当前打开的到此连接器服务器的连接 ID 列表。
JMXServiceURL getAddress()
该连接器服务器的地址。
Map<String,?> getAttributes()
此连接器服务器的属性。
JMXConnector toJMXConnector(Map<String,?> env) throws IOException
返回此连接器服务器的客户端 stub。客户端 stub 为一个可序列化的对象,其 connect
方法可用于建立一个到此连接器服务器的新连接。
给定的连接器不必支持生成客户端 stub。但是,由 JMX Remote API 指定的连接器必须支持生成客户端 stub(JMXMP Connector 和 RMI Connector)。
env
- 客户端连接参数,与提供给
JMXConnector.connect(Map)
的参数具有相同的类型。可以为 null,它等效于一个空映射。
UnsupportedOperationException
- 如果此连接器服务器不支持生成客户端 stub。
IllegalStateException
- 如果 JMXConnectorServer 未启动(请参阅
isActive()
)。
IOException
- 如果存在通信问题而导致无法创建 stub。