接口 JMXConnectorServerMBean

所有已知的实现类:
JMXConnectorServer , RMIConnectorServer

public interface JMXConnectorServerMBean

连接器服务的 MBean 接口。 JMX API 连接器服务附加到 MBean 服务,并为远程客户端建立到该 MBean 服务的连接。

新创建的连接器服务是 inactive ,并且尚未监听连接。只有当它的 start 方法被调用时,它才会开始监听连接。

自从:
1.5
  • 方法详情

    • start

      void start() throws IOException

      激活连接器服务,即开始监听客户端连接。在连接器服务已处于活动状态时调用此方法无效。在连接器服务停止时调用此方法将生成一个 IOException

      抛出:
      IOException - 如果无法开始监听或连接器服务已停止。
      IllegalStateException - 如果连接器服务尚未连接到 MBean 服务。
    • stop

      void stop() throws IOException

      停用连接器服务,即停止监听客户端连接。调用此方法还将关闭此服务建立的所有客户端连接。此方法返回后,无论是正常还是异常,连接器服务都不会创建任何新的客户端连接。

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

      在连接器服务已停止时调用此方法无效。在连接器服务尚未启动时调用此方法将永久禁用连接器服务对象。

      如果关闭客户端连接产生异常,则该方法不会抛出该异常。从此 MBean 发出类型为 JMXConnectionNotification.FAILED JMXConnectionNotification ,其连接 ID 为无法关闭的连接。

      关闭连接器服务是一个可能很慢的操作。例如,如果打开连接的客户端机器崩溃了,关闭操作可能必须等待网络协议超时。不想阻塞关闭操作的调用者应该在单独的线程中执行。

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

      boolean isActive()

      确定连接器服务是否处于活动状态。连接器服务在其 start 方法成功返回时开始处于活动状态,并保持活动状态直到其 stop 方法被调用或连接器服务发生故障。

      返回:
      如果连接器服务处于活动状态,则为真。
    • setMBeanServerForwarder

      void setMBeanServerForwarder(MBeanServerForwarder  mbsf)

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

      可以使用不同的 MBeanServerForwarder 对象多次调用此方法。结果是一个转发器链。最后添加的转发器是链中的第一个。更详细地:

      • 如果此连接器服务已与 MBeanServer 对象相关联,则该对象将提供给 mbsf.setMBeanServer 。如果这样做会产生异常,则此方法会抛出相同的异常而不会产生任何其他影响。

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

      参数:
      mbsf - 新的 MBeanServerForwarder
      抛出:
      IllegalArgumentException - 如果对 mbsf.setMBeanServer 的调用因 IllegalArgumentException 而失败。这包括 mbsf 为空的情况。
    • getConnectionIds

      String [] getConnectionIds()

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

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

      JMXServiceURL  getAddress()

      此连接器服务的地址。

      返回的地址可能与创建连接器服务时提供的原始地址不完全相同,因为原始地址可能并不总是完整的。例如,端口号可以在启动连接器服务时动态分配。相反,返回的地址是 JMXConnectorServer 的实际 JMXServiceURL 。这是客户端提供给 JMXConnectorFactory.connect(JMXServiceURL) 的地址。

      请注意,如果 JMXConnectorServer 还不是 active ,则返回的地址可能是 null

      返回:
      此连接器服务的地址,如果没有,则为 null。
    • getAttributes

      Map <String ,?> getAttributes()

      此连接器服务的属性。

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

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

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

      给定的连接器不需要支持客户端存根的生成。但是,JMX Remote API 指定的连接器(JMXMP 连接器和 RMI 连接器)可以。

      参数:
      env - 可以提供给 JMXConnector.connect(Map) 的同类客户端连接参数。可以为null,相当于一个空map。
      返回:
      可用于与此连接器服务建立新连接的客户端存根。
      抛出:
      UnsupportedOperationException - 如果此连接器服务不支持生成客户端存根。
      IllegalStateException - 如果 JMXConnectorServer 未启动(请参阅 isActive() )。
      IOException - 如果通信问题意味着无法创建存根。