linux下mq重启命令,MQ常用管理命令

1-说明

本文参考MQ 9.0官方文档,结合平时使用整理,主要是Linux平台下的命令为主,部分平台(例如windows)会特别注明。

2-语法规则

命名规则与限制

- Queue,Process,namelists,clusters,topics,services,authentication information对象最多48字符长

- channel对象名称最大20字符长,storage class最多8字符,CF 结构最多12字符长

- 长命令时,换行使用加号 + 前后需要空格

对象

- 队列管理器,以“SYSTEM.”开头的队列是预定义的队列,以SYSTEM.开头命名的,是系统对象

3-安装与配置

rpm -ivh MQSeriesRuntime*.rpm MQSeriesServer*.rpm ... 根据需要安装必须要的MQ组件

su - mqm 注意MQ管理命令必须是属于mqm组的用户才有权限执行,默认创建了mqm用户

/opt/mqm 默认MQ安装位置

设置环境变量,运行管理命令

cd /opt/mqm/bin

source setmqenv -s 设置变量,以便使用各种MQ管理命令

4-控制命令control Commands

比较控制命令和脚本命令

控制命令是MQ提供的一系列可运行的小程序,它们可以独立地在linux shell中直接运行,对MQ各种对象进行操作,可以完成大部分功能。

其对于队列管理器对象本身的控制、MQ整体配置等功能支持较完善,但对于队列、通道、监听器等管理器中具体的对象控制较弱。

MQSC脚本命令需要在runmqsc启动的脚本解释器中运行,无法单独运行,其对于队列、通道等具体对象控制较强,完成大部分操作。

限制

- linux类系统中,命令是区分大小写的,windows下命令和参数标识(-)不区分大小写,但是参数值区分,例如队列名称

- 多个MQ安装副本时,相关命令设置一般关联当前命令所在的副本

队列管理器

crtmqm QMgrName 创建队列管理器QMgrName,一般采用默认即可

crtmqm -c “测试队列管理器” -ll -q JAVA.QUEUE.MANAGER.1

-c描述信息;-ll线性日志日志,-lc是循环日志(默认);-q设置为默认管理器

crtmqm -ld /var/tmp/logs -md /var/tmp/mqm/qmgrs -q JAVA.QUEUE.MANAGER.1

-ld设置日志路径,默认是/var/mqm/log; -md设置数据文件路径,默认是/var/mqm/qmgrs

crtmqm -q 60000 -q JAVA.QUEUE.MANAGER.1

-q 指明队列管理器管理监听器的端口,SYSTEM.LISTENER.TCP.1

dltmqm QMgrName 删除指定名称的队列管理器

strmqm QMgrName 运行队列管理器

endmqm QMgrName -c,默认受控制的方式停止队列管理器(等所有应用断开连接以及MQI调用处理完成)

endmqm -i QMgrName 立即关闭,(断开连接,等待MQI调用完成,未完成的任务下次启动回滚)

endmqm -p QMgrName 强制终止,一般异常时使用,会导致无法预知的结果

setmqm -m QMgrName -n InstallationName 设置QMgrName队列管理器相关联的安装副本

队列消息

dmpmqmsg:消息查看,导入导出,拷贝,移动等

dmpmqmsg -m QMgrName -i QUEUE1 -f stdout 查看队列QUEUE1消息

dmpmqmsg -m QMgrName -i QUEUE1 -f stdout -dT 查看消息的时间

dmpmqmsg -m QMgrName -i QUEUE1 -f /var/tmp/msg.txt 导出所有消息到一个文件

dmpmqmsg -m QMgrName -i QUEUE1 -f /var/tmp/msg%n 每条消息导出一个文件

dmpmqmsg -m QMgrName -o QUEUE1 -f /var/tmp/msg.txt 导入消息到队列

dmpmqmsg -m QMgrName -i QUEUE1 -o QUEUE2 拷贝消息到其它队列

dmpmqmsg -m QMgrName -i QUEUE1 -o QUEUE2 -r#10 拷贝前10条消息到队列

dmpmqmsg -m QMgrName -I QUEUE1 -o QUEUE2 -T1440 拷贝1天前的消息到队列

dmpmqmsg -m QMgrName -i Q1 -fstdout -T1440,2880 查看前一天的消息T[OlderThanTime][YoungerThanTime]

