jxnxsdengyu
作者jxnxsdengyu课题专家组·2020-04-24 18:12
系统工程师·江西农信

技术技巧---WebSphere MQ常用命令

字数 2610阅读 1622评论 0赞 1

一,队列管理命令
1、创建队列管理器

crtmqm -q HQ_SVR(-q表示建立默认管理器) 

2、启动队列管理器

strmqm HQ_SVR 

3、用户交互管理界面程序 runmqsc,用end退出交互模式

runmqsc HQ_SVR 

4、放入测试消息命令

amqsput HQ_QUEUE HQ_SVR (将消息逐行放入队列,每行代表一条消息,直到输入空行结束) 

5、删除队列管理器

dltmqm -z HQ_SVR (删除队列管理器-z表示抑止命令执行时发出信息) 

6、停止队列管理器

endmqm HQ_SVR (参数 -c 即等到所有连接都断开后才停止,-i 立即停止,-p 强迫停止) 

7、 显示队列管理器

dspmq 

8、启动监听器

runmqlsr -ttcp -p 1414 -m HQ_SVR & 

9、停止监听

endmqlsr -mHQ_SVR 

10、下面条命令是在windows系统上执行

amqmdain qmgr start HQ_SVR//启动队列管理器  (windows下执行) 


amqmdain auto HQ_SVR//将队列管理器服务设置为自动启动 (windows下执行) 

二、MQ的命令服务器: 所谓MQ命令服务器,是指为用户提供远程管理服务,首先确定远程服务器上有没有(SYSTEM.ADMIN.COMMAND.QUEUE)这个队列,然后创建通道(SYSTEM.ADMIN.SVRCONN)命令如下:

DEFINECHANNEL (SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) MCAUSER('mqm') REPLACE  

1、 启动命令服务器

strmqcsv HQ_SVR 

2、停止命令管理器

endmqcsv HQ_SVR 

3、显示命令服务器

dspmqcsv HQ_SVR 

三、runmqsc命令详解

1、创建本地队列Q

DEFINE  QLOCAL (Q) 

2、将本地队列Q 的最大深度设置为5

ALTER QLOCAL(Q) MAXDEPTH(5) 

3、重新创建本地队列Q 如果Q已经存在,则将其全部属性重置为缺省属性

DEFINE QLOCAL(Q) REPLACE 

4、删除本地队列Q

DELETE QLOCAL(Q) 

5、创建远程队列

DEFINEQREMOTE(QRNAME) RNAME(AAA) RQMNAME(QMGRNAME) XMITQ(QTNAME) 

6、创建传输队列

defineqlocal (CLV_HQ_TRAN) usage(xmitq) INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(REV_CLV) TRIGTYPE(EVERY) TRIGGER   REPLACE 

7、创建接收端通道C

DEFINECHANNEL (C) CHLTYPE(RCVR) 

8、创建发送方通道C ,连接对方的IP为10.10.10.10 端口为1414 通道连接的传输队列为XQ

DEFINECHANNEL (C) CHLTYPE(SDR) CONNAME(’10.10.10.10 (1414)’) XMITQ(XQ) 

9、创建请求方通道

DEFINECHANNEL (D) CHLTYPE(RQSTR) CONNAME(’10.10.10.10 (1414)’) 

10、创建服务器通道

DEFINECHANNEL (D) CHLTYPE (SVR) xmitq (XQ1) 

11、创建服务器连接通道

DEFINECHANNEL(E) CHLTYPE (SVRCONN) REPLACE 

12、显示所有的本地队列

Display qlocal(*) 

13、显示所有远程对了

display qremote(*) 

14、显示所有通道

Displaychannel (*) 

15、定义死信队列

DEFINEQLOCAL(QUEUE) DEFPSIST (YES) REPLACE 

16、设定队列管理器的死信队列

ALTERQMGR DEADQ (QUEUE) 

四、队列管理命令

1、amqsput 从server端将消息放入队列
2、amqsputc 从client 端将消息放入队列
3、amqsget 从server端将消息从队列中取出
4、amqsgetc 从client端将消息从队列中取出
5、amqsbcg 从server端查看消息
6、amqsbcgc 从client端查看消息

说明:amqsput 和amqsputc可以将消息放入队列中,程序把之后的每一行标准输入作为一条独立的消息,读到eof或空行时退出,注意:unix上eof是ctrl+d ,windows上eof是ctrl+z

amqsget和 amqsgetc可以将消息从队列中全部读出并显示,执行完后队列深度应该为0,如果强行中断该程序,比如用ctrl+C强行退出。

amqsbcg和 amqsbcgc 可以详细查阅队列中现有的消息属性及内容而不将其取出,执行完后队列深度不变

amqsget命令格式: amqsget 队列名 队列管理器名 如:

amqsget HQ_QUEUE   HQ_SVR 

五、设置置MaxChannels和MaxActiveChannels属性(最大连接数)

MaxChannels和MaxActiveChannels分别代表队列管理器允许配置的通道的最大个数和允许同时运行的通道的个数,MaxChannels的缺省值是100,MaxActiveChannels的缺省值与MaxChannels相同。如果您的并发通道连接个数超过了100,您需要修改这两个参数。这对于大并发的Client/Server间通讯尤为重要。

在unix平台,修改qm.ini文件,添加如下所示(路径:/var/mqm/qmgrs/HQ_SVR):

Channels: 
MaxChannels= 3000       (最大通道数) 
MaxActiveChannels= 3000   (最大活动通道数) 
PipeLineLength=2 
AdoptNewMCA=ALL 

然后重启MQ

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关问题

相关资料

X社区推广