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时间

linux下mq重启命令,MQ常用管理命令相关推荐

  1. ps efgrep mysql 命令_mysql常用管理命令

    安装直接yum install mysql-server yum install mysql service mysqld start //启动mysql服务 登录mysql -u root -p 初 ...

  2. java 本地 mq_windows、linux下java连接本地MQ队列实现输入(二)

    windows.linux下java连接本地MQ队列实现输入(二),上一篇文章环境为windows,这一篇将说一下linux环境下java连接本地队列实现输入输出,其实大同小异,但是八戒在这里有很多心 ...

  3. Dell服务器RAID常用管理命令总结 linux

    Dell服务器常用管理命令总结 准备 新版本的 MegaCli-1.01.24-0.i386.rpm 会把程序安装在/opt下,可以自定义安装目录,例如: rpm --relocate /opt/=/ ...

  4. linux下apache服务器的配置和管理(启动、重启、中断服务)

    2019独角兽企业重金招聘Python工程师标准>>> linux下apache服务器的配置和管理 一.两个重要目录: Apache有两个重要的目录: 1.配置目录/etc/http ...

  5. Linux学习笔记之环境配置和常用管理命令

    一.环境配置 修改ip地址(略过) 1.网络通信命令 <1> ping 测试网络的连通性 ping 选项 IP地址 -c 指定发送次数 <2> ifconfig 查看和设置网卡 ...

  6. Dell服务器RAID常用管理命令总结

    介绍 MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid 上各磁盘状态,等等.通常,我们对硬盘当前的状态不太好 ...

  7. Linux下ps查找进程用kill终止命令

    Linux下ps查找进程用kill终止命令<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:offic ...

  8. Docker的常用管理命令Docker将数据挂载到容器的三种方式

    文章目录 镜像管理命令 容器管理常用命令 docker run常用参数 Docker run的其他参数 docker 创建容器命令 容器资源限制 docker管理容器常用命令 docker将数据挂载到 ...

  9. 查看linux的用户 7.2,linux下查看用户登入系统相关命令及编写脚本(七)

    linux下查看用户登入系统相关命令及编写脚本(七) 查看用户登入系统日志 1.w 显示谁登入并正在做什么事 2.who 显示谁登入 -r:显示系统运行级别 3.sleep 睡眠命令(sleep 5 ...

  10. Linux下必须知道的11个网络命令

    Linux下必须知道的11个网络命令 作者:佚名 字体:[增加 减小] 来源:互联网 时间:03-06 15:54:29 我要评论 无论你是要下载文件.诊断网络问题.管理网络接口,还是查看网络的统计数 ...

最新文章

  1. 中通知设置响铃_iOS 13.1.3 正式版:解决来电不响铃问题
  2. Go 语言编程 — 并发 — 同步原语与锁
  3. 本机发邮件测试mail函数
  4. 深究AngularJS——ui-router详解
  5. CSLA .NET 3.6支持Silverlight 2
  6. 深度探秘 从 Auto Labeler 挖掘 Tesla 全自动驾驶的工作机制
  7. 使用 SAP Business Application Studio 搭建 CAP Java 开发环境
  8. 有趣的图说 HashMap,普通人也能看懂
  9. PLSQL Developer 安装与配置
  10. Python之numpy模块array简短学习
  11. Hadoop学习路径
  12. 漫画小程序源码全开源商业版
  13. cocos creator 台球小游戏
  14. 手机sim卡插到电脑上网_怎么用手机卡在电脑上上网
  15. SpringCloud入门简介
  16. scala case 常用简写
  17. 元宇宙iwemeta:元宇宙数字人实践落地应用场景
  18. 企业微信hook接口,协议开发,群操作功能教程
  19. Openstack安装与部署三:本地源配置
  20. Windows Media Player控件的所有属性和方法

热门文章

  1. 腾讯天气前后端交互案例
  2. 综合体无线网络覆盖的解决方案有什么?
  3. Python编程之静态变量的使用
  4. 一个带时间的相册页面(仿小米相册)
  5. 人工智能Python开发工程师课程体系
  6. 成功跳槽靠的是什么?
  7. Python学习:定义函数的默认参数和可变参数
  8. mysql如何替换字符串中换行符及回车符
  9. Android Audio开发——音频管理器(三)
  10. Linux下关闭、启动weblogic服务