Module java.management

Package javax.management.remote


package javax.management.remote

用于远程访问JMX MBean服务器的接口。此包定义了使JMX MBean服务器可以远程管理的基本接口。此功能的规范由第 III 部分的 JMX规范,版本1.4完成。

JMX规范定义了连接器的概念。连接器连接到JMX API MBean服务器,并使其可以被远程Java客户端访问。连接器的客户端端口基本上导出与MBean服务器相同的接口,特别是MBeanServerConnection接口。

连接器通过给定的协议使MBean服务器可以远程访问。JMX远程API允许使用不同类型的连接器:

  • JMX远程API定义了一个标准连接器,即RMI连接器,通过RMI提供对MBeanServer的远程访问。
  • JMX远程API还定义了一个可选的连接器,称为JMXMP连接器,实现了JMX消息协议(JMXMP)。由于它是可选的,因此不是此捆绑包的一部分(请参见下面的注释)。
  • 还可以使用JMXConnectorFactory和(可选)通用连接器来定义用户定义的连接器协议(不是此捆绑包的一部分,请参见下面的注释)。

:实现JMX远程API的可选部分的可选包不包含在Java SE平台中,但可以从JMX远程API参考实现中获取。

连接器地址

通常,连接器服务器具有一个地址,由类JMXServiceURL表示。RMI连接器的地址可能如下所示:

      service:jmx:rmi:///jndi/rmi://myhost:1099/myname
      

在这个JMXServiceURL中,第一个rmi:指定了RMI连接器,而第二个rmi:指定了RMI注册表,RMI连接器服务器已将其存储在其中。

上面的示例仅显示了一个地址形式。RMI连接器的地址可以采用多种形式,详细信息请参阅javax.management.remote.rmi包的文档。

创建连接器服务器

通过构造JMXConnectorServer的子类的实例来创建连接器服务器。通常,可以使用方法JMXConnectorServerFactory.newJMXConnectorServer来创建此实例。

通常,连接器服务器与MBean服务器关联,方法是将其注册到该MBean服务器中,或者在创建连接器服务器时将MBean服务器作为参数提供。

创建连接器客户端

通常,通过将要连接的连接器服务器的JMXServiceURL提供给JMXConnectorFactory.connect方法来创建连接器客户端。

对于更专业的用途,可以通过直接实例化实现JMXConnector接口的类来创建连接器客户端,例如类RMIConnector

附加客户端或服务器参数

在创建连接器客户端或服务器时,可以提供一个类型为Map的对象,用于定义附加参数。此Map中的每个条目都有一个以字符串开头的键和与该键相适应的值类型。JMX远程API定义的标准键都以字符串"jmx.remote."开头。文档JMX远程API列出了这些标准键。

连接标识符

由连接器服务器打开的每个连接都有一个字符串标识符,称为其连接ID。此标识符出现在连接器服务器发出的JMXConnectionNotification事件中,在getConnectionIds()返回的列表中,以及在客户端的getConnectionId()方法返回的值中。

例如,连接ID可能如下所示:

rmi://192.18.1.9 username 1
      

遵循此约定的连接ID的正式语法如下(使用Java语言规范第2.4节中的语法符号):

ConnectionId:
    Protocol : ClientAddressopt Space ClientIdopt Space ArbitraryText

ClientAddress:
    // HostAddress ClientPortopt

ClientPort
    : HostPort
      

ProtocolJMXConnectorFactory可以识别的协议。

ClientAddress是连接客户端的地址和端口,如果可以确定的话,否则为空。 HostAddress是客户端连接的主机的Internet地址,以数字或DNS形式表示。 数字IPv6地址用方括号[]括起来。 HostPort是客户端连接的十进制端口号。

ClientId是客户端实体的标识,通常是由JMXPrincipal.getName()返回的字符串。此字符串不得包含空格。

ArbitraryText是连接器服务器在创建客户端ID时添加的任意文本。至少,它必须足以将此连接ID与当前由此连接器服务器打开的任何其他连接的ID区分开。

自版本:
1.5
参见: