包 javax.management.remote


javax.management.remote

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

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

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

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

笔记:实现 JMX Remote API 可选部分的可选包不包含在 Java SE Platform 中,但可从 JMX Remote API Reference Implementation 获得。

连接器地址

通常,连接器服务有一个地址,由类 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 Remote API 定义的标准键都以字符串“jmx.remote.”开头。文档 JMX Remote API 列出了这些标准密钥。

连接标识符

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

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

rmi://192.18.1.9 username 1
   

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

ConnectionId: 
  Protocol : ClientAddressopt Space ClientIdopt Space ArbitraryText 

ClientAddress: 
  // HostAddress ClientPortopt 

ClientPort 
  : HostPort 
   

Protocol 是一个可以被 JMXConnectorFactory 识别的协议。

ClientAddress是连接客户端的地址和端口,如果这些可以确定,否则什么都没有。 HostAddress 是客户端连接的主机的 Internet 地址,采用数字或 DNS 形式。数字 IPv6 地址括在方括号 [] 中。 HostPort 是客户端连接的十进制端口号。

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

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

自从:
1.5
参见: