本章提供了有关使用 Message QueueTM 命令行管理实用程序的参考信息。 本章包含以下各节:
Message Queue 命令行实用程序是 shell 命令。实用程序的名称是命令,其子命令或选项是传递给该命令的参数。不需要使用单独的命令来启动或退出实用程序。
utilityName [subcommand] [commandArgument] [ [-optionName [optionArgument]] … ]
其中 utilityName 是以下实用程序之一:
imqbrokerd(代理实用程序)
imqcmd(命令实用程序)
imqobjmgr(对象管理器实用程序)
imqdbmgr(数据库管理器实用程序)
imqusermgr(用户管理器实用程序)
imqsvcadmin(服务管理器实用程序)
imqkeytool(密钥工具实用程序)
子命令和命令级别的参数(如果有)必须放在所有选项及其参数之前;而选项自身可以按任何顺序显示。所有子命令、命令参数、选项和选项参数都是以空格分隔的。如果选项参数的值包含空格,则必须将整个值置于引号中。(将所有属性-值对置于引号中通常是最安全的做法。)
以下命令用于启动默认代理,它是不带子命令子句的命令行的示例:
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 |
无 |
默认行为:使用系统上安装的运行时环境或 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 选项),并且未指定主机名或端口号,则默认情况下都将采用值 localhost 和 7676。
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(目的地类型)选项都可以采用以下两个值之一:
q:队列目的地
t:主题目的地
语法 |
描述 |
---|---|
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 | |
-u userName |
用于验证的用户名 如果省略此选项,命令实用程序将以交互方式提示用户输入用户名。 |
-p password |
用于验证的密码 [不建议使用此选项,它最终将被删除。请省略该密码(这样,系统将以交互的方式提示用户输入密码)或使用 -passfile 选项来指定包含密码的文件。] |
-passfile path |
密码文件的位置 有关详细信息,请参见密码文件。 |
-rtm timeoutInterval |
初始超时时间间隔(以秒为单位) 初始超时时间间隔是命令实用程序最初等待代理回复的时间长度,超过此时间后,将重试请求。随后的每次重试都将使用此初始时间间隔的倍数作为超时时间间隔。 默认值:10。 |
-rtr numRetries |
代理请求超时后尝试重试的次数 默认值:5。 |
-javahome path |
默认行为:使用系统上安装的运行时环境或 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 |
默认行为:使用系统上安装的运行时环境或 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 用户管理器子命令
此外,表 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 |
默认行为:使用系统上安装的运行时环境或 Message Queue 附带的运行时环境。 |
-jrehome path | |
-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 注册表主键 JREHome、JVMArgs 和 ServiceArgs 下,这些注册表主键的路径为:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iMQ_Broker\Parameters
密钥工具实用程序 (imqkeytool) 为代理生成自签名证书,该证书可用于 ssljms、ssladmin 或 cluster 连接服务。语法为:
imqkeytool -broker
在 UNIX 系统上,您可能需要使用超级用户 (root) 帐户来运行该实用程序。