dmpmqmsg -iMATCH -s keyword1 -s keyword2 -m QMgrName -i Q1 查看匹配keyword1和keyword2的消息

dmpmqmsg -IMATCH -S keyword1 查看不含keyword1的消息

查看队列管理器一些管理信息

dmpmqaut 查看默认队列管理器定义的授权记录信息

dmpmqaut -m QMgrName 查看QMgrName定义的授权记录信息

dmpmqaut -m QMgrName -t channel 查看channel对象的授权记录信息(其它对象,listener|lstr,qmgr,queue|q)

dmpmqcfg -a -m QMgrName 查看队列管理所有配置信息,方便重建和恢复

dmqmqlog -m QMgrName 查看MQ 队列管理器系统日志

dmqmqlog -s nnnn:nnnn:nnnn:nnnn 从特定的LSN(log sequence number,日志序列号)号开始查看默认队列管理器的日志

dspmq 查看当前机器所有的队列管理器

dspmqcsv QMgraName 查看队列管理器目前的运行状态

dspmqfls SYSTEM.ADMIN* 查看默认管理器以 SYSTEM.ADMIN开头的对象文件路径

dspmqfils -m JAVA.QUEUE.MANAGER.1 -t queue queue* 查看名称为queue开头的队列对象的文件目录

dspmqtrn -m QMgrName 查看队列事务信息

dspmqver 查看MQ版本信息(默认是查看server组件和第一个安装副本的)

dspmqver -a 查看所有组件的版本信息

dspmqver -i 查看所有安装副本的信息

mqrc AMQ2045 查看AMQ信息代表的含义

mqrc 2033 查看返回值代表的意义

队列管理器配置文件

队列管理器配置信息:

默认在/var/mqm/mqs.ini文件中,有属性Name(管理名称)、Prefix(数据目录前缀)、Directory(管理器数据目录名称)、DataPath(数据目录完整路径)

dspmqinf QMgrNmae 查看指定队列管理器配置信息

在文件mqs.ini中添加一个名为JAVA.QUEUE.MANAGER.2的队列管理器配置信息

addmqinf -v DataPath=/var/mqm/qmgrs/JAVA!QUEUE!MANAGER!2 +

-v Prefix=/var/mqm +

-v Directory=JAVA!QUEUE!MANAGER!2 +

-v Name=JAVA.QUEUE.MANAGER.2

通过以上两条命令,可以在不同服务器上复制创建出配置一样的队列管理器实例

环境变量

# /opt/mqm/bin/crtmqenv -s 为当前安装副本创建和展示合适的环境变量列表,注意这里并没有设置shell环境

安装信息文件

安装信息配置文件/etc/opt/mqm/mqinst.ini,以下命令主要是该文件,不能直接改动该文件

第一个MQ安装版本自动命名Installation1添加到该文,因为此时crtmqinst命令还未能用;

后续安装可以先配置该文件例如自己命名,然后再安装其它版本,实现多副本安装。

必须以root用户权限来执行。

-n InstallationName:最多16个字符,也就是安装名称最多16个字符

/opt/mqm/bin/crtmqinst -n MyInstallation2 -p /opt/myInstallation2 -d "MQ 第二个副本安装"

在mqinst.ini添加条目,创建一个安装名称为MyInstallation2,安装路径为/opt/myInstallation2的安装实例信息

dspmqinst MyInstallation2这个安装实例状态 `State:Not Available`

因为还未安装,继续安装MyInstallation2实例

# ./mqlicense.sh

# ./crgmqpkg 2 根据当前系统已安装的MQ情况,创建一个需要的安装包的集合

重新打包完成在/var/tmp/mq_rpms/2/x86_64目录下,2是唯一标识安装包的,可以是16个字符内的任意字符串

# cd /var/tmp/mq_rpms/2/x86_64

# rpm --prefix /opt/myInstallation2 -ivh MQSeriesServer_2-8.0.0-2.x86_64.rpm MQSeriesRuntime_2-8.0.0-2.x86_64.rpm

# /opt/myInstallation2/bin/dspmqinst

相关命令:

dltmqinst -n MyInstallation2 -p /opt/myInstallation2 删除指定副本的安装信息(roOt用户)

setmqinst -i -n MyInstallation2 指定MyInstallation2 成为主安装副本

