Module java.management

Interface JMXConnector

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

public interface JMXConnector extends Closeable

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

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

自 JDK 版本:
1.5
  • Field Details

    • CREDENTIALS

      static final String CREDENTIALS

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

      参见:
  • Method Details

    • 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 - 连接的属性。此映射中的属性将覆盖创建 JMXConnector 时指定的映射中的属性(如果有)。此参数可以为 null,相当于空映射。
      抛出:
      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

      @Deprecated(since="21", forRemoval=true) MBeanServerConnection getMBeanServerConnection(Subject delegationSubject) throws IOException
      Deprecated, for removal: This API element is subject to removal in a future version.
      This method supported the legacy Subject Delegation feature, and is only useful in conjunction with other APIs which are deprecated and subject to removal in a future release. Consequently, this method is also deprecated and subject to removal. There is no replacement.

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

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

      参数:
      delegationSubject - 将执行请求的 Subject。可以为 null,在这种情况下,请求将代表经过身份验证的主题执行。
      返回:
      通过将其方法转发到远程 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 的通知。实现还可以发送其他类型的通知。

      可以使用此方法添加任意数量的监听器。可以多次添加相同的监听器,具有相同或不同的过滤器和 handback 值。重复条目不会得到特殊处理。例如,如果使用相同的过滤器两次注册了一个监听器,则对于每个通知,其 handleNotification 方法将被调用两次。

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

      void removeConnectionNotificationListener(NotificationListener listener) throws ListenerNotFoundException

      从要通知状态更改的列表中删除监听器。监听器必须先前已添加。如果有多个匹配的监听器,则全部将被移除。

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

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

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

      参数:
      l - 用于接收连接状态通知的监听器。
      f - 用于选择要传递给监听器的通知的过滤器。可以为null。
      handback - 每个通知与监听器一起传递的对象。可以为null。
      抛出:
      ListenerNotFoundException - 如果监听器未在此JMXConnector中注册,或者未使用给定的过滤器和handback注册。
      参见:
    • getConnectionId

      String getConnectionId() throws IOException

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

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