Sun Java System Message Queue 3.7 UR1 管理指南

第 3 部分 参考

第 13 章 命令行参考

本章提供了有关使用 Message QueueTM 命令行管理实用程序的参考信息。 本章包含以下各节:

命令行语法

Message Queue 命令行实用程序是 shell 命令。实用程序的名称是命令,其子命令或选项是传递给该命令的参数。不需要使用单独的命令来启动或退出实用程序。

以下命令语法适用于所有命令行实用程序:

 utilityName [subcommand] [commandArgument] [ [-optionName [optionArgument]] … ]

其中 utilityName 是以下实用程序之一:

子命令和命令级别的参数(如果有)必须放在所有选项及其参数之前;而选项自身可以按任何顺序显示。所有子命令、命令参数、选项和选项参数都是以空格分隔的。如果选项参数的值包含空格,则必须将整个值置于引号中。(将所有属性-值对置于引号中通常是最安全的做法。)

以下命令用于启动默认代理,它是不带子命令子句的命令行的示例:

   imqbrokerd

下面是更完整的示例:

   imqcmd  destroy dst  -t q  -n myQueue  -u admin  -f  -s

此命令销毁名为 myQueue 的队列目的地(目的地类型为 q)。验证是针对用户名 admin 执行的;此命令将提示用户输入密码。执行此命令时不提示用户进行确认(-f 选项),并且处于无提示模式,而不显示任何输出(-s 选项)。

代理实用程序

代理实用程序 (imqbrokerd) 用于启动代理。命令行选项将覆盖代理配置文件中的值,但仅对当前代理会话有效。

表 13–1 显示了 imqbrokerd 命令的选项以及被每个选项覆盖的配置属性(如果有)。

表 13–1 代理实用程序选项

选项 

被覆盖的属性 

描述 

-name instanceName

imq.instancename

代理的实例名称

在同一主机上运行的多个代理实例必须具有不同的实例名称。 

默认值:imqbroker

-port portNumber

imq.portmapper.port

代理端口映射器的端口号

Message Queue 客户端使用此端口号连接到代理。在同一主机上运行的多个代理实例必须具有不同的端口映射器端口号。 

默认值:7676

-cluster broker1 [ [ , broker2 ] … ]

imq.cluster.brokerlist

将代理连接到群集 [仅适用于代理群集]

将指定的代理与 imq.cluster.brokerlist 属性中的列表合并。每个代理参数具有以下形式之一:

    hostName: portNumber


    hostName


    :portNumber


如果省略 hostName,则默认值为 localhost;如果省略 portNumber,则默认值为 7676

-Dproperty= value

实例配置文件中对应的属性 

设置配置属性 

有关代理配置属性的信息,请参见第 14 章,代理属性参考

注意:请仔细检查使用此选项设置的属性的拼写和格式。不正确的值将被忽略,且系统不会给出任何通知或警告。

-reset props

无 

重置配置属性 

用空文件替换代理的现有实例配置文件 config.properties;所有属性都采用默认值。

-reset store

无 

重置持久性数据存储库 

从数据存储库中清除所有持久性数据(包括持久性消息、长期订阅和事务信息),以便您可以启动一个无任何数据记录的代理实例。为了防止在以后重新启动时重置持久性存储库,请不要使用 -reset 选项重新启动代理实例。

如果仅清除持久性消息或长期订阅,请改用 -reset messages-reset durables

-reset messages

无 

从数据存储库中清除持久性消息 

-reset durables

无 

从数据存储库中清除长期订阅 

-backup fileName

无 

将配置更改记录备份到文件中

有关详细信息,请参见管理配置更改记录

-restore fileName

无 

从备份文件中恢复配置更改记录

该备份文件必须是以前使用 -backup 选项创建的。

有关详细信息,请参见管理配置更改记录

-remove instance

无 

删除代理实例 [除非还指定了 -force,否则要求用户进行确认。]

删除与实例关联的实例配置文件、日志文件、持久性存储库以及其他文件和目录。 

-password keyPassword

imq.keystore.password

SSL 证书密钥库的密码 [不建议使用此选项,它最终将被删除。请省略该密码(这样,系统将以交互的方式提示用户输入密码)或使用 -passfile 选项来指定包含密码的文件。]

-dbuser userName

imq.persist.jdbc.user

基于 JDBC 的持久性数据存储库的用户名

-dbpassword dbPassword

imq.persist.jdbc.password

基于 JDBC 的持久性数据存储库的密码

-ldappassword ldapPassword

imq.user_repository.ldap.password

LDAP 用户系统信息库的密码

-passfile filePath

imq.passfile.enabledimq.passfile. dirpathimq.passfile.name

密码文件的位置

将代理的 imq.passfile.enabled 属性设置为 true,将 imq.passfile.dirpath 属性设置为包含密码文件的路径,将 imq.passfile.name 属性设置为文件名自身。

有关详细信息,请参见密码文件

-shared

imq.jms.threadpool_model

使用共享线程池模型实现 jms 连接服务

将在连接之间共享执行线程,以增加支持的连接数。 

将代理的 imq.jms.threadpool_model 属性设置为 shared

-javahome path

无 

可选 Java 运行时环境的位置

默认行为:使用系统上安装的运行时环境或 Message Queue 附带的运行时环境。

-vmargs arg1 [ [ arg2 ] … ]

无 

将参数传递给 Java 虚拟机 

参数是以空格分隔的。要传递多个参数或包含空格的参数,请将参数列表置于引号中。 

只能从命令行中传递 VM 参数;在实例配置文件中没有关联的配置属性。

-license [ licenseName ]

无 

要装入的许可证(如果与所安装的 Message Queue 产品版本的默认许可证不同):

    pe:具有基本功能的 Platform Edition


    try:具有企业功能的 Platform Edition(90 天试用版)


    unl:Enterprise Edition


如果未指定许可证名称,此选项将列出系统上安装的所有许可证。 

-upgrade-store-nobackup

无 

从不兼容版本升级到 Message Queue 3.5 或 3.5 SPx 时自动删除旧的数据存储库

有关详细信息,请参见 Message Queue 安装指南

-force

无 

执行操作时无需用户确认 

此选项仅适用于 -remove instance- upgrade-store-nobackup 选项,这两个选项通常要求确认。

-loglevel level

imq.broker.log.level

日志记录级别:

    NONE


    ERROR


    WARNING


    INFO


默认值:INFO

-metrics interval

imq.metrics.interval

代理度量的日志记录时间间隔(以秒为单位)

-tty

imq.log.console.output

将所有消息记录到控制台 

将代理的 imq.log.console.output 属性设置为 ALL

如果未指定,将只记录错误和警告消息。 

-s | -silent

imq.log.console.output

无提示模式(不向控制台记录消息)

将代理的 imq.log.console.output 属性设置为 NONE

-version

无 

显示版本信息 [忽略命令行中指定的任何其他选项。]

-h | -help

无 

显示使用帮助

命令实用程序

命令实用程序 (imqcmd) 用于管理代理、连接服务、连接、物理目的地、长期订阅和事务。

所有 imqcmd 命令都必须包含一个子命令(使用 -v-h 选项显示产品版本信息或使用帮助的命令除外)。下面列出了一些可用的子命令,并在后面的相应章节中进行了详细介绍。在任何情况下,如果子命令接受代理地址(-b 选项),并且未指定主机名或端口号,则默认情况下都将采用值 localhost7676

代理管理

shutdown bkr

关闭代理 

restart bkr

重新启动代理 

pause bkr

暂停代理 

resume bkr

恢复代理 

update bkr

设置代理属性 

reload cls

重新装入群集配置 

query bkr

列出代理属性值 

metrics bkr

显示代理度量 

连接服务管理

pause svc

暂停连接服务 

resume svc

恢复连接服务 

update svc

设置连接服务属性 

list svc

列出代理中可用的连接服务 

query svc

列出连接服务属性值 

metrics svc

显示连接服务度量 

连接管理

list cxn

列出代理中的连接 

query cxn

显示连接信息 

物理目的地管理

create dst

创建物理目的地 

destroy dst

销毁物理目的地 

pause dst

暂停物理目的地的消息传送 

resume dst

恢复物理目的地的消息传送 

update dst

设置物理目的地属性 

purge dst

清除来自物理目的地的所有消息 

compact dst

压缩物理目的地 

list dst

列出物理目的地 

query dst

列出物理目的地属性值 

metrics dst

显示物理目的地度量 

长期订阅管理

destroy dur

销毁长期订阅 

purge dur

清除来自长期订阅的所有消息 

list dur

列出主题的长期订阅 

事务管理

commit txn

提交事务 

rollback txn

回滚事务 

list txn

列出代理正在跟踪的事务 

query txn

显示事务信息 

代理管理

无法使用命令实用程序启动代理,而应使用代理实用程序 (imqbrokerd)。代理启动后,您可以使用表 13–2 中列出的 imqcmd 子命令来管理和控制代理。

表 13–2 用于代理管理的命令实用程序子命令

语法 

描述 

shutdown bkr [-b hostName :portNumber]

关闭代理

restart bkr [-b hostName :portNumber]

重新启动代理

关闭代理,再使用最初启动代理时指定的选项重新启动代理。 

pause bkr [-b hostName :portNumber]

暂停代理

有关详细信息,请参见暂停代理

resume bkr [-b hostName :portNumber]

恢复代理

update bkr [-b hostName :portNumber]

    -o property1= value1


    [ [-o property2 =value2] … ]


设置代理属性 

有关代理属性的信息,请参见第 14 章,代理属性参考

reload cls

重新装入群集配置 [仅适用于代理群集。]

将所有持久性信息强制更新为最新状态。 

query bkr -b hostName :portNumber

列出代理属性值 

还列出连接到群集中指定代理的所有正在运行的代理。 

metrics bkr [-b hostName :portNumber]

    [-m metricType]


    [-int interval]


    [-msp numSamples]


显示代理度量 

-m 选项指定要显示的度量的类型:

    ttl:流入和流出代理的消息和包


    rts:消息和包流入和流出代理的速率(以一秒为衡量单位)


    cxn:连接、虚拟内存堆和线程


默认值:ttl

-int 选项指定显示度量的时间间隔(以秒为单位)。默认值:5

-msp 选项指定要显示的样例的数量。默认值:无限制(无穷多)。

连接服务管理

表 13–3 列出了用于管理连接的 imqcmd 子命令。

表 13–3 用于连接服务管理的命令实用程序子命令

语法 

描述 

pause svc -n serviceName

    [-b hostName: portNumber]


暂停连接服务

无法暂停 admin 连接服务。

resume svc -n serviceName

    [-b hostName: portNumber]


恢复连接服务

update svc -n serviceName

    [-b hostName: portNumber]


    -o property1= value1


    [ [-o property2 =value2] … ]


设置连接服务属性 

有关连接服务属性的信息,请参见连接属性

list svc [-b hostName :portNumber]

列出代理中可用的连接服务 

query svc -n serviceName

    [-b hostName: portNumber]


列出连接服务属性值 

metrics svc -n serviceName

    [-b hostName: portNumber]


    [-m metricType]


    [-int interval]


    [-msp numSamples]


显示连接服务度量 

-m 选项指定要显示的度量的类型:

    ttl:通过指定的连接服务流入和流出代理的消息和包


    rts:消息和包通过指定的连接服务流入和流出代理的速率


    cxn:连接、虚拟内存堆和线程


默认值:ttl

-int 选项指定显示度量的时间间隔(以秒为单位)。默认值:5

-msp 选项指定要显示的样例的数量。默认值:无限制(无穷多)。