setmqinst -x -n MyInstallation2 取消MyInstallation2 作为主安装副本

dspmqinst 查看本机所有安装副本信息

dpsmqinst -n MyInstallation2 查看副本MyInstallation2的安装信息

mqconfig -v 8.0 检查系统设置是否满足MQ 8.0的安装要求

其它对象命令

runmqsc QmgrName 进入脚本命令执行环境,操作对应的队列管理器,执行MQSC命令

runmqlsr -t tcp -p 1414 -i 127.0.0.1 -m QmgrName 启动队列管理器监听器

runmqchl -c channel1 -m QMgrName 启动指定的通道

5-MQSC命令

MQSC:MQ Script Command,通过命令解释器执行

命令脚本可以管理各种队列管理器对象, 包括queue manager, queues, process definitions,

channels, client connection channels, listeners, services, namelists, clusters,

and authentication information objects.

启动脚本解释器

runmqsc 启动默认管理器的命令解释器

runmqsc -v QmgrName < "/var/mqm/mqsc/commfile.in" 验证文件里脚本命令是否正确

runmqsc QmgrName < "/var/mqm/mqsc/commfile.in" > "/var/mqm/mqsc/mqscfile.out" 执行文件命令并输出到文件(文件语句以分号)

远程队列管理器操作,需要进行配置,这里仅仅列出命令

runmqsc -w 30 -m QMLOCAL QMREMOTE 连接远程的队列管理器进行命令执行

strmqcsv QmgrName 启动脚本命令服务,以便接受远程脚本命令

帮助:

ls 查看当前有哪些命令可以用

DIS 直接敲入命令回车会显示 参数语法提示

命令归纳总结

命令操作的主要对象有11种:(这里只考虑linux、windows,对于z/os和IBM i系列平台命令不考虑)

CHANNEL(通道)、LISTENER(监听器)

queues [QALIAS\QLOCAL\QMODEL\QREMOTE](不同种类队列对象)

SUB(订阅对象)、TOPIC(话题对象)、AUTHINFO(授权对象信息)

SERVICE(服务对象)、PROCESS(进程对象)、COMMINFO(通信信息对象,多播通信需要)

其它可修改可查看对象:

NAMELIST(名称列表)、QMGR(队列管理器对象)

主要的命令操作包括:9种

ALTER(修改)、DEFINE(定义对象)、CLEAR(清除)、DELETE(删除)、DISPLAY或者DIS简写(查看)

RESET(重置)、SET(设置)、START(启动)、STOP(停止)

其它操作:

PING(测试连通)、MOVE(移动)、PURGE(清除)、REFRESH(刷新)、RESOLVE(求解)

基本命令都是:操作+对象+参数

常用命令

队列:

DIS QUEUE(*) 查看当前所有的队列对象

DIS QLOCAL(*) 查看QLOCAL类型的队列对象

DEFINE QLOCAL(QUEUE1) 定义本地队列QUEUE1

DIS QUEUE(QUEUE1) 查看对象QUEUE1的属性信息

DIS QSTATUS(QUEUE1) 查看QUEUE1的运行状态

CLEAR QLOCAL(QUEUE1) 清除队列消息

DELETE QLOCAL(QUEUE1) 删除本地队列

DELETE QLOCAL(QUEUE1) PURAGE 删除队列,即使有提交的消息

队列管理器:

DIS QMGR 查看当前队列管理器的属性信息

DIS QMSTATUS 查看当前队列管理器运行状态

DIS CONN(*) 查看应用连接情况,每个应用连接产生24个字节的唯一id

PING QMGR 发送测试消息给队列管理器的命令服务队列

通道:

通道具有多种类型,不同类型应用场景、支持的参数不一样

CHANNEL可以简写CHL

SVRCONN:服务器连接通道,可接受客户端应用等连接

注意字符串 以单引号或者不加引号(注意中文一定要加),双引号会出错,单引号!

DEFINE CHANNEL(channel1) CHLTYPE(SVRCONN) DESCR('测试通道1') MCAUSER('mquser1') TRPTYPE(TCP)

定义TCP协议的服务器通道,使用系统用户user1访问MQ资源

DIS CHANNEL(*) 查看所有通道信息

DIS CHANNEL(channel1) 查看通道channel1的信息

DIS CHANNEL(*) TYPE(SVRCONN) 查看指定类型的通道信息

