代理支持:与 JMX 有关的属性
为了支持 JMX API,添加了几个新的代理属性(请参见表 1–3)。无法使用 Message Queue 命令实用程序 (imqcmd) 从命令行设置这些属性。可以使用代理实用程序 (imqbrokerd) 的 -D 选项设置这些属性,也可以在代理的实例配置文件 (config.properties) 中手动编辑这些属性。此外,某些属性(imq.jmx.rmiregistry.start、imq.jmx.rmiregistry.use 和 imq.jmx.rmiregistry.port)还可以使用表 1–4 中所述的新代理实用程序选项进行设置。此表列出了每个选项,指定了选项类型,并描述了选项用途。
表 1–3 用于支持 JMX 的新代理属性
|
属性
|
类型
|
描述
|
|
imq.jmx.rmiregistry.start
|
Boolean
|
指定在代理启动时是否启动 RMI 注册表。
如果为 true,代理将在 imq.jmx.rmiregistry.port 指定的端口上启动 RMI 注册表,并使用此注册表存储 JMX 连接器的 RMI 桩模块。请注意,在这种情况下将忽略 imq.jmx.rmiregistry.use 的值。
默认值:false
|
|
imq.jmx.rmiregistry.use
|
Boolean
|
指定是否使用外部 RMI 注册表。
仅当 imq.jmx.rmiregistry.start 为 false 时适用。
如果为 true,代理将在 imq.jmx.rmiregistry.port 指定的端口上使用外部 RMI 注册表,以便存储 JMX 连接器的 RMI 桩模块。代理启动时外部 RMI 注册表必须已处于运行状态。
默认值:false
|
|
imq.jmx.rmiregistry.port
|
Integer
|
RMI 注册表的端口号
仅当 imq.jmx.rmiregistry.start 或 imq.jmx.rmiregistry.use 为 true 时适用。然后即可将 JMX 连接器配置为使用 RMI 注册表,方法是将此端口号添加到这些连接器的 JMX 服务 URL 的 URL 路径中。
默认值:1099
|
|
imq.jmx.connector.list
|
String
|
预配置的 JMX 连接器的名称,以逗号分隔。
默认值:jmxrmi,ssljmxrmi
|
|
imq.jmx.connector.activelist
|
String
|
代理启动时要激活的 JMX 连接器的名称,以逗号分隔。
默认值:jmxrmi
|
|
imq.jmx.connector.connectorName .urlpath
|
String
|
连接器 connectorName 的 JMX 服务 URL 的 urlPath 部分
当必须明确设置 JMX 服务 URL 路径时(例如使用共享的外部 RMI 注册表时),此选项会非常有用。
默认值:如果使用 RMI 注册表存储 JMX 连接器的 RMI 桩模块(即,如果 imq.jmx.registry.start 或 imq.jmx.registry.use 为 true):
/jndi/rmi://brokerHost:rmiPort
/brokerHost/brokerPort/connectorName
如果不使用 RMI 注册表(这是默认情况,imq.jmx.registry.start 和 imq.jmx.registry.use 均为 false):
/stub/rmiStub
其中 rmiStub 是 RMI 桩模块自身的编码和序列化表示
|
|
imq.jmx.connector.connectorName .useSSL
|
Boolean
|
指定连接器 connectorName 是否使用安全套接字层 (Secure Socket Layer, SSL)。
默认值:false
|
|
imq.jmx.connector.connectorName .brokerHostTrusted
|
Boolean
|
指定是否信任代理为连接器 connectorName 提供的任何证书。
仅当 imq.jmx.connector. connectorName.useSSL 为 true 时适用。
如果为 false,Message Queue 客户端运行时环境将验证提供给它的所有证书。如果证书的签名者不在客户端的信任存储库中,验证将失败。
如果为 true,则会跳过证书验证。此选项可能非常有用,例如,在使用自签名证书进行软件测试时。
默认值:false
|
imq.jmx.connector.list 属性用于定义一组要在代理启动时创建的命名 JMX 连接器;imq.jmx.connector.activelist 用于指定要激活其中哪些连接器。每个命名的连接器都有其自身的一组属性:
|
imq.jmx.connector.connectorName .urlpath
|
|
imq.jmx.connector.connectorName .useSSL
|
|
imq.jmx.connector.connectorName .brokerHostTrusted
|
默认情况下,将创建两个 JMX 连接器,名称分别为 jmxrmi 和 ssljmxrmi;前者被配置为不使用 SSL 加密 (imq.jmx.connector.jmxrmi.useSSL = false),后者则使用 SSL 加密 (imq.jmx.connector.ssljmxrmi.useSSL = true)。默认情况下,代理启动时只激活 jmxrmi 连接器;有关如何激活 ssljmxrmi 连接器以进行安全通信的信息,请参见针对 JMX 客户端的 SSL 支持。
为了方便起见,还向命令行代理实用程序 (imqbrokerd) 中添加了新的选项(表 1–4),用于控制 RMI 注册表的使用、启动和端口。这些选项的用途和影响与表 1–3 中所述的等效代理属性相同。此表列出了每个选项,指定了选项的等效代理属性,并描述了选项用途。
表 1–4 用于支持 JMX 的新代理实用程序选项
|
选项
|
等效代理属性
|
描述
|
|
-startRmiRegistry
|
imq.jmx.rmiregistry.start
|
指定在代理启动时是否启动 RMI 注册表。
|
|
-useRmiRegistry
|
imq.jmx.rmiregistry.use
|
指定是否使用外部 RMI 注册表。
|
|
-rmiRegistryPort
|
imq.jmx.rmiregistry.port
|
RMI 注册表的端口号
|
命令行命令实用程序 (imqcmd) 中添加了一个新的子命令(表 1–5),用于列出代理启动时创建并启动的 JMX 连接器的 JMX 服务 URL。不使用 Message Queue 简便类 AdminConnectionFactory 的 JMX 客户端需要使用此信息来获取 JMX 连接器;另外,通过通用的 JMX 浏览器(例如 Java 监视和管理控制台 jconsole),还可以使用此信息来管理或监视 Message Queue。
表 1–5 新的命令实用程序子命令
|
子命令
|
描述
|
|
list jmx
|
列出 JMX 连接器的 JMX 服务 URL
|