连接管理

表 13–4 列出了用于管理连接服务的 imqcmd 子命令。

表 13–4 用于连接服务管理的命令实用程序子命令

语法 

描述 

list cxn [-svn serviceName]

    [-b hostName: portNumber]


列出代理中的连接

列出代理到指定连接服务的所有连接。如果未指定连接服务,则列出所有连接。 

query cxn -n connectionID

    [-b hostName: portNumber]


显示连接信息

物理目的地管理

表 13–5 列出了用于管理物理目的地的 imqcmd 子命令。在任何情况下,-t(目的地类型)选项都可以采用以下两个值之一:

表 13–5 用于物理目的地管理的命令实用程序子命令

语法 

描述 

create dst -t destType -n destName

    [-o property1 =value1]


    [ [ -o property2 =value2] … ]


创建物理目的地 [不能在主代理暂时不可用的代理群集中执行]

目的地名称 destName 只能包含字母数字字符(不包括空格),并且必须以字母字符开头,或者以下划线 (_) 或美元符号 ($) 开头。目的地名称不能以字符 mq 开头。

destroy dst -t destType -n destName

销毁物理目的地

此操作不能应用于系统创建的目的地,如停用消息队列。 

pause dst [-t destType -n destName]

    [-pst pauseType]


暂停物理目的地的消息传送

暂停由 -t-n 选项指定的物理目的地的消息传送。如果未指定这些选项,将暂停所有目的地。

-pst 选项指定要暂停的消息传送的类型:

    CONSUMERS:暂停向消息使用方传送消息


    PRODUCERS:暂停向消息生成方传送消息


    ALL:暂停所有消息传送


默认值:ALL

resume dst [-t destType -ndestName]

恢复物理目的地的消息传送 

恢复由 -t-n 选项指定的物理目的地的消息传送。如果未指定这些选项,将恢复所有目的地。

update dst -t destType -n destName

    -o property1= value1


    [ [ -o property2 =value2] … ]


设置物理目的地属性

有关物理目的地属性的信息,请参见第 15 章,物理目的地属性参考

purge dst -t destType -n destName

清除来自物理目的地的所有消息

compact dst [-t destType -n destName]

压缩物理目的地

压缩物理目的地(由 -t-n 选项指定)的基于文件的持久性数据存储库。如果未指定这些选项,将压缩所有目的地。

压缩之前必须先暂停目的地。 

list dst [-t destType]

    [-tmp]


列出物理目的地 

列出某个类型的所有物理目的地,该类型由 -t 选项指定。如果未指定任何目的地类型,则同时列出队列目的地和主题目的地。如果指定了 -tmp 选项,还会列出临时目的地。

query dst -t destType -n destName

列出物理目的地属性值

metrics dst -t destType -n destName

    [-m metricType]


    [-int interval]


    [-msp numSamples]


显示物理目的地度量 

-m 选项指定要显示的度量的类型:

    ttl:流入和流出目的地以及驻留在内存中的消息和包


    rts:消息和包流入和流出代理的速率(以一秒为衡量单位),以及其他速率信息


    con:与消息使用方相关的度量


    dsk:磁盘使用情况


默认值:ttl

-int 选项指定显示度量的时间间隔(以秒为单位)。默认值:5

-msp 选项指定要显示的样例的数量。默认值:无限制(无穷多)。

长期订阅管理

表 13–6 列出了用于管理连接服务的 imqcmd 子命令。

表 13–6 用于长期订阅管理的命令实用程序子命令

语法 

描述 

destroy dur -c clientID

    -n subscriberName


销毁长期订阅 [不能在主代理暂时不可用的代理群集中执行]

purge dur -c clientID

    -n subscriberName


清除来自长期订阅的所有消息

list dur -d topicName

列出主题的长期订阅

事务管理

表 13–7 列出了用于管理事务的 imqcmd 子命令。

表 13–7 用于事务管理的命令实用程序子命令

语法 

描述 

commit txn -n transactionID

提交事务

rollback txn -n transactionID

回滚事务

list txn

列出代理正在跟踪的事务

query txn -n transactionID

显示事务信息

常规命令实用程序选项

表 13–8 中列出的附加选项适用于 imqcmd 命令的所有子命令。

表 13–8 常规命令实用程序选项

选项 

描述 

-secure

通过 ssladmin 连接服务使用安全的代理连接

-u userName

用于验证的用户名 

如果省略此选项,命令实用程序将以交互方式提示用户输入用户名。 

-p password

用于验证的密码 [不建议使用此选项,它最终将被删除。请省略该密码(这样,系统将以交互的方式提示用户输入密码)或使用 -passfile 选项来指定包含密码的文件。]

-passfile path

密码文件的位置 

有关详细信息,请参见密码文件

-rtm timeoutInterval

初始超时时间间隔(以秒为单位) 

初始超时时间间隔是命令实用程序最初等待代理回复的时间长度,超过此时间后,将重试请求。随后的每次重试都将使用此初始时间间隔的倍数作为超时时间间隔。 

默认值:10

-rtr numRetries

代理请求超时后尝试重试的次数 

默认值:5

-javahome path

可选 Java 运行时环境的位置

默认行为:使用系统上安装的运行时环境或 Message Queue 附带的运行时环境。

-f

执行操作时无需用户确认 

-s

无提示模式(不显示输出) 

-v

显示版本信息 [忽略命令行中指定的任何其他选项。] , [不需要用户名和密码]

-h

显示使用帮助,

-H

显示详细的使用帮助,包括属性列表和示例,

对象管理器实用程序

对象管理器实用程序 (imqobjmgr) 用于创建和管理 Message Queue 受管理对象。表 13–9 列出了可用的子命令。

表 13–9 对象管理器子命令

子命令 

描述 

add

向对象存储库中添加受管理对象 

delete

从对象存储库中删除受管理对象 

list

列出对象存储库中的受管理对象 

query

显示受管理对象的信息 

update

修改受管理对象 

表 13–10 列出了 imqobjmgr 命令的选项。

表 13–10 对象管理器选项

选项 

描述 

-l lookupName

受管理对象的 JNDI 查找名称

-j attribute= value