SET CHLAUTH(channel1) TYPE(ADDRESSMAP) ADDRESS(127.0.0.1) DESCR('测试授权') USERSRC(MAP) MCAUSER('mquser1')

注意:定义运行127.0.0.1通过通道channel1以系统用户mquser1来访问MQ资源

SET CHLAUTH(channel1) TYPE(USERMAP) CLNTUSER('clientUser1') DESCR('测试授权') USERSRC(MAP) MCAUSER('mquser1')

注意:定义客户端应用以用户clientuser1来通过通道channel1,映射成系统用户mquser1来访问MQ

USERMAP类型只支持 SVRCONN类型通道

DIS CHLAUTH(channel1) 查看通道所有权限认证信息

DIS CHLAUTH(channel1) TYPE(ADDRESSMAP) 查看通道特定类型的权限认证信息

DIS CHLAUTH(channel1) TYPE(USERMAP)

DIS CHSTATUS(channel1) 查看通道状态

PING CHANNEL(channel1) 测试测试消息到队列,仅支持SENDER, SERVER 和CLUSSDR 类型

START CHANNEL(channel1)

STOP CHANNEL(channel1)

DELETE CHANNEL(channel1) 删除通道

监听器:

DEFINE LISTENER(listener1) TRPTYPE(TCP) IPADDR('127.0.0.1') PORT(50005) DESCR('监听器测试')

定义地址127.0.0.1和端口50005的监听器,IPADDR可以省略,默认在所有的本机地址监听

DIS LISTENER(listener1)

或者简写

DIS LSTR(listener1) 查看监听器属性

START LISTENER(listener1) 启动

DIS LSSTATUS(listener1) 查看已启动的监听器运行状态(必须启动)

STOP LISTENER(listener1) 停止监听器

定义对象访问授权信息:

SET AUTHREC PROFILE(CHANNEL1) OBJTYPE(CHANNEL) PRINCIPAL('mquser1') AUTHADD(ALL)

授予用户mquser全部权限访问通道对象channel1

SET AUTHREC PROFILE(CHANNEL1) OBJTYPE(CHANNEL) PRINCIPAL('mquser1') AUTHRMV(PUT,GET)

删除一些权限

SET AUTHREC PROFILE(CHANNEL1) OBJTYPE(CHANNEL) PRINCIPAL('mquser1') AUTHADD(ALL) AUTHRMV(PUT)

授权除了put之外所有权限

OBJTYPE常用:CHANNEL\CLNTCONN\LISTENER\QUEUE\QMGR\RQMNAME\TOPIC等

权限常用:

NONE(没有权限)、ALL(所有权限)、ALLADM(管理员权限)、ALLMQI(MQI调用权限)

BROWSE(从队列查找消息)、CHG(改变对象的属性)

CLR(清除队列或话题)、DLT(删除)、CONNECT(应用连接队列管理器)、DSP(查看对象属性)

GET(读取消息)、INQ(队列信息查询)、PUT(发送消息)、CTRL(启停对象、ping操作)

SUB(订阅)、PUB(发布)

6-MQ常用运维场景及命令(未完继续)

查看队列管理器运行状态

dspmq 查看队列管理器运行(命令)

dsmmq -m JAVA.QUEUE.MANAGER.1 -o all 查看指定队列管理器的运行状态

DIS QMSTATUS ALL 查看队列管理器所有状态信息

属性:

STATUS:运行状态,启动、运行、停顿

CHINIT:通道初始器的运行状态

CMDSERV:命令服务器状态

CONNS:队列管理器的连接数量

STARTDA:启动日期

STARTTI:启动时间

查看队列运行状态

DIS QSTATUS(QUEUE1)

重点关注以下属性:

CURDEPTH:current depth,队列当前深度,队列中消息数量

UNCOMM:显示是否有未提交的队列操作(包括put和get)

QTIME:毫秒数,表明消息放入队列到被读出的间隔时间

IPPROCS: 目前打开该队列进行输入操作的句柄数量,不包括打开浏览的

OPPROCS:打开进行输出...

LGETDATE:队列管理器启动后,从该队列get消息的最近日期

LGETTIME:最近get时间

LPUTDATE:队列管理器启动后,put消息到该队列的最近日期

LPUTTIME:最近put时间

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值