接口 JMXConnector

所有父级接口:
AutoCloseable , Closeable
所有已知的实现类:
RMIConnector

public interface JMXConnector extends Closeable

JMX API 连接器的客户端。这种类型的对象可用于建立与连接器服务的连接。

这种类型的新创建的对象是未连接的。它的connect 方法必须在使用前调用。但是,JMXConnectorFactory.connect 创建的对象已经连接。

自从:
1.5
  • 字段详细信息

    • CREDENTIALS

      static final String  CREDENTIALS

      指定在连接期间发送到连接器服务的凭据的属性的名称。与此属性关联的值(如果有)是服务的 JMXAuthenticator 适当类型的可序列化对象。

      参见:
  • 方法详情

    • connect

      void connect() throws IOException

      建立与连接器服务的连接。此方法等效于 connect(null)

      抛出:
      IOException - 如果由于通信问题无法建立连接。
      SecurityException - 如果出于安全原因无法建立连接。
    • connect

      void connect(Map <String ,?> env) throws IOException

      建立与连接器服务的连接。

      如果 connect 已在此对象上成功调用,则再次调用它没有任何效果。但是,如果在 connect 之后调用了 close() ,则新的 connect 将抛出一个 IOException

      否则,要么 connect 从未在此对象上调用过,要么已被调用但产生了异常。然后调用 connect 将尝试与连接器服务建立连接。

      参数:
      env - 连接的属性。此map中的属性会覆盖创建 JMXConnector 时指定的map中的属性(如果有)。该参数可以为null,相当于一个空的map。
      抛出:
      IOException - 如果由于通信问题无法建立连接。
      SecurityException - 如果出于安全原因无法建立连接。
    • getMBeanServerConnection

      MBeanServerConnection  getMBeanServerConnection() throws IOException

      返回代表远程 MBean 服务的 MBeanServerConnection 对象。对于给定的 JMXConnector ,两次成功调用此方法通常会返回相同的 MBeanServerConnection 对象,但这不是必需的。

      对于返回的 MBeanServerConnection 中的每个方法,调用该方法会导致在远程 MBean 服务中调用相应的方法。 MBean 服务方法返回的值是返回给客户端的值。如果 MBean 服务方法生成 Exception ,则客户端会看到相同的 Exception 。如果 MBean 服务方法或调用它的尝试生成 Error ,则 Error 被包装在 JMXServerErrorException 中,客户端可以看到。

      调用此方法等同于调用 getMBeanServerConnection(null) ,这意味着没有指定委托主题,并且在 MBeanServerConnection 上调用的所有操作都必须使用经过身份验证的主题(如果有)。

      返回:
      通过将其方法转发到远程 MBean 服务来实现 MBeanServerConnection 接口的对象。
      抛出:
      IOException - 如果无法创建有效的 MBeanServerConnection,例如因为尚未建立与远程 MBean 服务的连接(使用 connect 方法),或者它已关闭,或者它已断开。
    • getMBeanServerConnection

      MBeanServerConnection  getMBeanServerConnection(Subject  delegationSubject) throws IOException

      返回代表远程 MBean 服务的 MBeanServerConnection 对象,代表提供的委托主题在该服务上执行操作。对于给定的 JMXConnectorSubject ,两次成功调用此方法通常会返回相同的 MBeanServerConnection 对象,但这不是必需的。

      对于返回的 MBeanServerConnection 中的每个方法,调用该方法会导致在远程 MBean 服务中代表给定的委托主题而不是经过身份验证的主题调用相应的方法。 MBean 服务方法返回的值是返回给客户端的值。如果 MBean 服务方法生成 Exception ,则客户端会看到相同的 Exception 。如果 MBean 服务方法或调用它的尝试生成 Error ,则 Error 被包装在 JMXServerErrorException 中,客户端可以看到。

      参数:
      delegationSubject - 将代表执行请求的 Subject。可以为空,在这种情况下,将代表经过身份验证的主题执行请求(如果有)。
      返回:
      一个对象,它通过代表给定的委托主题将其方法转发到远程 MBean 服务来实现 MBeanServerConnection 接口。
      抛出:
      IOException - 如果无法创建有效的 MBeanServerConnection,例如因为尚未建立与远程 MBean 服务的连接(使用 connect 方法),或者它已关闭,或者它已断开。
    • close

      void close() throws IOException

      关闭客户端与其服务的连接。使用 getMBeanServerConnection() 返回的 MBeanServerConnection 的任何正在进行的或新的请求都将获得 IOException

      如果 close 已在此对象上成功调用,则再次调用它没有任何效果。如果 close 从未被调用过,或者如果它被调用但产生异常,将尝试关闭连接。此尝试可以成功,在这种情况下close 将正常返回,或者它可以生成异常。

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

      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      抛出:
      IOException - 如果无法干净地关闭连接。如果抛出此异常,则不知道连接的服务端是否已干净关闭。
    • addConnectionNotificationListener

      void addConnectionNotificationListener(NotificationListener  listener, NotificationFilter  filter, Object  handback)

      添加一个监听器以通知连接状态的更改。监听器将收到类型为 JMXConnectionNotification 的通知。实现也可以发送其他类型的通知。

      可以使用此方法添加任意数量的监听器。可以多次添加相同的监听器,使用相同或不同的过滤器和交接值。没有对重复条目的特殊处理。例如,如果一个监听器在没有过滤器的情况下注册了两次,那么它的 handleNotification 方法将为每个通知调用两次。

      参数:
      listener - 接收连接状态通知的监听器。
      filter - 一个过滤器,用于选择要将哪些通知传递给监听器,如果要传递所有通知,则为 null。
      handback - 随每个通知一起提供给监听器的对象。可以为空。
      抛出:
      NullPointerException - 如果 listener 为空。
      参见:
    • removeConnectionNotificationListener

      void removeConnectionNotificationListener(NotificationListener  listener) throws ListenerNotFoundException

      从列表中删除监听以通知状态更改。之前必须添加监听。如果有多个匹配的监听,则全部删除。

      参数:
      listener - 接收连接状态通知的监听器。
      抛出:
      NullPointerException - 如果 listener 为空。
      ListenerNotFoundException - 如果监听器未注册到此 JMXConnector
      参见:
    • removeConnectionNotificationListener

      void removeConnectionNotificationListener(NotificationListener  l, NotificationFilter  f, Object  handback) throws ListenerNotFoundException

      从列表中删除监听以通知状态更改。之前必须使用相同的三个参数添加监听。如果有多个匹配的监听,则只删除一个。

      参数:
      l - 接收连接状态通知的监听器。
      f - 一个过滤器,用于选择要将哪些通知传递给监听器。可以为空。
      handback - 随每个通知一起提供给监听器的对象。可以为空。
      抛出:
      ListenerNotFoundException - 如果监听器没有注册到这个 JMXConnector ,或者没有注册到给定的过滤器和 handback。
      参见:
    • getConnectionId

      String  getConnectionId() throws IOException

      从连接器服务获取此连接的 ID。对于给定的连接器服务,每个连接都有一个唯一的 ID,该 ID 在连接的生命周期内不会改变。

      返回:
      此连接的唯一 ID。这与连接器服务包含在其 JMXConnectionNotification 中的 ID 相同。 package description 描述了连接 ID 的约定。
      抛出:
      IOException - 如果无法获取连接 ID,例如因为连接已关闭或断开。