JavaTM 2 Platform
Standard Ed. 5.0

javax.management.remote
接口 JMXConnector

所有已知实现类:
RMIConnector

public interface JMXConnector

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

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

从以下版本开始:
1.5

字段摘要
static String CREDENTIALS
          属性的名称,它指定了连接过程中发送给连接器服务器的凭据。
 
方法摘要
 void addConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          添加一个接收连接状态改变的侦听器。
 void close()
          关闭客户端到其服务器的连接。
 void connect()
          建立到连接器服务器的连接。
 void connect(Map<String,?> env)
          建立到连接器服务器的连接。
 String getConnectionId()
          获得来自连接器服务器的连接 ID。
 MBeanServerConnection getMBeanServerConnection()
          返回一个代表远程 MBean 服务器的 MBeanServerConnection 对象。
 MBeanServerConnection getMBeanServerConnection(Subject delegationSubject)
          返回 MBeanServerConnection 对象,它表示在其上执行代表提供的委托主题操作的远程 MBean 服务器。
 void removeConnectionNotificationListener(NotificationListener listener)
          将一个用于接收状态更改通知的侦听器从列表中移除。
 void removeConnectionNotificationListener(NotificationListener l, NotificationFilter f, Object handback)
          将一个用于接收状态更改通知的侦听器从列表中移除。
 

字段详细信息

CREDENTIALS

static final String CREDENTIALS

属性的名称,它指定了连接过程中发送给连接器服务器的凭据。与此属性关联的值(如果有)为服务器的 JMXAuthenticator 的具有适当类型的可序列化的对象。

另请参见:
常量字段值
方法详细信息

connect

void connect()
             throws IOException

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

抛出:
IOException - 如果由于存在通信问题而导致无法建立连接。
SecurityException - 如果由于安全原因而无法建立连接。

connect

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

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

如果已在该对象上成功调用了 connect,则再次调用将没有任何作用。但是,如果 close() 是在调用 connect 之后调用的,则新的 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

MBeanServerConnection getMBeanServerConnection(Subject delegationSubject)
                                               throws IOException

返回 MBeanServerConnection 对象,它表示在其上执行代表提供的委托主题操作的远程 MBean 服务器。对于给定的 JMXConnectorSubject,对此方法两次成功的调用通常将返回相同的 MBeanServerConnection 对象,尽管不需要这样做。

对于返回的 MBeanServerConnection 中的每个方法,调用此方法导致调用代表给定委托主题,而不是经验证主题的远程 MBean 服务器上的对应方法。MBean 服务器方法返回的值就是返回给客户端的值。如果 MBean 服务器方法生成了 Exception,则客户端上也会出现相同的 Exception。如果 MBean 服务器方法(或尝试对它的调用)生成了 Error,则该 Error 将包装在 JMXServerErrorException 中,从客户端能够看到该错误。

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

close

void close()
           throws IOException

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

如果已在该对象上成功调用了 close,则再次调用将没有任何作用。如果从未调用过 close,或者调用过但生成了异常,则将尝试关闭该连接。此尝试可能成功,此时 close 将正常返回,也可能生成一个异常。

关闭连接是一个潜在的慢操作。例如,假设服务器已崩溃,则关闭操作可能不得不等待网络协议超时。不希望关闭操作出现阻塞的调用者应在单独的线程中处理关闭。

抛出:
IOException - 如果无法完全关闭连接。如果抛出此异常,连接的服务器端是否已完全关闭为未知。

addConnectionNotificationListener

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

添加一个接收连接状态改变的侦听器。该侦听器将接收 JMXConnectionNotification 类型的通知。实现也可发送任何其他类型的通知。

使用此方法可添加任意个数的侦听器。相同的侦听器可使用相同或不同的 filter 和 handback 值多次添加。不对重复的条目进行任何特殊处理。例如,假设侦听器两次注册均为不带 filter,则将为每个通知调用两次其 handleNotification 方法。

参数:
listener - 用于接收连接状态通知的侦听器。
filter - 用于选择要发送给侦听器的通知的过滤器,如果将发送所有的通知,则为 null。
handback - 将随每个通知提供给侦听器的对象。可以为 null。
抛出:
NullPointerException - 如果 listener 为 null。
另请参见:
removeConnectionNotificationListener(javax.management.NotificationListener), NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

removeConnectionNotificationListener

void removeConnectionNotificationListener(NotificationListener listener)
                                          throws ListenerNotFoundException

将一个用于接收状态更改通知的侦听器从列表中移除。此侦听器必须在以前已经添加。如果有多个匹配的侦听器,则移除所有匹配的侦听器。

参数:
listener - 用于接收连接状态通知的侦听器。
抛出:
NullPointerException - 如果 listener 为 null。
ListenerNotFoundException - 如果侦听器未用此 JMXConnector 注册。
另请参见:
removeConnectionNotificationListener(NotificationListener, NotificationFilter, Object), addConnectionNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

removeConnectionNotificationListener

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

将一个用于接收状态更改通知的侦听器从列表中移除。该侦听器必须在以前已经用相同的三个参数添加。如果有多个匹配的侦听器,则只移除一个匹配的侦听器。

参数:
l - 用于接收连接状态通知的侦听器。
f - 用于选择发送给侦听器通知的过滤器。可以为 null。
handback - 将随每个通知提供给侦听器的对象。可以为 null。
抛出:
ListenerNotFoundException - 如果侦听器未用此 JMXConnector 注册,或者未用给定的 filter 和 handback 注册。
另请参见:
removeConnectionNotificationListener(NotificationListener), addConnectionNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

getConnectionId

String getConnectionId()
                       throws IOException

获得来自连接器服务器的连接 ID。对于给定的连接器服务器,每个连接将具有一个在连接的整个生命周期中都不改变的惟一 ID。

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

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策