MQ常用命令与实操练习.docx
《MQ常用命令与实操练习.docx》由会员分享,可在线阅读,更多相关《MQ常用命令与实操练习.docx(9页珍藏版)》请在冰豆网上搜索。
![MQ常用命令与实操练习.docx](https://file1.bdocx.com/fileroot1/2022-12/12/eb559d89-4754-41ed-bce3-54ddc93355c3/eb559d89-4754-41ed-bce3-54ddc93355c31.gif)
MQ常用命令与实操练习
一、队列管理器常用操作命令
1、通过输入以下命令来创建名为QM_APPLE的缺省队列管理器:
crtmqm-qQM_APPLE
此时会显示消息,告诉您已经创建了队列和缺省WebSphereMQ对象。
***启动队列管理器:
通过输入以下命令来启动此队列管理器(因为新创建的队列管理器还没有启动):
strmqmQmgrName
此时会显示一条消息,告诉您何时启动了该队列管理器。
QmgrName为需要启动的队列管理器名称。
注:
如果启动指定的队列管理器则用strmqmQM_APPLE,如果是启动默认的队列管理器,可以不带其名字
-q是指创建缺省的队列管理器
注:
删除队列管理器:
dltmqmQM_APPLE
**停止队列管理器
endmqmQmgrName受控停止
endmqm–iQmgrName立即停止
endmqm–pQmgrName强制停止
**显示队列管理器
dspmq–mQmgrName
运行MQ命令
runmqscQmgrName
如果是默认队列管理器,可以不带其名字
注:
dspmq则是显示所有的队列管理器
二、队列管理器对象常用操作命令(MQSC)
MQSC命令是用来管理队列管理器对象,包括队列管理器本身、通道、队列和进程定义。
可以使用runmqscQmgrName向队列管理器QmgrName发出MQSC命令。
命令的输入有两种方式,一种是交互式命令,另一种是从ASCII文本文件中重定向输入命令。
在这两种方式中,命令的格式是相同的。
运行MQSC命令
runmqscQmgrName
如果是默认队列管理器,可以不带其名字
输入end命令来停止MQSC:
***队列管理*****
1:
创建本地队列:
defineqlocal(Q1)replace
注:
定义持久性队列:
DEFINEQLOCAL(QNAME)DEFPSIST(YES)REPLACE
如果已经定义好了队列,但需要修改该队列的属性,可以使用later命令操作。
如,现在将已经定义好的队列Q1定义为持久性队列可以做如下操作:
ALTERQLOCAL(Q1)DEFPSIST(YES)
可使用alter?
察看可修改对象,再用alter对象名?
察看可修改对象的参数。
2:
往队列中放消息
amqsputQNameQmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
比如:
amqsputQ1QM_APPLE
3:
从队列中取出消息
amqsgetQNameQmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
注:
在运行该命令时,不要先运行runmqsc等。
。
而是在普通的命令窗口,启动MS-DOS窗口,进入到c:
\Program Files\IBM\WebSphereMQ\bin目录下,需要根据实际情况填写安装目录。
4:
清除队列中的所有消息
CLEARQLOCAL(QNAME)
注:
该命令是运行在runmqsc命令之后
5:
显示队列的所有属性
DISPLAYQUEUE(QNAME)[ALL]
6:
删除队列
DELETEQLOCAL(QNAME)
DELETEQREMOTE(QRNAME)
***传输队列管理
1:
定义传输队列
DEFINEQLOCAL(Q_TRANSFER)USAGE(XMITQ)
注:
Q_TRANSFER:
传输队列名
下面定义一个输入队列并带触发器
DEFINEQLOCAL(Q_TRANSFER)USAGE(XMITQ)DEFPSIST(YES)INITQ(SYSTEM.CHANNEL.INITQ)TRIGDATA(DP_RCHANNEL)REPLACE
注:
参数1:
传输队列名称(Q_TRANSFER)
参数5:
触发器数据(DP_RCHANNEL),也就是触发后要启动的通道。
2:
在传输入队列上定义触发器
DPCIS_Q_TRANSFER:
传输队列
触发器数据:
DP_RCHANNEL即:
发送通道,触发时启动该通道
alterqlocal(DPCIS_Q_TRANSFER)TRIGDATA('DP_RCHANNEL')TRIGTYPE(every)TRIGGERinitq('SYSTEM.CHANNEL.INITQ')
****远程队列管理
通过输入以下命令来定义远程队列定义:
defineqremote(Q1)rname(Q1)rqmname(QM_APPLE)xmitq(QM_APPLE)
注:
参数1:
队列名称(发送方远程队列名)
参数2:
远程队列(接收方的本地接收队列名)
参数3:
远程队列管理器(接收方队列管理器名)
参数4:
传输队列(发送方传输队列名)
****通道管理*********
1:
创建接收方通道
definechannel(channelname)chltype(RCVR)replace
注:
参数1:
接收方通道名称
replace:
表示有该通道了替换
2:
创建发送方通道
definechannel(DP_RCHANNEL)chltype(SDR)conname('10.101.2.3(1414)')xmitq(Q_TRANSFER)replace
其中CHLTYPE可以是:
SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。
注:
通道名称:
DP_RCHANNEL(发送方通道的名称)
传输队列:
Q_TRANSFER(发送方传输队列的名称)
连接名称:
conname中填写目标地址和端口号
3:
启动通道
startchannel(QM_ORANGE.QM_APPLE)
QM_ORANGE.QM_APPLE为已经创建好的通道名称
注:
发送通道与对应的接收通道名称必须相同,创建好的发送通道一旦启动,对应的接收通道会自动运行。
4:
查看通道状态
dischs(*)
注:
无法察看不活动的通道状态。
*****侦听器管理*******
1:
定义侦听器
DEFINELISTENER(TCPLS1)TRPTYPE(TCP)IPADDR(192.168.8.34)PORT(1414)REPLACE
注:
侦听器名称:
TCPLS1(所创建侦听器名称)
传输协议:
TCP(所使用协议,有TCP/LU6.2/NETBIOS/SPX)
侦听地址:
192.168.8.34(侦听ip)
端口:
1414(侦听的端口号,及队列管理器的端口)
2:
启动侦听器
startlistener(TCPLS1)
3:
显示侦听器信息
displaylistener(tcpls1)
==================================================
---------操作练习-------------------------------
==================================================
一.在队列管理器QML_1上创建远程队列Q1,在队列管理器QML_2上创建本地队列Q2来接收Q1发送的消息
1.通过输入以下命令来启用MQSC命令:
创建传输队列
runmqscQML_1
输入以下命令:
DEFINEQLOCAL(Q_T)USAGE(XMITQ)
此时会显示消息,告诉您已经创建了队列和缺省WebSphereMQ对象。
通过输入以下命令来停止MQSC:
end
注:
参数1:
Q_T传输队列名称
QML_1为队列管理器名称
2.通过MQSC命令创建远程队列
defineqremote(Q1)rname(Q2)rqmname(QML_2)xmitq(Q_T)
注:
参数1:
队列名称(发送方远程队列名)
参数2:
远程队列(接收方的本地接收队列名)
参数3:
远程队列管理器(接收方队列管理器名)
参数4:
传输队列(发送方传输队列名)
3、通过输入以下命令来定义接收通道:
使用如下命令打开接收方队列管理器QML_2的MQSC命令窗口:
runmqscQML_2
定义接收方队列管理器QML_2的接收通道:
definechannel(QML_1.QML_2)chltype(RCVR)trptype(TCP)
启动缺省的监听:
startlistener(system.default.listener.tcp)
4、通过输入以下命令来定义发送方通道:
使用如下命令打开接收方队列管理器QML_1的MQSC命令窗口:
definechannel(QML_1.QML_2)chltype(sdr)conname('192.168.8.34(1415)')xmitq(Q_T)trptype(tcp)
5、通过输入以下命令来启动通道:
startchannel(QML_1.QML_2)
6、使用MQSC来将测试消息放入队列
启动amqsput样本程序,如下所示:
在Linux上,切换到/opt/mqm/samp/bin目录,然后输入命令:
./amqsputQ1
在Windows上,切换到c:
\Program Files\IBM\WebSphereMQ\bin输入命令:
amqsputQ1
此时会显示以下消息:
样本amqsput0启动
目标队列为Q1
在一行或多行上输入某些消息文本,然后按Enter键两次。
此时会显示以下消息:
样本amqsput0结束
8、启动amqsget样本程序,如下所示:
在Linux?
上,切换到/opt/mqm/samp/bin目录,然后输入命令:
./amqsgetQ1
在Windows?
上,切换到c:
\Program Files\IBM\WebSphereMQ\bin输入命令:
amqsgetQ2
屏幕将会显示Q2接收到的消息
二.在本地对两个队列管理器进行集群设置
下面我们来具体介绍一下MQ群集的配置过程:
说明:
QML_1的地址:
192.168.8.34(1414)
QML_2的地址:
192.168.8.34(1415)
示例一:
最简单的MQCluster群集
图一
下面介绍如何搭建只有2个队列管理器的群集。
群集名称为CL_Test1
命令行执行:
crtmqm
crtmqmQML_1
crtmqmQML_2
启动队列管理器:
strmqm
strmqmQML_1
strmqmQML_2
为队列管理器QML_1和QML_2分别创建群集发送通道和群集接收通道
在QML_1上执行MQSC命令:
DEFINECHANNEL(TO_QML_2)CHLTYPE(CLUSSDR)TRPTYPE(TCP)CONNAME('192.168.8.34(1415)')CLUSTER(CL_Test1)
DEFINECHANNEL(TO_QML_1)CHLTYPE(CLUSRCVR)TRPTYPE(TCP)CONNAME('192.168.8.34(1414)')CLUSTER(CL_Test1)
在QML_2上执行MQSC命令:
DEFINECHANNEL(TO_QML_1)CHLTYPE(CLUSSDR)TRPTYPE(TCP)CONNAME('192.168.8.34(1414)')CLUSTER(CL_Test1)
DEFINECHANNEL(TO_QML_2)CHLTYPE(CLUSRCVR)TRPTYPE(TCP)CONNAME('192.168.8.34(1415)')CLUSTER(CL_Test1)
在QML_1和QML_2上分别执行如下MQSC命令,指定QML_1和QML_2为完全仓储库:
Alterqmgrrepos(CL_Test1)
在QML_1上执行如下MQSC命令,创建群集共享队列TESTQ_1:
DEFINEql(TESTQ_1)cluster(CL_Test1)
创建并启动监听器:
在队列管理器QML_1中使用QMSC命令:
DEFINELISTENER(TCPLS1)TRPTYPE(TCP)IPADDR(192.168.8.34)PORT(1415)REPLACE
startlistener(TCPLS1)
在队列管理器QML_2中使用QMSC命令:
DEFINELISTENER(TCPLS1)TRPTYPE(TCP)IPADDR(192.168.8.34)PORT(1414)REPLACE
startlistener(TCPLS1)
验证群集功能:
在QML_2上使用amqsput命令向TESTQ_1队列发送一条消息,命令如下:
amqsputTESTQ_1QML_2
hello!
ThismessagesendingfromQML_2
在QML_1上使用amqsget命令读取QML_2发送过来的消息:
amqsgetTESTQ_1QML_1