JNDI 对象存储库的属性(请参见对象存储库

-t objectType

受管理对象的类型: 

    q:队列目的地


    t:主题目的地


    cf:连接工厂


    qf:队列连接工厂


    tf:主题连接工厂


    xcf:分布式事务的连接工厂


    xqf:分布式事务的队列连接工厂


    xtf:分布式事务的主题连接工厂


    e:SOAP 端点(请参见 Message Queue Developer's Guide for Java Clients


-o attribute= value

受管理对象的属性(请参见受管理对象的属性第 16 章,受管理对象属性参考

-r readOnlyState

受管理对象是否为只读? 

如果为 true,客户端将无法修改对象的属性。默认值:false

-i fileName

包含所有或部分子命令子句的命令文件的名称 

-pre

预览结果但不执行命令 

此选项对于检查默认属性值很有用。 

-javahome path

可选 Java 运行时环境的位置

默认行为:使用系统上安装的运行时环境或 Message Queue 附带的运行时环境。

-f

执行操作时无需用户确认 

-s

无提示模式(不显示输出) 

-v

显示版本信息 [忽略命令行中指定的任何其他选项。]

-h

显示使用帮助

-H

显示详细的使用帮助,包括属性列表和示例

数据库管理器实用程序

数据库管理器实用程序 (imqdbmgr) 为基于 JDBC 的持久性数据存储库建立数据库结构。您还可以使用它删除已损坏的 Message Queue 数据库表或更改数据存储库。表 13–11 列出了可用的子命令。

表 13–11 数据库管理器子命令

子命令 

描述 

create all

创建新的数据库和持久性存储库结构 

用于嵌入式数据库系统。必须指定代理属性 imq.persist.jdbc.createdburl

create tbl

为现有数据库创建持久性存储库结构 

用于外部数据库系统。 

delete tbl

从当前持久性存储库中删除 Message Queue 数据库表 

delete oldtbl

从较早版本的持久性存储库中删除 Message Queue 数据库表 

在持久性存储库自动迁移到 Message Queue 当前版本后使用。 

recreate tbl

重新创建持久性存储库结构 

从当前的持久性存储库中删除所有现有的 Message Queue 数据库表,然后重新创建结构。 

reset lck

重置持久性存储库锁 

对锁进行重置,以便其他进程可以使用该持久性存储数据库。 

表 13–12 列出了 imqdbmgr 命令的选项。

表 13–12 数据库管理器选项

选项 

描述 

-b instanceName

代理的实例名称 

-Dproperty= value

设置代理配置属性 

有关与持久性相关的代理配置属性的信息,请参见持久性属性

注意:请仔细检查使用此选项设置的属性的拼写和格式。不正确的值将被忽略,且系统不会给出任何通知或警告。

-u name

用于验证的用户名 

-p password

用于验证的密码 [不建议使用此选项,它最终将被删除。请省略该密码(这样,系统将以交互的方式提示用户输入密码)或使用 -passfile 选项来指定包含密码的文件。]

-passfile path

密码文件的位置 

有关详细信息,请参见密码文件

-v

显示版本信息 [忽略命令行中指定的任何其他选项。]

-h

显示使用帮助

用户管理器实用程序

用户管理器实用程序 (imqusermgr) 用于填充或编辑平面文件用户系统信息库。该实用程序必须在安装代理的主机上运行;如果尚不存在特定于代理的用户系统信息库,您必须首先启动相应的代理实例来创建它。此外,您还必须具有写入系统信息库的适当权限:在 Solaris 或 Linux 平台上,这意味着您必须是 root 用户或最初创建代理实例的用户。

表 13–13 列出了可以与 imqusermgr 命令一起使用的子命令。在任何情况下,-i 选项都指定代理的实例名称,该代理的用户系统信息将应用此命令;如果未指定,将采用默认名称 imqbroker

表 13–13 用户管理器子命令

语法 

描述 

add [-i instanceName]

    -u userName -p password


    [-g group]


向系统信息库中添加用户和密码 

-g 选项可选,它指定要将此用户指定到的组:

    admin


    user


    anonymous


delete [-i instanceName]

    -u userName


从系统信息库中删除用户 

update [-i instanceName]

    -u userName -p password


    [-a activeState]


update [-i instanceName]

    -u userName -a activeState


    [-p password]


设置用户的密码和/或活动状态 

-a 选项采用布尔值,它指定使用户处于活动状态 (true) 还是非活动状态 (false)。默认值:true

list [-i instanceName]

    [-u userName]


显示用户信息。 

如果未指定用户名,则列出系统信息库中的所有用户。 

此外,表 13–14 中列出的选项适用于 imqusermgr 命令的所有子命令。

表 13–14 常规用户管理器选项

选项 

描述 

-f

执行操作时无需用户确认 

-s

无提示模式(不显示输出) 

-v

显示版本信息 [忽略命令行中指定的任何其他选项。]

-h

显示使用帮助

服务管理器实用程序

服务管理器实用程序 (imqsvcadmin) 将代理作为 Windows 服务安装。表 13–15 列出了可用的子命令。

表 13–15 服务管理器子命令

子命令 

描述 

install

安装服务 

remove

删除服务 

query

显示启动选项 

启动选项可以包括服务的启动方式(手动还是自动)、服务的位置、Java 运行时环境的位置以及启动时传递给代理的参数值(请参见表 13–16)。

表 13–16 列出了 imqsvcadmin 命令的选项。

表 13–16 服务管理器选项

选项 

描述 

-javahome path

可选 Java 运行时环境的位置

默认行为:使用系统上安装的运行时环境或 Message Queue 附带的运行时环境。

-jrehome path

可选 Java 运行时环境 (Java Runtime Environment, JRE) 的位置

-vmargs arg1 [ [arg2 ] … ]

要传递给运行代理服务的 Java 虚拟机 (Java Virtual Machine, JVM) 的其他参数 [还可以在服务“属性”窗口(可以通过 Windows“管理工具”控制面板中的“服务”工具访问此窗口)“常规”选项卡下的“启动参数”字段中指定这些参数。]

示例:

imqsvcadmin install -vmargs "-Xms16m -Xmx128m"

-args arg1 [ [arg2] … ]

要传递给代理服务的其他命令行参数

示例:

imqsvcadmin install -args "-passfile d:\\imqpassfile"

有关代理命令行参数的信息,请参见代理实用程序

-h

显示使用帮助 [忽略命令行中指定的任何其他选项。]

使用 -javahome-vmargs-args 选项指定的所有信息都存储在 Window 注册表主键 JREHomeJVMArgsServiceArgs 下,这些注册表主键的路径为:

   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iMQ_Broker\Parameters

密钥工具实用程序

密钥工具实用程序 (imqkeytool) 为代理生成自签名证书,该证书可用于 ssljmsssladmincluster 连接服务。语法为:

   imqkeytool -broker

在 UNIX 系统上,您可能需要使用超级用户 (root) 帐户来运行该实用程序。

第 14 章 代理属性参考

本章提供了有关消息代理配置属性 的参考信息。本章包含以下各节:

连接属性

表 14–1 中列出了与连接服务相关的代理属性。

表 14–1 代理连接属性

属性 

类型 

默认值 

描述 

imq.service.activelist

字符串 

jms,admin

代理启动时将激活的连接服务的列表,用逗号分隔

imq.hostname

字符串 

所有可用的 IP 地址 

所有连接服务的默认主机名或 IP 地址

imq.portmapper.hostname

字符串 

无 

端口映射器的主机名或 IP 地址

如果指定,将覆盖 imq.hostname

imq.portmapper.port [可用于 imqcmd update bkr 命令]

整数 

7676

端口映射器的端口号 


注 –

如果多个代理实例在同一台主机上运行,则必须为每个实例指定一个唯一的端口映射器端口。


imq.serviceName .protocolType.hostname [仅限于 jmsssljmsadminssladmin 服务;有关配置 httpjmshttpsjms 服务的信息,请参见附录 C,HTTP/HTTPS 支持。 ]

字符串 

无 

连接服务的主机名或 IP 地址

如果指定,将覆盖指定连接服务的 imq.hostname

imq.serviceName .protocolType.port

整数 

0

连接服务的端口号 

值为 0 表示应当由端口映射器动态分配端口号。

imq.portmapper.backlog

整数 

50

操作系统后备队列中处于待处理状态的端口映射器请求的最大数量。 

imq.serviceName .threadpool_model [仅限于 jmsadmin 服务]

字符串 

dedicated

线程池管理的线程处理模型: 

    dedicated:每个连接有两个专用线程,一个用于传入消息,另一个用于传出消息


    shared:在发送或接收消息时,连接由共享线程处理


     

专用模型会限制可以支持的连接数,但能提供较高的性能;共享模型可以增加可用连接数,但由于线程管理需要额外的开销,因此会导致性能下降。 

imq.serviceName .min_threads

整数 

jms10 ssljms 10 httpjms10 httpsjms10 admin4 ssladmin4

连接服务的线程池中维护的最小线程数 

当可用线程数超出此阈值时,将会关闭空闲线程,直到达到最小线程数。 

如表中所示,默认值因连接服务而异。 

imq.serviceName .max_threads

整数 

jms1000 ssljms500 httpjms500 httpsjms500 admin10 ssladmin10

线程数量达到该数量后,新的线程将不会被添加到线程池中供命名的连接服务使用 

该数必须大于 0,并且必须大于 imq.serviceName.min_threads 的值。

如表中所示,默认值因连接服务而异。 

imq.shared.connectionMonitor_limit [仅适用于共享线程处理模型。]

整数 

Solaris:512 Linux:512 Windows:64

分配器线程监视的最大连接数 

系统会分配足够多的分配器线程来监视所有连接。此属性的值越小,为活动连接指定线程的速度越快。值为 -1 表示不限制每个线程的连接数。

如表中所示,默认值因操作系统平台而异。 

imq.ping.interval

整数 

120

测试客户端与代理之间的连接的时间间隔(以秒为单位) 

如果值为 0-1,将禁止定期测试连接。

路由属性

表 14–2 中列出了与路由服务相关的代理属性。表 14–3 中列出了用于配置目的地自动创建功能的属性。

表 14–2 代理路由属性

属性 

类型 

默认值 

描述 

imq.system.max_count [可用于 imqcmd update bkr 命令]

整数 

-1

代理保存的最大消息数 

值为 -1 表示不限制消息数量。

imq.system.max_size

字符串 

-1

代理保存的消息总量的最大值 

可以使用以下后缀(分别表示字节、千字节或兆字节)来表示该值: 

    b:字节


    k:千字节(1024 字节)


    m:兆字节(1024 x 1024 = 1,048,576 字节)


     

不带后缀的值用字节表示;值为 -1 表示不限制消息容量。

     

示例:

    1600:1600 字节


    1600b:1600 字节


    16k:16 千字节(= 16,384 字节)


    16m:16 兆字节(= 16,777,216 字节)


    -1:无限制


imq.message.max_size

字符串 

70m

单个消息主体的最大大小 

语法与 imq.system.max_size 的语法相同(请参见上文)。

imq.message.expiration.interval

整数 

60

回收过期消息的时间间隔(以秒为单位) 

imq.resourceState .threshold

整数 

green0 yellow80 orange90 red98

触发内存资源状态的占用百分比(其中 resourceStategreenyellow orangered

imq.resourceState .count

整数 

green5000 yellow500 orange50 red0

在检查是否达到内存资源状态阈值之前,允许在一批中传入的最大消息数(其中 resourceStategreenyelloworangered

当系统内存越来越不足时,此限制可以限制消息生成方的数量。 

imq.destination.DMQ.truncateBody

布尔值 

false

在消息主体存储到停用消息队列之前是否将其删除? 

如果为 true,则仅保存消息头和属性数据。

imq.transaction.autorollback

布尔值 

false

是否自动回滚在代理启动时处于 PREPARED 状态的分布式事务? 

如果为 false,则必须使用命令实用程序 (imqcmd) 手动提交或回滚事务。

表 14–3 自动创建目的地的代理属性

属性 

类型 

默认值 

描述 

imq.autocreate.queue [可用于 imqcmd update bkr 命令] , [仅限于队列目的地。]

布尔值 

true

是否允许自动创建队列目的地? 

imq.autocreate.topic [仅限于主题目的地]

布尔值 

true

是否允许自动创建主题目的地? 

imq.autocreate.destination.maxNumMsgs

整数 

100000

未使用消息的最大数量 

值为 -1 表示不限制消息数量。

imq.autocreate.destination.maxBytesPerMsg

字符串 

10k

任何单条消息的最大大小(以字节为单位) 

可以使用以下后缀(分别表示字节、千字节或兆字节)来表示该值: 

    b:字节


    k:千字节(1024 字节)


    m:兆字节(1024 x 1024 = 1,048,576 字节)


     

不带后缀的值用字节表示;值为 -1 表示不限制消息大小。

     

示例:

    1600:1600 字节


    1600b:1600 字节


    16k:16 千字节(= 16,384 字节)


    16m:16 兆字节(= 16,777,216 字节)


    -1:无限制


imq.autocreate.destination.maxTotalMsgBytes

字符串 

10m

未使用的消息最多可以占用的内存总量(以字节为单位)

语法与 imq.autocreate.destination.maxBytesPerMsg 的语法相同(请参见上文)。

imq.autocreate.destination.limitBehavior

字符串 

REJECT_NEWEST

达到内存限制的阈值时,代理的行为如下: 

    FLOW_CONTROL:降低生成方速度


    REMOVE_OLDEST:丢弃最旧的消息


    REMOVE_LOW_PRIORITY:根据消息的存留期丢弃优先级最低的消息;生成方客户端不会收到通知


    REJECT_NEWEST:拒绝最新的消息;仅当消息为持久性消息时,才通知生成方客户端,并报告异常


     

如果值为 REMOVE_OLDESTREMOVE_LOW_PRIORITY ,且 imq.autocreate.destination.useDMQ 属性为 true,则会将超出限制的消息移动到停用消息队列中。

imq.autocreate.destination.maxNumProducers

整数 

100

目的地的消息生成方的最大数量

当达到此限制时,将无法创建新的生成方。值为 -1 表示不限制生成方数量。

imq.autocreate.queue.maxNumActiveConsumers

整数 

1

在来自队列目的地的负载平衡传送中活动消息使用方的最大数量

值为 -1 表示不限制使用方数量。

imq.autocreate.queue.maxNumBackupConsumers

整数 

0

在来自队列目的地的负载平衡传送中备份消息使用方的最大数量

值为 -1 表示不限制生成方数量。

imq.autocreate.queue.consumerFlowLimit

整数 

1000

在一批中传送给队列使用方的消息的最大数量

在负载平衡队列传送中,该值为负载平衡开始之前路由至活动使用方的队列消息的初始数量。目的地使用方可以通过在连接中指定一个较小的值来覆盖此限制。 

值为 -1 表示不限制消息数量。

imq.autocreate.topic.consumerFlowLimit

整数 

1000

在一批中传送给主题使用方的消息的最大数量

值为 -1 表示不限制使用方数量。

imq.autocreate.destination.isLocalOnly

布尔值 

false

仅限本地传送? 

此属性仅适用于代理群集中的目的地,目的地一旦创建,此属性即无法更改。如果为 true,将不在其他代理上复制目的地,并将目的地限制为只将消息传送到本地使用方(那些连接到创建该目的地的代理的使用方)。

imq.autocreate.queue.localDeliveryPreferred

布尔值 

false

是否首选本地传送? 

此属性仅适用于代理群集中的负载平衡队列传送。如果为 true,则只有在本地代理中不存在使用方时,才会将消息传送给远程使用方;不得将目的地限制为仅本地传送(imq.autocreate.destination.isLocalOnly 必须为 false)。

imq.autocreate.destination.useDMQ

布尔值 

true

是否将停用消息发送到停用消息队列? 

如果为 false,将仅仅丢弃停用消息。

持久性属性

Message QueueTM 支持使用基于文件和基于 JDBC 的模型来存储持久性数据。代理属性 imq.persist.store表 14–4)指定要使用的模型。以下各节介绍了这两种模型的代理配置属性。

表 14–4 全局代理持久性属性

属性 

类型 

默认值 

描述 

imq.persist.store

字符串 

file

持久性数据存储库模型: 

    file:基于文件的持久性


    jdbc:基于 JDBC 的持久性


基于文件的持久性

表 14–5 中列出了与基于文件的持久性相关的代理属性。

表 14–5 基于文件持久性的代理属性

属性 

类型 

默认值 

描述 

imq.persist.file.message.max_record_size

字符串 

1m

要添加到消息存储文件中的消息的最大大小。 

超出此大小的所有消息都将存储到其自身的单独文件中。 

可以使用以下后缀(分别表示字节、千字节或兆字节)来表示该值: 

    b:字节


    k:千字节(1024 字节)


    m:兆字节(1024 x 1024 = 1,048,576 字节)


不带后缀的值用字节表示。 

示例:

    1600:1600 字节


    1600b:1600 字节


    16k:16 千字节(= 16,384 字节)


    16m:16 兆字节(= 16,777,216 字节)


imq.persist.file.destination.message.filepool.limit

整数 

100

目的地文件池中可重复使用的最大空闲文件数。 

超出此限制的空闲文件将被删除。代理将根据需要创建文件或删除超出限制的多余文件。 

此限制越高,代理处理持久性数据的速度越快。 

imq.persist.file.message.filepool.cleanratio

整数 

0

空闲文件池中将保持清除(清空)状态的文件的百分比。 

此值越大,文件池所需的磁盘空间越少,但在操作中清除文件所需的开销越大。 

imq.persist.file.message.cleanup

布尔值 

false

是否在关闭时清除空闲的文件池中的文件? 

将此属性设置为 true 可以节省用于文件存储的磁盘空间,但会降低代理关闭的速度。

imq.persist.file.sync.enabled

布尔值 

false

是否将内存中的状态与物理存储设备同步? 

将此属性设置为 true 可以避免因系统崩溃引起的数据丢失,但性能会有所下降。


注 –

如果为 Message Queue 运行 Sun Cluster 和 Sun Cluster Data Service,请将所有群集节点上的代理的此属性设置为 true


基于 JDBC 的持久性

表 14–6 中列出了与基于 JDBC 的持久性相关的代理属性。给出的示例适用于 DataMirror Mobile Solutions, Inc. 提供的 PointBase® 数据库产品系列。

表 14–6 基于 JDBC 持久性的代理属性

属性 

示例 

描述 

imq.persist.jdbc.brokerid

PointBase 嵌入式版本不需要 

(可选)代理实例标识符

必须是字母数字字符串,不能超过 n - 12 个字符,其中 n 是数据库允许的最大表名长度。

此标识符将附加到数据库表名之后,当多个代理实例使用同一个数据库作为持久性数据存储库时,此标识符可以使数据库表名保持唯一。嵌入式数据库只存储一个代理实例的数据,因此通常不需要该标识符。 

imq.persist.jdbc.driver

com.pointbase.jdbc.jdbcUniversalDriver

用于连接到数据库的 JDBC 驱动程序的 Java 类名

imq.persist.jdbc.opendburl

jdbc:pointbase:embedded:dbName ;

    database.home=
    
       .../instances/
    instanceName/dbstore
    

用于打开现有数据库连接的 URL

imq.persist.jdbc.createdburl

jdbc:pointbase:embedded:dbName ;

    new,database.home=
    
       .../instances/
    instanceName/dbstore
    

(可选)用于创建新数据库的 URL

仅在使用 Message Queue 数据库管理器实用程序 (imqdbmgr) 创建数据库时才需要此属性。

imq.persist.jdbc.closedburl

PointBase 不需要 

(可选)用于关闭数据库连接的 URL

imq.persist.jdbc.user

 

(可选)用于打开数据库连接的用户名(如果需要)

出于安全原因,可以指定该值,而不使用命令行选项 imqbrokerd -dbuserimqdbmgr - u

imq.persist.jdbc.needpassword

 

(可选)数据库是否要求为代理访问输入密码?

如果为 true,则imqbrokerdimqdbmgr 命令将提示输入密码,除非您使用 -passfile 选项指定包含密码的密码文件。

imq.persist.jdbc.password [应仅在密码文件中使用]

 

(可选)用于打开数据库连接的密码

imq.persist.jdbc.table.IMQSV35

CREATE TABLE ${name}

    (STOREVERSION INTEGER NOT NULL,
    
     
    BROKERID VARCHAR(100))
    

用于创建版本表的 SQL 命令

imq.persist.jdbc.table.IMQCCREC35

CREATE TABLE ${name}

    (RECORDTIME BIGINT NOT NULL,
    
     
    RECORD BLOB(10k))
    

用于创建配置更改记录表的 SQL 命令

imq.persist.jdbc.table.IMQDEST35

CREATE TABLE ${name}

    (DID VARCHAR(100) NOT NULL,
    
     
    DEST BLOB(10k),
    
     primaryKey(DID))
    

用于创建目的地表的 SQL 命令

imq.persist.jdbc.table.IMQINT35

CREATE TABLE ${name}

    (CUID BIGINT NOT NULL,
    
     
    INTEREST BLOB(10k),
    
     primaryKey(CUID))
    

用于创建 Interest 表的 SQL 命令

imq.persist.jdbc.table.IMQMSG35

CREATE TABLE ${name}

    (MID VARCHAR(100) NOT NULL,
    
     
    DID VARCHAR(100),
    
     MSGSIZE BIGINT,
    
     
    MSG BLOB(1m),
    
     primaryKey(MID))
    

用于创建消息表的 SQL 命令

MSG 列的默认最大长度为 1 兆字节 (1m)。如果您希望消息超出此长度,请对长度进行相应设置。如果已经创建了这些表,则必须重新创建它们才能更改最大消息长度。

imq.persist.jdbc.table.IMQPROPS35

CREATE TABLE ${name}

    (PROPNAME VARCHAR(100) NOT NULL,
    
     
    PROPVALUE BLOB(10k),
    
     primaryKey(PROPNAME))
    

用于创建属性表的 SQL 命令

imq.persist.jdbc.table.IMQILIST35

CREATE TABLE ${name}

    (MID VARCHAR(100) NOT NULL,
    
     
    CUID BIGINT,
    
     DID VARCHAR(100),
    
     
    STATE INTEGER,
    
     primaryKey(MID, CUID))
    

用于创建 Interest 状态表的 SQL 命令

imq.persist.jdbc.table.IMQTXN35

CREATE TABLE ${name}

    (TUID BIGINT NOT NULL,
    
     
    STATE INTEGER,
    
     
    TSTATEOBJ BLOB(10K),
    
     primaryKey(TUID))
    

用于创建事务表的 SQL 命令

imq.persist.jdbc.table.IMQTACK35

CREATE TABLE ${name}

    (TUID BIGINT NOT NULL,
    
     
    TXNACK BLOB(10k))
    

用于创建事务确认表的 SQL 命令

安全属性

表 14–7 中列出了与安全服务相关的代理属性。

表 14–7 代理安全属性

属性 

类型 

默认值 

描述 

imq.accesscontrol.enabled

布尔值 

true

是否使用访问控制?

如果为 true,系统将检查访问控制属性文件,以验证是否允许经过验证的用户使用连接服务或执行与特定目的地有关的特定操作。

imq.serviceName.accesscontrol.enabled

布尔值 

无 

是否为连接服务使用访问控制? 

如果指定,则覆盖指定连接服务的 imq.accesscontrol.enabled

如果为 true,系统将检查访问控制属性文件,以验证是否允许经过验证的用户使用指定的连接服务或执行与特定目的地有关的特定操作。

imq.accesscontrol.file.filename

字符串 

accesscontrol. properties

访问控制属性文件的名称 

文件名指定了相对于访问控制目录的路径(请参见附录 A, Message QueueTM 数据在特定平台上的位置)。

imq.serviceName .accesscontrol.file.filename

字符串 

无 

连接服务的访问控制属性文件的名称 

如果指定,则覆盖指定连接服务的 imq.accesscontrol.file.filename

文件名指定了相对于访问控制目录的路径(请参见附录 A, Message QueueTM 数据在特定平台上的位置)。

imq.authentication.type

字符串 

digest

密码编码方法:

    basic:Base-64


    digest:MD5


imq.serviceName .authentication.type

字符串 

无 

连接服务的密码编码方法:

    basic:Base-64


    digest:MD5


如果指定,则覆盖指定连接服务的 imq.authentication.type

imq.authentication.basic.user_repository

字符串 

file

base-64 验证的用户系统信息库类型: 

    file:基于文件


    ldap:LDAP


imq.authentication.client.response.timeout

整数 

180

等待客户端响应验证请求的时间间隔(以秒为单位) 

imq.passfile.enabled

布尔值 

false

是否从密码文件获取密码? 

imq.passfile.dirpath

字符串 

请参见附录 A, Message QueueTM 数据在特定平台上的位置

包含密码文件的目录的路径 

imq.passfile.name

字符串 

passfile

密码文件的名称

imq.imqcmd.password

字符串 

无 

管理用户的密码。 

命令实用程序 (imqcmd) 在执行命令前使用此密码验证用户。

imq.user_repository.ldap.server

字符串 

无 

LDAP 服务器的主机名和端口号

该值的格式为: 

    hostName: port


其中 hostName 是运行 LDAP 服务器的主机的全限定 DNS 名称,而 port 是服务器使用的端口号。

     

要指定故障转移服务器列表,请使用下面的语法: 

    host1: port1


    ldap://host2 : port2


    ldap://host3 :port3



     

列表中的条目用空格分隔。请注意,每个故障转移服务器地址均带有 ldap:// 前缀。即使您使用 SSL 并将属性 imq.user_repository.ldap.ssl.enabled 设置为 true,也请使用此格式。您无需在地址中指定 ldaps

imq.user_repository.ldap.principal

字符串 

无 

用于绑定到 LDAP 用户系统信息库的标识名

如果 LDAP 服务器允许匿名搜索,则无需此密码。

imq.user_repository.ldap.password [应仅在密码文件中使用]

字符串 

无 

用于绑定到 LDAP 用户系统信息库的密码

如果 LDAP 服务器允许匿名搜索,则无需此密码。

imq.user_repository.ldap.propertyName

待定 

待定 

待定 

imq.user_repository.ldap.base

字符串 

无 

LDAP 用户条目的目录库

imq.user_repository.ldap.uidattr

字符串 

无 

LDAP 用户名的特定于提供者的属性标识符

imq.user_repository.ldap.usrfilter

字符串 

无 

(可选)用于 LDAP 用户搜索的 JNDI 过滤器

imq.user_repository.ldap.grpsearch

布尔值 

false

是否启用 LDAP 组搜索?


注 –

Message Queue 不支持嵌套组。


imq.user_repository.ldap.grpbase

字符串 

无 

LDAP 组条目的目录库

imq.user_repository.ldap.gidattr

字符串 

无 

LDAP 组名的特定于提供者的属性标识符

imq.user_repository.ldap.memattr

字符串 

无 

LDAP 组中用户名的特定于提供者的属性标识符

imq.user_repository.ldap.grpfilter

字符串 

无 

(可选)用于 LDAP 组搜索的 JNDI 过滤器

imq.user_repository.ldap.timeout

整数 

280

LDAP 搜索的时间限制(以秒为单位)

imq.user_repository.ldap.ssl.enabled

布尔值 

false

与 LDAP 服务器通信时是否使用 SSL?

imq.keystore.file.dirpath

字符串 

请参见附录 A, Message QueueTM 数据在特定平台上的位置

包含密钥库文件的目录的路径 

imq.keystore.file.name

字符串 

keystore

密钥库文件的名称 

imq.keystore.password

字符串 

无 

密钥库文件的密码 

imq.audit.enabled [仅适用于 Message Queue Enterprise Edition]

布尔值 

false

是否启动代理日志文件的审计日志? 

监视属性

表 14–8 中列出了与监视服务相关的代理属性。

表 14–8 代理监视属性

属性 

类型 

默认值 

描述 

imq.log.level [可用于 imqcmd update bkr 命令]

字符串 

INFO

日志记录级别 

指定可以写入输出通道的日志记录信息的类别。可能的值为(由高至低): 

    ERROR


    WARNING


    INFO


每个级别都包括高于它的级别(例如,WARNING 包括 ERROR)。

imq.destination.logDeadMsgs

布尔值 

false

是否记录有关停用消息的信息? 

如果为 true,将记录以下事件:

  • 目的地已满,已达到最大大小或最大消息数。

  • 代理由于管理命令或传送确认以外的原因丢弃消息。

  • 代理将消息移动到停用消息队列。

imq.log.console.stream

字符串 

ERR

控制台输出的目的地: 

    OUTstdout


    ERRstderr


imq.log.console.output

字符串 

ERROR|WARNING

可写入控制台的日志记录信息的类别: 

    NONE


    ERROR


    WARNING


    INFO


    ALL


ERRORWARNINGINFO 类别包括高于它们的类别,因此必须根据需要明确指定每个类别。可以指定用竖线 (|) 分隔的任意类别组合。

imq.log.file.dirpath

字符串 

请参见附录 A, Message QueueTM 数据在特定平台上的位置

包含日志文件的目录的路径 

imq.log.file.filename

字符串 

log.txt

日志文件的名称 

imq.log.file.output

字符串 

ALL

可以写入日志文件的日志记录信息的类别: 

    NONE


    ERROR


    WARNING


    INFO


    ALL


ERRORWARNINGINFO 类别包括高于它们的类别,因此必须根据需要明确指定每个类别。可以指定用竖线 (|) 分隔的任意类别组合。

imq.log.file.rolloverbytes

整数 

-1

文件长度(以字节为单位),达到该值后,输出将转移到新的日志文件 

值为 -1 表示不限制字节数(不基于文件长度转移输出)。

imq.log.file.rolloversecs

整数 

604800(一周)

文件的存留期(以秒为单位),达到该值后,输出将转移到新的日志文件 

值为 -1 表示不限制秒数(不基于文件生存期转移输出)。

imq.log.syslog.output [仅限于 Solaris 平台]

字符串 

ERROR

可以写入 syslogd(1M) 的日志记录信息的类别:

    NONE


    ERROR


    WARNING


    INFO


    ALL


ERRORWARNINGINFO 类别包括高于它们的类别,因此必须根据需要明确指定每个类别。可以指定用竖线 (|) 分隔的任意类别组合。

imq.log.syslog.facility

字符串 

LOG_DAEMON

用于记录消息的 syslog 工具

可能的值镜像 syslog(3C) 手册页中所列出的值。适用于 Message Queue 的值包括:

    LOG_USER


    LOG_DAEMON


    LOG_LOCAL0


    LOG_LOCAL1


    LOG_LOCAL2


    LOG_LOCAL3


    LOG_LOCAL4


    LOG_LOCAL5


    LOG_LOCAL6


    LOG_LOCAL7


imq.log.syslog.identity

字符串 

imqbrokerd_${imq.instanceName }

标识字符串,该字符串将被加到记录到 syslog 中的每条消息的前面。

imq.log.syslog.logpid

布尔值 

true

是否将代理进程 ID 与消息一起记录? 

imq.log.syslog.logconsole

布尔值 

false

如果无法将消息发送到 syslog,是否将其写入系统控制台?

imq.log.timezone

字符串 

当地时区 

日志时间戳的时区 

可能的值与方法 java.util.TimeZone.getTimeZone 使用的值相同。

示例:

    GMT


    GMT-8:00


    America/LosAngeles


    Europe/Rome


    Asia/Tokyo


imq.metrics.enabled

布尔值 

true

是否将度量信息写入记录程序?

不影响度量消息的生成(由 imq.metrics.topic.enabled 控制)。

imq.metrics.interval

整数 

-1

将度量信息写入记录程序的时间间隔(以秒为单位) 

不影响度量消息生成的时间间隔(由 imq.metrics.topic.interval 控制)。

值为 -1 表示时间间隔为无限长(永不将度量信息写入记录程序)。

imq.metrics.topic.enabled

布尔值 

true

是否向度量主题目的地生成度量消息? 

如果为 false,则试图订阅度量主题目的地时会抛出客户端异常。

imq.metrics.topic.interval

整数 

60

向度量主题目的地中生成度量消息的时间间隔(以秒为单位) 

imq.metrics.topic.persist

布尔值 

false

发送到度量主题目的地的度量消息是否为永久性消息? 

imq.metrics.topic.timetolive

整数 

300

发送到度量主题目的地的度量消息的生命周期(以秒为单位) 

群集配置属性

表 14–9 中列出了与代理群集相关的配置属性。

表 14–9 群集配置的代理属性

属性 

类型 

默认值 

描述 

imq.cluster.brokerlist [群集中的所有代理必须具有相同的值。]

字符串 

无 

代理地址的列表 

该列表中包含一个或多个用逗号分隔的地址。每个地址指定了群集中某个代理的主机名和端口映射器端口号,格式为 hostName: portNumber

示例:

    host1:3000,host2:8000,ctrlhost


imq.cluster.hostname [可以为群集中的每个代理单独指定。]

字符串 

无 

cluster 连接服务的主机名或 IP 地址

如果指定,则覆盖 cluster 连接服务的 imq.hostname(请参见表 14–1)。

imq.cluster.port

整数 

0

cluster 连接服务的端口号

值为 0 表示应当由端口映射器动态分配端口号。

imq.cluster.transport

字符串 

tcp

cluster 连接服务的网络传输协议

要在代理之间实现安全、加密的消息传送,请将此属性设置为 ssl

imq.cluster.url, [可用于 imqcmd update bkr 命令]

字符串 

无 

cluster 配置文件的 URL(如果有)

示例:

    http://webserver/imq/cluster.properties


    (对于 Web 服务器上的文件)


    file:/net/mfsserver/imq/cluster.properties


    (对于共享驱动器上的文件)


imq.cluster.masterbroker

字符串 

无 

群集主代理的主机名和端口号(如果有) 

该值的格式为 hostName: portNumber,其中 hostName 是主代理的主机名,portNumber 是它的端口映射器端口号。

示例:

    ctrlhost:7676


按字母顺序排列的代理属性列表

按字母顺序排列的代理属性列表是按字母顺序排列的代理配置属性列表,其中包含对本章中相关表的交叉引用。

表 14–10 按字母顺序排列的代理属性列表

属性 

表 

imq.accesscontrol.enabled

表 14–7

imq.accesscontrol.file.filename

表 14–7

imq.audit.enabled

表 14–7

imq.authentication.basic.user_repository

表 14–7

imq.authentication.client.response.timeout

表 14–7

imq.authentication.type

表 14–7

imq.autocreate.destination.isLocalOnly

表 14–3

imq.autocreate.destination.limitBehavior

表 14–3

imq.autocreate.destination.maxBytesPerMsg

表 14–3

imq.autocreate.destination.maxNumMsgs

表 14–3

imq.autocreate.destination.maxNumProducers

表 14–3

imq.autocreate.destination.maxTotalMsgBytes

表 14–3

imq.autocreate.destination.useDMQ

表 14–3

imq.autocreate.queue

表 14–3

imq.autocreate.queue.consumerFlowLimit

表 14–3

imq.autocreate.queue.localDeliveryPreferred

表 14–3

imq.autocreate.queue.maxNumActiveConsumers

表 14–3

imq.autocreate.queue.maxNumBackupConsumers

表 14–3

imq.autocreate.topic

表 14–3

imq.autocreate.topic.consumerFlowLimit

表 14–3

imq.cluster.brokerlist

表 14–9

imq.cluster.hostname

表 14–9

imq.cluster.masterbroker

表 14–9

imq.cluster.port

表 14–9

imq.cluster.transport

表 14–9

imq.cluster.url

表 14–9

imq.destination.DMQ.truncateBody

表 14–2

imq.destination.logDeadMsgs

表 14–8

imq.hostname

表 14–1

imq.imqcmd.password

表 14–7

imq.keystore.file.dirpath

表 14–7

imq.keystore.file.name

表 14–7

imq.keystore.password

表 14–7

imq.keystore.propertyName

表 14–7

imq.log.console.output

表 14–8

imq.log.console.stream

表 14–8

imq.log.file.dirpath

表 14–8

imq.log.file.filename

表 14–8

imq.log.file.output

表 14–8

imq.log.file.rolloverbytes

表 14–8

imq.log.file.rolloversecs

表 14–8

imq.log.level

表 14–8

imq.log.syslog.facility

表 14–8

imq.log.syslog.identity

表 14–8

imq.log.syslog.logconsole

表 14–8

imq.log.syslog.logpid

表 14–8

imq.log.syslog.output

表 14–8

imq.log.timezone

表 14–8

imq.message.expiration.interval

表 14–2

imq.message.max_size

表 14–2

imq.metrics.enabled

表 14–8

imq.metrics.interval

表 14–8

imq.metrics.topic.enabled

表 14–8

imq.metrics.topic.interval

表 14–8

imq.metrics.topic.persist

表 14–8

imq.metrics.topic.timetolive

表 14–8

imq.passfile.dirpath

表 14–7

imq.passfile.enabled

表 14–7

imq.passfile.name

表 14–7

imq.persist.file.destination.message.filepool.limit

表 14–5

imq.persist.file.message.cleanup

表 14–5

imq.persist.file.message.filepool.cleanratio

表 14–5

imq.persist.file.message.max_record_size

表 14–5

imq.persist.file.sync.enabled

表 14–5

imq.persist.jdbc.brokerid

表 14–6

imq.persist.jdbc.closedburl

表 14–6

imq.persist.jdbc.createdburl

表 14–6

imq.persist.jdbc.driver

表 14–6

imq.persist.jdbc.needpassword

表 14–6

imq.persist.jdbc.opendburl

表 14–6

imq.persist.jdbc.password

表 14–6

imq.persist.jdbc.table.IMQCCREC35

表 14–6

imq.persist.jdbc.table.IMQDEST35

表 14–6

imq.persist.jdbc.table.IMQILIST35

表 14–6

imq.persist.jdbc.table.IMQINT35

表 14–6

imq.persist.jdbc.table.IMQMSG35

表 14–6

imq.persist.jdbc.table.IMQPROPS35

表 14–6

imq.persist.jdbc.table.IMQSV35

表 14–6

imq.persist.jdbc.table.IMQTACK35

表 14–6

imq.persist.jdbc.table.IMQTXN35

表 14–6

imq.persist.jdbc.user

表 14–6

imq.persist.store

表 14–4

imq.ping.interval

表 14–1

imq.portmapper.backlog

表 14–1

imq.portmapper.hostname

表 14–1

imq.portmapper.port

表 14–1

imq.resourceState .count

表 14–2

imq.resourceState .threshold

表 14–2

imq.service.activelist

表 14–1

imq.serviceName .accesscontrol.enabled

表 14–7

imq.serviceName .accesscontrol.file.filename

表 14–7

imq.serviceName .authentication.type

表 14–7

imq.serviceName .max_threads

表 14–1

imq.serviceName .min_threads

表 14–1

imq.serviceName .protocolType.hostname

表 14–1

imq.serviceName .protocolType.port

表 14–1

imq.serviceName .threadpool_model

表 14–1

imq.shared.connectionMonitor_limit

表 14–1

imq.system.max_count

表 14–2

imq.system.max_size

表 14–2

imq.transaction.autorollback

表 14–2

imq.user_repository.ldap.base

表 14–7

imq.user_repository.ldap.gidattr

表 14–7

imq.user_repository.ldap.grpbase

表 14–7

imq.user_repository.ldap.grpfilter

表 14–7

imq.user_repository.ldap.grpsearch

表 14–7

imq.user_repository.ldap.memattr

表 14–7

imq.user_repository.ldap.password

表 14–7

imq.user_repository.ldap.principal

表 14–7

imq.user_repository.ldap.propertyName

表 14–7

imq.user_repository.ldap.server

表 14–7

imq.user_repository.ldap.ssl.enabled

表 14–7

imq.user_repository.ldap.timeout

表 14–7

imq.user_repository.ldap.uidattr

表 14–7

imq.user_repository.ldap.usrfilter

表 14–7

第 15 章 物理目的地属性参考

本章提供了有关物理目的地配置属性的参考信息。创建或更新物理目的地时可设置这些属性。对于自动创建的目的地,已在代理的实例配置文件中设置默认值(请参见表 14–3)。

物理目的地属性

表 15–1 物理目的地属性

属性 

类型 

默认值 

描述 

maxNumMsgs [在群集环境中,应用于目的地的各个单独实例,而不是统一应用于群集中的所有实例。]

整数 

-1

未使用消息的最大数量 

值为 -1 表示不限制消息数量。

对于停用消息队列,默认值为 1000

maxBytesPerMsg

字符串 

-1

任何单条消息的最大大小(以字节为单位) 

将持久性消息被拒绝的消息报告给生成方客户端,并报告异常;对于非持久性消息,则不发送任何通知。 

     

可以使用以下后缀(分别表示字节、千字节或兆字节)来表示该值: 

    b:字节


    k:千字节(1024 字节)


    m:兆字节(1024 × 1024 = 1,048,576 字节)


     

不带后缀的值用字节表示;值为 -1 表示不限制消息大小。

     

示例:

    1600:1600 字节


    1600b:1600 字节


    16k:16 千字节(= 16,384 字节)


    16m:16 兆字节(= 16,777,216 字节)


    -1:无限制


maxTotalMsgBytes

字符串 

-1

未使用的消息最多可以占用的内存总量(以字节为单位)

语法与 maxBytesPerMsg 的语法相同(请参见上文)。

对于停用消息队列,默认值为 10m

limitBehavior

字符串 

REJECT_NEWEST

当达到内存限制的阈值时,代理的行为如下: 

    FLOW_CONTROL:降低生成方速度


    REMOVE_OLDEST:丢弃最旧的消息


    REMOVE_LOW_PRIORITY:根据消息的存在时间丢弃优先级最低的消息;不通知生成方客户端


    REJECT_NEWEST:拒绝最新的消息;仅当消息为持久性消息时,才通知生成方客户端,并报告异常


     

如果值为 REMOVE_OLDESTREMOVE_LOW_PRIORITY ,且 useDMQ 属性为 true, 则会将超出限制的消息移动到停用消息队列中。对于停用消息队列本身,默认的限制行为是 REMOVE_OLDEST,并且不能设置为 FLOW_CONTROL

maxNumProducers [无法为停用消息队列设置]

整数 

-1

目的地的消息生成方的最大数量

当达到此限制时,将无法创建新的生成方。值为 -1 表示不限制生成方的数量。

maxNumActiveConsumers [仅队列目的地。]

整数 

1

在来自队列目的地的负载平衡传送中活动消息使用方的最大数量

值为 -1 表示不限制使用方数量。在 Sun Java System Message QueueTM Platform Edition 中,该值被限制为 2

maxNumBackupConsumers

整数 

0

来自队列目的地的负载平衡传送中的备份消息使用方的最大数量

值为 -1 表示不限制使用方数量。在 Sun Java System Message Queue Platform Edition 中,该值被限制为 1

consumerFlowLimit

整数 

1000

在一批中传送给使用方的消息的最大数量

在负载平衡队列传送中,该值为负载平衡开始之前路由至活动使用方的队列消息的初始数量。目的地使用方可以通过在连接中指定一个较小的值来覆盖此限制。 

值为 -1 表示不限制消息数量。

isLocalOnly

布尔值 

false

仅限本地传送? 

此属性仅适用于代理群集中的目的地,目的地一旦创建,此属性即无法更改。如果为 true,将不在其他代理上复制目的地,并将目的地限制为只将消息传送到本地使用方(那些连接到创建该目的地的代理的使用方)。

localDeliveryPreferred ,

布尔值 

false

是否首选本地传送? 

此属性仅适用于代理群集中的负载平衡队列传送。如果为 true,则只有在本地代理中不存在使用方时,才会将消息传送给远程使用方;不得将目的地限制为仅本地传送(isLocalOnly 必须为 false)。

useDMQ

布尔值 

true

是否将停用消息发送到停用消息队列? 

如果为 false,将仅仅丢弃停用消息。

第 16 章 受管理对象属性参考

本章提供了有关受管理对象属性的参考信息。本章包含以下各节:

连接工厂属性

连接工厂对象的属性分为不同类别,如以下各节所述:

连接处理

表 16–1 列出了用于连接处理的连接工厂属性。

表 16–1 用于连接处理的连接工厂属性

属性 

类型 

默认值 

描述 

imqAddressList

字符串 

现有的 Message QueueTM 3.0 地址(如果有);如果没有,则使用表 16–2 中的第一个条目。

代理地址的列表 

该列表中包含一个或多个用逗号分隔的代理地址。每个地址指定(或表示)客户端可以连接的代理实例的主机名、端口号和连接服务。地址语法因连接服务及端口分配方法而异;有关详细信息,请参见下文。 

imqAddressListBehavior

字符串 

PRIORITY

尝试连接到代理地址的顺序: 

    PRIORITY:地址列表中指定的顺序


    RANDOM:随机顺序



注 –

如果多个客户端共享同一连接工厂,则指定随机连接顺序可防止所有客户端尝试连接到同一地址。


imqAddressListIterations

整数 

5

重复访问地址列表以尝试建立或重新建立连接的次数。 

值为 -1 表示不限制重复次数。

imqPingInterval

整数 

30

测试客户端与代理之间的连接的时间间隔(以秒为单位) 

如果值为 0-1,将禁止定期测试连接。

imqReconnectEnabled

布尔值 

false

是否尝试重新建立断开的连接? 

imqReconnectAttempts

整数 

0

尝试连接(或重新连接)到地址列表中每个地址的次数,超过该次数后,将移动到下一个地址。 

值为 -1 表示不限制尝试连接尝试次数:将反复尝试连接到第一个地址,直至成功。

imqReconnectInterval

长整型 

3000

两次重新连接尝试的时间间隔(以毫秒为单位)。 

此值适用于针对给定地址的连续尝试,也适用于列表中的连续地址。 


注 –

此值过小可能会导致代理没有足够的恢复时间;而此值过大则可能会导致无法接受的连接延迟。


imqSSLIsHostTrusted

布尔值 

true

是否信任代理提供的任何证书? 

如果为 false, 则 Message Queue 客户端运行时环境将验证所有提供给它的证书。如果证书的签名不在客户端的信任存储库中,验证将失败。

如果为 true,则跳过证书验证。这在使用自签名证书的软件测试期间非常有用。

注意:要使用来自证书颁发机构的签名证书,请将此属性设置为 false

imqAddressList 属性的值是由逗号分隔的字符串,它指定要连接的一个或多个代理地址。 每个地址的一般语法如下:

   
scheme://address

其中 scheme 标识表 16–2 第一列中所示的某个寻址方案, address 表示代理地址本身。 用于指定地址的确切语法取决于寻址方案,如表中最后一列所示。

表 16–2 消息代理寻址方案

方案 

服务 

语法 

描述 

mq

jmsssljms

[hostName][:portNumber ][/serviceName]

jmsssljms 连接服务动态指定端口。

地址列表条目指定 Message Queue 端口映射器的主机名和端口号。端口映射器本身动态指定用于连接的端口。 

默认值:

    hostName = localhost


    portNumber = 7676


    serviceName = jms


对于 ssljms 连接服务,必须明确指定所有变量。

mqtcp

jms

hostName:portNumber /jms

使用 jms 连接服务连接到指定端口。

绕过端口映射器,直接与指定的主机名和端口号建立 TCP 连接。

mqssl

ssljms

hostName:portNumber /ssljms

使用 ssljms 连接服务连接到指定端口。

绕过端口映射器,直接与指定的主机名和端口号建立安全的 SSL 连接。

http

httpjms

http://hostName: portNumber/contextRoot /tunnel

如果多个代理实例使用同一隧道 servlet,则使用以下语法将会连接到特定代理实例而非随机选择的实例: 

http://hostName: portNumber/contextRoot /tunnel?

    ServerName=hostName :instanceName


使用 httpjms 连接服务连接到指定端口。

与位于指定 URL 的 Message Queue 隧道 Servlet 建立 HTTP 连接。 必须将代理配置为访问 HTTP 隧道 servlet。

https

httpsjms

https://hostName: portNumber/contextRoot /tunnel

如果多个代理实例使用同一隧道 servlet,则使用以下语法将会连接到特定代理实例而非随机选择的实例: 

https://hostName: portNumber/contextRoot /tunnel?

    ServerName=hostName :instanceName


使用 httpsjms 连接服务连接到指定端口。

与位于指定 URL 的 Message Queue 隧道 servlet 建立安全的 HTTPS 连接。必须将代理配置为访问 HTTPS 隧道 servlet。

表 16–3 消息代理地址示例

服务 

代理主机 

端口 

示例地址 

未指定 

未指定 

未指定 

无地址 (mq://localHost:7676/jms)

未指定 

指定的主机 

未指定 

myBkrHost (mq://myBkrHost:7676/jms)

未指定 

未指定 

指定的端口映射器端口 

1012 (mq://localHost:1012/jms)

ssljms

本地主机 

标准的端口映射器端口 

mq://localHost:7676/ssljms

ssljms

指定的主机 

标准的端口映射器端口 

mq://myBkrHost:7676/ssljms

ssljms

指定的主机 

指定的端口映射器端口 

mq://myBkrHost:1012/ssljms

jms

本地主机 

指定的服务端口 

mqtcp://localhost:1032/jms

ssljms

指定的主机 

指定的服务端口 

mqssl://myBkrHost:1034/ssljms

httpjms

不适用 

不适用 

http://websrvr1:8085/imq/tunnel

httpsjms

不适用 

不适用 

https://websrvr2:8090/imq/tunnel

客户端身份验证

表 16–4 列出了用于客户端身份验证的连接工厂属性。

表 16–4 用于客户端身份验证的连接工厂属性

属性 

类型 

默认值 

描述 

imqDefaultUsername

字符串 

guest

用于通过代理验证的默认用户名 

imqDefaultPassword

字符串 

guest

用于通过代理验证的默认密码 

imqConfiguredClientID

字符串 

null

以管理方式配置的客户端标识符 

imqDisableSetClientID

布尔值 

false

是否阻止客户端使用 setClientID 方法更改客户端标识符?

可靠性和流控制

表 16–5 列出了用于可靠性和流控制的连接工厂属性。

表 16–5 用于可靠性和流控制的连接工厂属性

属性 

类型 

默认值 

描述 

imqAckTimeout

字符串 

0

等待代理确认的最长时间(以毫秒为单位),超过该时间后,将抛出异常 

值为 0 表示无超时(无限期等待)。


注 –

在某些情况下,此值过低可能会导致提前超时:例如,第一次使用安全 (SSL) 连接对照 LDAP 用户系统信息库来验证用户时需要 30 秒以上的时间。


imqConnectionFlowCount

整数 

100

计量批中有效负荷消息的数量 

达到此消息数后,会暂停向客户端传送有效负荷消息,以便传送堆积的所有控制消息。当收到客户端运行时环境通知时,将恢复有效负荷消息传送,直到再次达到该消息数为止。 

值为 0 将禁用消息传送计量,这可能会因为有效负荷消息流量过大而导致 Message Queue 控制消息被阻塞。

imqConnectionFlowLimitEnabled

布尔值 

false

是否在连接级别限制消息流? 

imqConnectionFlowLimit

整数 

1000

每个连接中可以传送和缓冲(以便使用)的最大消息数 

如果待处理的未使用有效负荷消息数(受流计量的约束,流计量由 imqConnectionFlowCount 控制)超过此限制,连接中的消息传送将会停止。 仅当待处理的消息数低于该限制时,才会恢复传送。这样可防止客户端因待处理消息太多而过载,从而导致内存不足。

如果 imqConnectionFlowLimitEnabled false,则忽略此属性。

imqConsumerFlowLimit

整数 

100

每个使用方可以传送和缓冲(以便使用)的最大消息数 

对于给定的使用方,如果待处理的未使用有效负荷消息数超过此限制,将停止向该使用方传送消息。 仅当该使用方的待处理消息数低于 imqConsumerFlowThreshold 指定的百分比时,才会恢复传送。 使用此限制可以改进多个使用方之间的负载平衡,并防止同一连接上的任一使用方抢占其他使用方的流量。

如果为队列自身的 consumerFlowLimit 属性设置的值较低,则该值可以覆盖此限制(请参见第 15 章,物理目的地属性参考)。另请注意,针对连接上所有使用方的消息传送受 imqConnectionFlowLimit 指定的整体限制的约束。

imqConsumerFlowThreshold

整数 

50

每个使用方可以在客户端运行时环境中缓冲的消息数(以 imqConsumerFlowLimit 百分比的形式指定),低于该百分比时将恢复消息传送。

队列浏览器和服务器会话

表 16–6 中列出了用于队列浏览和服务器会话的连接工厂属性。

表 16–6 用于队列浏览器和服务器会话的连接工厂属性

属性 

类型 

默认值 

描述 

imqQueueBrowserMaxMessagesPerRetrieve

整数 

1000

在浏览队列目的地的内容时一次检索的最大消息数 


注 –

该属性不影响浏览消息的总数,只影响它们分块发送给客户端运行时环境的方式(数量少但较大的块还是数量多但较小的块)。客户端应用程序将总是接受队列中的所有消息。更改属性的值可能会影响性能,但不会影响检索到的数据的总量。


imqQueueBrowserRetrieveTimeout

长整型 

60000

在浏览队列目的地的内容时等待检索消息的最长时间(以毫秒为单位),超过此时间将会抛出异常。 

imqLoadMaxToServerSession

布尔值 

true

是否向服务器会话中加载最大数量的消息? 

如果为 false,则客户端一次只加载一条消息。

此属性仅适用于 JMS 应用服务器工具。

标准消息属性

表 16–7 中列出的连接工厂属性控制 Message Queue 客户端运行时环境是否设置 Java 消息服务规范中定义的某些标准消息属性。

表 16–7 用于设置标准消息属性的连接工厂属性

属性 

类型 

默认值 

描述 

imqSetJMSXUserID

布尔值 

false

是否为生成的消息设置 JMSXUserID 属性(发送消息的用户的标识)?

imqSetJMSXAppID

布尔值 

false

是否为生成的消息设置 JMSXAppID 属性(发送消息的应用程序的标识)?

imqSetJMSXProducerTXID

布尔值 

false

是否为生成的消息设置 JMSXProducerTXID 属性(生成消息的事务的事务标识符)?

imqSetJMSXConsumerTXID

布尔值 

false

是否为使用的消息设置 JMSXConsumerTXID 属性(使用消息的事务的事务标识符)?

imqSetJMSXRcvTimestamp

布尔值 

false

是否为使用的消息设置 JMSXRcvTimestamp 属性(消息传送到使用方的时间)?

消息头覆盖

表 16–8 列出了用于覆盖 JMS 消息头字段的连接工厂属性。

表 16–8 用于覆盖消息头的连接工厂属性

属性 

类型 

默认值 

描述 

imqOverrideJMSDeliveryMode

布尔值 

false

是否允许覆盖客户端设置的传送模式? 

imqJMSDeliveryMode

整数 

2

传送模式的覆盖值: 

1 非持久性

2 持久性

imqOverrideJMSExpiration

布尔值 

false

是否允许覆盖客户端设置的到期时间? 

imqJMSExpiration

长整型 

0

到期时间的覆盖值(以毫秒为单位) 

值为 0 表示不限制到期时间(消息永不过期)。

imqOverrideJMSPriority

布尔值 

false

是否允许覆盖客户端设置的优先级? 

imqJMSPriority

整数 

4(标准)

优先级的覆盖值(09

imqOverrideJMSHeadersToTemporaryDestinations

布尔值 

false

是否对临时目的地应用覆盖值? 

目的地属性

表 16–9 中列出了可以为目的地受管理对象设置的属性。

表 16–9 目的地属性

属性 

类型 

默认值 

描述 

imqDestinationName

字符串 

Untitled_Destination_Object

物理目的地的名称 

目的地名称只能包含字母数字字符(不包括空格),并且必须以字母字符开头,或者以下划线 (_) 或美元符号 ($) 开头。目的地名称不得以字符 mq 开头。

imqDestinationDescription

字符串 

无 

目的地的描述性字符串 

SOAP 端点属性

表 16–10 中列出了用于为使用简单对象访问协议 (Simple Object Access Protocol, SOAP) 的应用程序配置端点 URL 的属性;有关详细信息,请参见 Message Queue Developer's Guide for Java Clients

表 16–10 SOAP 端点属性

属性 

类型 

默认值 

描述 

imqSOAPEndpointList

字符串 

无 

由一个或多个以空格分隔的 URL 组成的列表,这些 URL 表示要向其发送消息的 SOAP 端点。

每个 URL 都应该与一个可以接收和处理 SOAP 消息的 servlet 关联。

示例:

    http://www.serv1/ http://www.serv2/


如果该列表指定了多个 URL,则消息将广播到列表中的所有 URL。

imqEndpointName

字符串 

Untitled_Endpoint_Object

SOAP 端点的名称

imqEndpointDescription

字符串 

无 

SOAP 端点的描述性字符串。

示例:

    My endpoints for broadcast


第 17 章 JMS 资源适配器属性参考

本章介绍 Message QueueTM JMS 资源适配器 (JMS Resource Adapter, JMS RA) 的配置属性,它可以通过标准 J2EE 连接器体系结构 (J2EE Connector Architecture, JCA) 将 Sun Java SystemTM Message Queue 和任何 J2EE 1.4 应用服务器集成。 插入应用服务器后,在该应用服务器中部署的应用程序即可使用 Message Queue 来发送和接收 JMS 消息。

Message Queue JMS 资源适配器通过以下三个 JavaBean 组件来公开其配置属性:

要设置这些组件的属性值,请使用应用服务器提供的用于配置和部署资源适配器及部署 MDB 的工具。

本章列出并描述了 Message Queue JMS 资源适配器的配置属性。 本章包含以下各节:

ResourceAdapter JavaBean

ResourceAdapter 配置用于配置默认 JMS 资源适配器行为。表 17–1 列出并描述了可用来配置此 JavaBean 的属性。

表 17–1 资源配置器属性

属性 

类型 

默认值 

描述 

addressList

字符串 

mq://localhost:7676/jms

(必需)用于连接到 Message Queue 服务的消息服务地址

等效于 connectionURL (下栏);必须设置其中一种。

connectionURL

字符串 

mq://localhost:7676/jms

 

用于连接到 Message Queue 服务的消息服务地址 

等效于 addressList(上栏);必须设置其中一种。

userName

字符串 

guest

(必需)用于连接到 Message Queue 服务的默认用户名

password

字符串 

guest

(必需)用于连接到 Message Queue 服务的默认密码

addressListBehavior

字符串 

PRIORITY

尝试连接到 Message Queue 服务的顺序: 

    PRIORITY:地址列表中指定的顺序


    RANDOM:随机顺序



注 –

连接失败后的重新连接尝试从连接中断的代理开始,将依次尝试活动地址列表中的后续条目,而不管为该属性设置的值。


addressListIterations

整数 

1

重复访问地址列表以尝试建立或重新建立连接的次数。 

reconnectEnabled

布尔值 

false

是否尝试重新建立断开的连接?

reconnectAttempts

整数 

6

尝试重新连接到地址列表中每个地址的次数,超过该次数后,将移动到下一个地址

reconnectInterval

长整型 

30000

两次重新连接尝试的时间间隔(以毫秒为单位)

ManagedConnectionFactory JavaBean

受管理连接工厂定义资源适配器为消息驱动 Bean 提供的连接。 表 17–2 显示了 ManagedConnectionFactory JavaBean 的属性;如果设置这些属性,它们将覆盖 ResourceAdapter JavaBean 对应的属性。

表 17–2 受管理连接工厂属性

属性 

类型 

默认值 

描述 

addressList

字符串 

ResourceAdapter JavaBean 继承(请参见表 17–1

连接到 Message Queue 服务的消息服务地址列表 

userName

字符串 

guest

(可选)连接到 Message Queue 服务的用户名

password

字符串 

guest

(可选)连接到 Message Queue 服务的密码

clientID

字符串 

无 

用于连接到 Message Queue 服务的客户端标识符 

addressListBehavior

字符串 

PRIORITY

尝试连接到 Message Queue 服务的顺序: 

    PRIORITY:地址列表中指定的顺序


    RANDOM:随机顺序



注 –

连接失败后的重新连接尝试从连接中断的代理开始,将依次尝试活动地址列表中的后续条目,而不管为该属性设置的值。


addressListIterations

整数 

1

重复访问地址列表以尝试建立或重新建立连接的次数。 

reconnectEnabled

布尔值 

false

是否尝试重新建立断开的连接?

reconnectAttempts

整数 

6

尝试重新连接到地址列表中每个地址的次数,超过该次数后,将移动到下一个地址。 

reconnectInterval

长整型 

30000

两次重新连接尝试的时间间隔(以毫秒为单位) 

ActivationSpec JavaBean

表 17–3 显示了 ActivationSpec JavaBean 的配置属性。当应用服务器指示资源适配器激活消息端点并将消息端点与消息驱动 Bean 关联时,需要使用这些属性。

表 17–3 激活规范属性

属性 

类型 

默认值 

描述 

addressList [Message Queue JMS 资源适配器的特有属性。]

字符串 

ResourceAdapter JavaBean 继承

(可选) 用于连接到 Message Queue 服务的消息服务地址

destination [标准的企业 JavaBean (EJB) 和 J2EE 连接器体系结构 (CA) 属性]

字符串 

无 

(必需) 使用消息的目的地的名称

对于 Message Queue 目的地受管理对象,该值必须为 destinationName 属性的值。

destinationType

字符串 

无 

(必需)destination 属性指定的目的地类型:

    javax.jms.Queue:队列目的地


    javax.jms.Topic:主题目的地


messageSelector

字符串 

无 

(可选) 用于对传送到使用方的消息进行过滤的消息选择器。

subscriptionName

字符串 

无 

用于长期订阅的名称 

如果 subscriptionDurability 设置为 Durable ,则必须设置此属性。

subscriptionDurability

字符串 

NonDurable

用于主题目的地使用方的长期性: 

    Durable:长期使用方


    NonDurable:非长期使用方


只有当 destinationType 设置为 javax.jms.Topic 时,此属性才有效。对于非长期订阅,此属性是可选的;对于长期订阅,此属性是必需的。 如果设置为 Durable,则还必须设置 clientIDsubscriptionName 属性。

clientId

字符串 

无 

用于连接到 Message Queue 服务的客户端 ID 

如果 subscriptionDurability 设置为 Durable,则必须设置此属性。

acknowledgeMode

字符串 

Auto-acknowledge

(可选)确认模式:

    Auto-acknowledge: Auto-acknowledge 模式


    Dups-ok-acknowledge: Dups-OK-acknowledge 模式


customAcknowledgeMode

字符串 

无 

用于 MDB 消息使用的确认模式

有效值是 No_acknowledge 或 null。

只能将 No_acknowledge 模式用于非事务、非长期的主题订阅;如果对事务订阅或长期订阅使用此设置,订阅激活将失败。 

endpointExceptionRedeliveryAttempts

整数 

6

消息传送期间当 MDB 抛出异常时,重新传送消息的次数

sendUndeliverableMsgsToDMQ

布尔值 

true

当 MDB 抛出运行时环境异常且重新传送尝试次数超出 endpointExceptionRedeliveryAttempts 值时,是否将消息置于停用消息队列中?

如果为 false,Message Queue 代理将尝试将消息重新传送到任何有效的使用方,包括同一个 MDB。

第 18 章 度量参考

本章介绍 Message QueueTM 消息代理可以为监视、调整和诊断提供的度量信息。可以通过多种方式获取该信息:

本章中的表格列出了各种可用的度量信息及提供它的形式。对于通过命令实用程序的 metrics bkr 命令提供的度量信息,表中列出了请求它们时所用的度量类型;对于那些在度量消息中提供的度量信息,表中列出了它们将被传送到的度量主题目的地。本章包含以下各节:

JVM 度量

表 18–1 显示了代理为代理进程 JVM(Java Virtual Machine,Java 虚拟机)堆报告的度量信息。

表 18–1 JVM 度量

度量数量 

描述 

日志文件? 

metrics bkr 度量类型

度量主题 

JVM 堆:总内存

当前总内存(以字节为单位) 

是 

cxn

mq.metrics.jvm

JVM 堆:可用内存

当前可用的内存量(以字节为单位) 

是 

cxn

mq.metrics.jvm

JVM 堆:最大内存

允许的最大堆大小(以字节为单位) 

是 

无 

mq.metrics.jvm

代理范围内的度量

表 18–2 显示了代理报告的代理范围内的度量信息。

表 18–2 代理范围内的度量

度量数量 

描述 

日志文件? 

metrics bkr 度量类型

度量主题 

连接

连接数 

所有连接服务的当前连接总数 

是 

cxn

mq.metrics.broker

线程数 

所有连接服务的当前线程总数 

是 

cxn

无 

最小线程数 

所有连接服务的最小线程总数 

是 

cxn

无 

最大线程数 

所有连接服务的最大线程总数 

是 

cxn

无 

存储的消息

消息数 

当前存储在内存和持久性存储库中的有效负荷消息数 

否 

[使用 query bkr 命令代替]

mq.metrics.broker

消息字节总数 

当前存储在内存和持久性存储库中的有效负荷消息总大小(以字节为单位) 

否 

mq.metrics.broker

消息流

流入消息数 

自代理启动以来收到的累积有效负荷消息数 

是 

ttl

mq.metrics.broker

流出消息数 

自代理启动以来发送的累积有效负荷消息数 

是 

ttl

mq.metrics.broker

消息流入速率 

有效负荷消息流入代理的当前速率 

是 

rts

无 

消息流出速率 

有效负荷消息流出代理的当前速率 

是 

rts

无 

流入消息字节 

自代理启动以来收到的有效负荷消息的累积大小(以字节为单位) 

是 

ttl

mq.metrics.broker

流出消息字节 

自代理启动以来发送的有效负荷消息累积大小(以字节为单位) 

是 

ttl

mq.metrics.broker

消息字节流入速率 

有效负荷消息字节流入代理的当前速率 

是 

rts

无 

消息字节流出速率 

有效负荷消息字节流出代理的当前速率 

是 

rts

无 

流入包数 

自代理启动以来收到的累积有效负荷和控制包数 

是 

ttl

mq.metrics.broker

流出包数 

自代理启动以来发送的累积有效负荷和控制包数 

是 

ttl

mq.metrics.broker

包流入速率 

有效负荷和控制包流入代理的当前速率 

是 

rts

无 

包流出速率 

有效负荷和控制包流出代理的当前速率 

是 

rts

无 

流入包字节 

自代理启动以来收到的有效负荷和控制包的累积大小(以字节为单位) 

是 

ttl

mq.metrics.broker

流出包字节 

自代理启动以来发送的有效负荷和控制包的累积大小(以字节为单位) 

是 

ttl

mq.metrics.broker

包字节流入速率 

有效负荷和控制包字节流入代理的当前速率 

是 

rts

无 

包字节流出速率 

有效负荷和控制包字节流出代理的当前速率 

是 

rts

无 

目的地

目的地数 

当前物理目的地数 

否 

无 

mq.metrics.broker

连接服务度量

表 18–3 显示了代理为各个连接服务所报告的度量信息。

表 18–3 连接服务度量

度量数量 

描述 

日志文件? 

metrics svc 度量类型

度量主题 

连接

连接数 

当前连接数 

否 

cxn [用 query svc 命令也可以得到]

无 

线程数 

当前线程数 

否 

cxn

无 

最小线程数 

至少应分配给服务的线程数 

否 

cxn

无 

最大线程数 

最多可分配给服务的线程数 

否 

cxn

无 

消息流

流入消息数 

自代理启动以来通过连接服务收到的累积有效负荷消息数 

否 

ttl

无 

流出消息数 

自代理启动以来通过连接服务发送的累积有效负荷消息数 

否 

ttl

无 

消息流入速率 

有效负荷消息通过连接服务流入代理的当前速率 

否 

rts

无 

消息流出速率 

有效负荷消息通过连接服务流出代理的当前速率 

否 

rts

无 

流入消息字节 

自代理启动以来通过连接服务收到的有效负荷消息的累积大小(以字节为单位) 

否 

ttl

无 

流出消息字节 

自代理启动以来通过连接服务发送的有效负荷消息的累积大小(以字节为单位) 

否 

ttl

无 

消息字节流入速率 

有效负荷消息字节通过连接服务流入代理的当前速率 

否 

rts

无 

消息字节流出速率 

有效负荷消息字节通过连接服务流出代理的当前速率 

否 

rts

无 

流入包数 

自代理启动以来通过连接服务收到的累积有效负荷和控制包数 

否 

ttl

无 

流出包数 

自代理启动以来通过连接服务发送的累积有效负荷和控制包数 

否 

ttl

无 

包流入速率 

有效负荷和控制包通过连接服务流入代理的当前速率 

否 

rts

无 

包流出速率 

有效负荷和控制包通过连接服务流出代理的当前速率 

否 

rts

无 

流入包字节 

自代理启动以来通过连接服务收到的有效负荷和控制包的累积大小(以字节为单位) 

否 

ttl

无 

流出包字节 

自代理启动以来通过连接服务发送的有效负荷和控制包的累积大小(以字节为单位) 

否 

ttl

无 

包字节流入速率 

有效负荷和控制包字节通过连接服务流入代理的当前速率 

否 

rts

无 

包字节流出速率 

有效负荷和控制包字节通过连接服务流出代理的当前速率 

否 

rts

无 

目的地度量

表 18–4 显示了代理为各个目的地所报告的度量信息。

表 18–4 目的地度量

度量数量 

描述 

日志文件? 

metrics dst 度量类型

度量主题 

消息使用方

使用方数 

当前相关消息使用方数 

对于队列目的地,该属性包括活动使用方和备份使用方。对于主题目的地,它包括非长期订户和(活动和非活动的)长期订户,等于“活动使用方数”。 

否 

con

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

最大使用方数 

自代理启动以来的最大相关消息使用方数 

对于队列目的地,该属性包括活动使用方和备份使用方。对于主题目的地,它包括非长期订户和(活动和非活动的)长期订户,等于“最大活动使用方数”。 

否 

con

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

平均使用方数 

自代理启动以来的平均相关消息使用方数 

对于队列目的地,该属性包括活动使用方和备份使用方。对于主题目的地,它包括非长期订户和(活动和非活动的)长期订户,等于“平均活动使用方数”。 

否 

con

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

活动使用方数 

当前相关活动消息使用方数 

对于主题目的地,该属性包括非长期订户和(活动和非活动的)长期订户,等于“使用方数”。 

否 

con

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

最大活动使用方数 

自代理启动以来的最大相关活动消息使用方数 

对于主题目的地,该属性包括非长期订户和(活动和非活动的)长期订户,等于“最大使用方数”。 

否 

con

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

平均活动使用方数 

自代理启动以来的平均相关活动消息使用方数 

对于主题目的地,该属性包括非长期订户和(活动和非活动的)长期订户,等于“平均使用方数”。 

否 

con

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

备份使用方数 [仅限于队列目的地。]

当前相关备份消息使用方数 

否 

con

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

最大备份使用方数

自代理启动以来的最大相关备份消息使用方数 

否 

con

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

平均备份使用方数

自代理启动以来的平均相关备份消息使用方数 

否 

con

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

存储的消息

消息数 

当前存储在内存和持久性存储库中的消息数 

否 

conttlrts [用 query dst 命令也可以得到]

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

最大消息数 

自代理启动以来存储在内存和持久性存储库中的最大消息数 

否 

conttlrts

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

平均消息数 

自代理启动以来存储在内存和持久性存储库中的平均消息数 

否 

conttlrts

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

消息字节总数 

存储在内存和持久性存储库中的消息的当前总大小(以字节为单位) 

否 

ttlrts

mq.metrics.destination.queue.queueName mq.metrics.destination.topic.topicName

最大消息字节总数 

自代理启动以来存储在内存和持久性存储库中的消息的最大总大小(以字节为单位) 

否 

ttlrts

mq.metrics.destination.queue.queueName mq.metrics.destination.topic.topicName

平均消息字节总数 

自代理启动以来存储在内存和持久性存储库中的消息的平均总大小(以字节为单位) 

否 

ttlrts

mq.metrics.destination.queue.queueName mq.metrics.destination.topic.topicName

消息流

流入消息数 

自代理启动以来收到的累积消息数 

否 

ttl

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

流出消息数 

自代理启动以来发送的累积消息数 

否 

ttl

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

流入消息字节 

自代理启动以来收到的消息的累积大小(以字节为单位) 

否 

ttl

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

流出消息字节 

自代理启动以来发送的消息的累积大小(以字节为单位) 

否 

ttl

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

最大消息字节 

自代理启动以来收到的最大单个消息大小(以字节为单位) 

否 

ttlrts

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

消息流入速率 

收到的消息流的当前速率 

否 

rts

无 

消息流出速率 

发送的消息流的当前速率 

否 

rts

无 

消息字节流入速率 

收到的消息字节流的当前速率 

否 

rts

无 

消息字节流出速率 

发送的消息字节流的当前速率 

否 

rts

无 

磁盘利用率

保留的磁盘 [仅适用于基于文件的持久性]

为目的地保留的磁盘空间容量(以字节为单位) 

否 

dsk

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

已用的磁盘

目的地当前使用的磁盘空间容量(以字节为单位) 

否 

dsk

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName

磁盘占用率

已用磁盘空间与为目的地保留的磁盘空间的比率 

否 

dsk

mq.metrics.destination.queue. queueNamemq.metrics.destination.topic. topicName