imqcmd 实用程序包含可用于执行以下连接服务管理任务的子命令:
代理既支持来自应用程序客户端的连接 ,也支持来自管理客户端的连接。表 5–1 显示了 Message Queue 代理中当前可用的连接服务。 如该表所示,每项服务都与它所使用的服务类型(对于应用程序客户端是 NORMAL ,对于管理客户端是 ADMIN)和底层传输协议关联。
表 5–1 Message Queue 连接服务
服务名称 |
服务类型 | |
---|---|---|
NORMAL | ||
NORMAL | ||
NORMAL | ||
NORMAL | ||
ADMIN |
TCP |
|
ADMIN |
TLS(基于 SSL 的安全性) |
您可以使用 imqcmd 子命令将连接服务作为一个整体进行管理,也可以管理某项特定的连接服务。如果子命令的目标是某项特定的服务,请使用 -n 选项指定表 5–1 的“服务名称”列中列出的某个名称。
要列出代理中可用的连接服务,请使用 list svc 子命令。
下面是 list svc 子命令的语法:
imqcmd list svc [-b hostName: portNumber]
此子命令列出默认代理或指定主机和端口上的代理中的所有连接服务。
以下命令列出在 localhost 端口 7676 上运行的代理中的所有服务:
imqcmd list svc -u admin
该命令将输出如下信息:
------------------------------------------------ Service Name Port Number Service State ------------------------------------------------ admin 41844 (dynamic) RUNNING httpjms - UNKNOWN httpsjms - UNKNOWN jms 41843 (dynamic) RUNNING ssladmin dynamic UNKNOWN ssljms dynamic UNKNOWN |
要查询并显示某项服务的信息,请使用 query 子命令。
下面是 query svc 子命令的语法:
imqcmd query svc -n serviceName [-b hostName:portNumber]
query svc 子命令显示在默认代理或指定主机和端口上的代理中运行的指定服务的相关信息。
例如:
imqcmd query svc -n jms -u admin
提示输入密码后,此命令将产生类似如下内容的输出:
Service Name jms Service State RUNNING Port Number 60920 (dynamic) Current Number of Allocated Threads 0 Current Number of Connections 0 Min Number of Threads 10 Max Number of Threads 1000 |
可以使用 update 子命令更改表 5–2 中列出的一个或多个服务属性的值。
表 5–2 imqcmd 更新的连接服务属性
属性 |
描述 |
---|---|
port |
为要更新的服务指定的端口(不适用于 httpjms 或 httpsjms)。值为 0 表示端口由端口映射器动态分配。 |
minThreads | |
maxThreads |
最多可分配给服务的线程数。 |
下面是 update 子命令的语法:
imqcmd update svc -n serviceName [-b hostName:portNumber] -o attribute=value [-o attribute=value1]…
该子命令更新在默认代理或指定主机和端口上的代理中运行的指定服务的指定属性。有关服务属性的说明,请参见连接属性。
以下命令将至少应分配给 jms 服务的线程数更改为 20。
imqcmd update svc -n jms -o “minThreads=20” -u admin
要显示有关某个服务的度量信息,请使用 metrics 子命令。
下面是 metrics 子命令的语法:
imqcmd metrics svc -n serviceName [-b hostName:portNumber] [-m metricType ] [-int interval] [-msp numSamples]
此子命令显示默认代理或指定主机和端口上的代理中指定服务的度量。
使用 -m 选项指定要显示的度量类型:
ttl 显示有关通过指定的连接服务流入和流出代理的消息和包的度量。(默认度量类型。)
rts 显示有关消息和包通过指定的连接服务流入和流出代理的速率的度量(以一秒为衡量单位)。
cxn 显示连接、虚拟内存堆和线程。
可以使用 -int 选项来指定显示度量的时间间隔(以秒为单位)。默认值为 5 秒。
可以使用 -msp 选项来指定在输出中显示的样例的数量。默认为无限制(无穷多)。
例如,要获得 jms 连接服务处理的消息和包的累计总数,请使用以下命令:
imqcmd metrics svc -n jms -m ttl -u admin
------------------------------------------------- Msgs Msg Bytes Pkts Pkt Bytes In Out In Out In Out In Out ------------------------------------------------- 164 100 120704 73600 282 383 135967 102127 657 100 483552 73600 775 876 498815 149948 |
有关使用 imqcmd 来报告连接服务度量的详细说明,请参见连接服务度量。
要暂停除管理服务之外的其他任何服务(不能暂停管理服务),请使用 pause svc 和 resume svc 子命令。
下面是 pause svc 子命令的语法:
imqcmd pause svc -n serviceName [-b hostName:portNumber]
此子命令暂停在默认代理或指定主机和端口上的代理中运行的指定服务。例如,以下命令暂停在默认代理上运行的 httpjms 服务。
imqcmd pause svc -n httpjms -u admin
暂停服务有如下影响:
代理将停止在已暂停的服务上接受新的客户端连接。如果 Message Queue 客户端尝试打开新的连接,将出现异常。
已暂停的服务上的所有现有连接都将保持活动状态,但是代理将暂停这些连接上的所有消息处理,直到服务恢复。(例如,在服务恢复之前,将禁止客户端尝试使用 send 方法来发送消息。)
代理已接收的任何消息的消息传送状态都将保留。(例如,事务不会中断,消息传送将在服务恢复之后恢复。)
要恢复服务,请使用 resume svc 子命令。
下面是 resume svc 子命令的语法:
imqcmd resume svc -n serviceName[-b hostName:portNumber]