WebSphere MQ常用命令及配置
WebSphere MQ常用命令及配置
一,队列管理命令
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命令详解
//创建本地队列Q
DEFINE QLOCAL (Q)
//将本地队列Q 的最大深度设置为5
ALTER QLOCAL(Q) MAXDEPTH(5)
//重新创建本地队列Q 如果Q已经存在,则将其全部属性重置为缺省属性
DEFINE QLOCAL(Q) REPLACE
//删除本地队列Q
DELETE QLOCAL(Q)
//创建远程队列
DEFINEQREMOTE(QRNAME) RNAME(AAA) RQMNAME(QMGRNAME) XMITQ(QTNAME)
//创建传输队列
defineqlocal (CLV_HQ_TRAN) usage(xmitq) INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(REV_CLV) TRIGTYPE(EVERY) TRIGGER REPLACE
//创建接收端通道C
DEFINECHANNEL (C) CHLTYPE(RCVR)
//创建发送方通道C ,连接对方的IP为10.10.10.10 端口为1414 通道连接的传输队列为XQ
DEFINECHANNEL (C) CHLTYPE(SDR) CONNAME(’10.10.10.10 (1414)’) XMITQ(XQ)
//创建请求方通道
DEFINECHANNEL (D) CHLTYPE(RQSTR) CONNAME(’10.10.10.10 (1414)’)
//创建服务器通道
DEFINECHANNEL (D) CHLTYPE (SVR) xmitq (XQ1)
//创建服务器连接通道
DEFINECHANNEL(E) CHLTYPE (SVRCONN) REPLACE
//显示所有的本地队列
Display qlocal(*)
//显示所有远程对了
display qremote(*)
//显示所有通道
Displaychannel (*)
定义死信队列
DEFINEQLOCAL(QUEUE) DEFPSIST (YES) REPLACE
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