MQ常用命令

合集下载

MQ常用命令

MQ常用命令

MQ常用命令以下为MQ常用命令:查看发送通道:display channel(xxx)查看队列管理器: dspmq停止队列管理器:endmqm QMEMBFE删除队列管理器:dltmqm QMEMBFE重置发送通道:reset channel(xxxx)启动通道:start chl(xxxx)查看通道: dis chl(xxx)查看所有通道 dis chl(*) 或 dis chs(*)查看所有监听:dis listener(*) 或 dis lsstatu(listentName)查看本地队列:dis qlocal(xxxxx) 查看其中的CURDEPTH(0),若其>0,则说明本地队列堵塞查看死信队列:dis qlocal(DEADQ)查看本地队列:dis qlocal(*)查看本地队列深度: display ql(xxx) curdepth查看远程队列深度:display qr(xxx) curdepth查看ccsid: display qmgr all显示所有远程队列: display qremote(*)显示所有通道: display channel(*)ping通道:ping CHANNEL(xxxx)清空队列内容:clear Qlocal(Qname)(需运行 runmqsc)删除队列:delete qlocal(Qname)更改监听:alter listener(xxxx) TRPTYPE(TCP) PORT(1417) CONTROL(QMGR)停止监听: end LISTENER(xxxx)查看通道当前序列号: dis chs(xxxx) curseqno查看通道所有状态: dis chs(xxxxx) all。

mq命令

mq命令
TRIGDPTH(1) TRIGMPRI(0)
QDEPTHHI(80) QDEPTHLO(20)
QDPMAXEV(ENABLED) QDPHIEV(DISABLED)
XMITQ(QT_NT)
创建发送方通道,其传输队列为QT_NT,远程主机地址为10.10.10.2,侦听端口为1414
DEFINE CHANNEL(SDR_NT) CHLTYPE(SDR)+
CONNAME(‘10.10.10.2(1414)’) XMITQ(QT_NT) REPLACE
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
启动通道
runmqchl –c ChlName –m QmgrName
启动侦听
runmqlsr –t TYPE –p PORT –m QMgrName
停止侦听
endmqlsr -m QmgrName
MQSeries命令
8.退出命令行使用 end 命令。

一.MQ基本操作
MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。其基本的操作方法如下:
创建队列管理器
crtmqm –q QMgrName
-q是指创建缺省的队列管理器
删除队列管理器
远程队列定义
DEFINE QREMOTE(QRNAME) +
RNAME(AAA) RQMNAME(QMGRNAME) +
XMITQ(QTNAME)
定义模型队列
DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)
定义本地传输队列

mq操作命令

mq操作命令

1. 启动命令行QMEMBFE是QM名字runmqsc QMEMBFE (进入MQ的命令行)显示队列DISPLAY QUEUE(*)显示通道DISPLAY CHANNEL(*)显示侦听器DISPLAY LISTENER(*)SDR发送方通道,RCVR接收方通道2. 创建MQMcrtmqm -lf 16384 -lp 10 -ls 10 QMEMBFE3. 启动MQMstrmqm QMEMBFE3.1删除MQMDltmqm QMEMBFEStart chl(通道名) 启动通道4. 运行脚本runmqsc QMEMBFE < mbfemq.sc5. 确定测试商业银行所对应接入点的通道状态是否为running#runmqsc QMEMBFEdis chs(5012900001.GW2900)dis chs(GW2900.5012900001)dis chstatus(ChannelName) 查看通道状态dis chs(5012900001.GW2900)1 : dis chs(5012900001.GW2900)AMQ8420: 通道状态未找到。

dis chs(GW2900.5012900001)2 : dis chs(GW2900.5012900001)AMQ8417: 显示通道状态细节。

CHANNEL(GW2900.5012900001) CHLTYPE(RCVR)CONNAME(172.26.190.4) CURRENTRQMNAME(QME2900) STATUS(RUNNING) SUBSTATE(RECEIVE) XMITQ( )172.26.190.4 14181. 创建队列管理器crtmqm -q QMA(-q表示QMA为默认队列管理器)2. 启动队列管理器strmqm QMA(对于默认队列管理器,则为strmqm )Q 3. 启动管理器平台runmqsc QMA4. 定义本地队列define qlocal(queueA)若用于队列管理器之间进行通信,这应为define qlocal(queue1) usage(xmitq)5. 定义远程队列define qremote(queue.remote) rname(.queue)rqmname(queueB)xmitq(queue1)(.queue为远程队列管理器queueB中的本地队列)6. 定义发送端通道define channel(queueA.queueB)chltype(sdr)conname(192.168.1.90(1414)) xmitq(queueA)trptype(tcp)7. 定义接受方通道define channel(queueA.queueB) chltype(rcvr) trptype(tcp)8. 更改侦听端端口号alter listener(system.default.listener.tcp)trptype(tcp)port(1415)9. 启动侦听start listener(system.default.listener.tcp)在命令行c:\runmqlsr10. 列出侦听状态display lsstatus(*)11. 测试,向队列中放入消息amqsput queue_name queue_manager_name从队列中取出消息amqsget queue_name queue_manager_name12. 在服务器方建立用于客户方链接的通道define channel(channel2) chltype(svrconn) trptype(tcp)mcauser()13. 在客户机方,使用MQSERVER定义客户机链接通道(如使用了ActiveDirectory服务支持,则可略过本步骤)SET MQSERVER=CHANNEL1/TCP/192.168.1.90(1414) //Windowsexport MQSERVER=’CHANNEL1/TCP/server-hostname(port)’//linux15. 测试,向队列中放入消息amqsputc queue_name queue_manager_name从队列中取出消息amqsgetc queue_name queue_manager_name16. 关闭队列管理器endmqm mqm_nameendmqm -i mqm_name17. 结束所有侦听进程endmqlsr -m mqm_name18. 查看WebSphere MQ版本号dspmqver19. 查看已有的MQ管理器dspmq20. 启动WebSphere MQ Explorerstrmqcfg21.查看通道的消息序列DIS CHS(CHANNEL_NAME) CURSEQNO;。

IBMMQ常用命令

IBMMQ常用命令

IBMMQ常用命令IBM MQ是一款广泛应用于企业级应用程序开发和数据传输的消息队列软件。

该软件具有出色的可扩展性和稳定性,可满足不同规模和需求的企业应用场景。

为了更好地管理和操作IBM MQ,下面将介绍IBMMQ常用命令。

1. crtmqm命令crtmqm命令是创建IBM MQ队列管理器的命令。

例如,要创建一个名为QMGR1的队列管理器,我们可以使用以下命令:crtmqm QMGR12. strmqm命令strmqm命令是启动IBM MQ队列管理器的命令。

例如,要启动名为QMGR1的队列管理器,我们可以使用以下命令:strmqm QMGR13. endmqm命令endmqm命令是停止IBM MQ队列管理器的命令。

例如,要停止名为QMGR1的队列管理器,我们可以使用以下命令:endmqm QMGR14. runmqsc命令runmqsc命令是启动IBM MQ命令行管理工具的命令。

我们可以在命令行模式下使用该命令来执行各种MQ管理任务。

例如,要启动runmqsc,我们可以使用以下命令:runmqsc QMGR15. crtmqobj命令crtmqobj命令是创建IBM MQ队列和通道的命令。

例如,要创建一个名为MYQUEUE的本地队列,我们可以使用以下命令:crtmqobj QMGR1 QLOCAL(MYQUEUE)6. dltmqobj命令dltmqobj命令是删除IBM MQ队列和通道的命令。

例如,要删除名为MYQUEUE的本地队列,我们可以使用以下命令:dltmqobj QMGR1 QLOCAL(MYQUEUE)7. display命令display命令是显示IBM MQ队列管理器、队列和其他对象的信息的命令。

例如,要显示名为QMGR1的队列管理器的配置信息,我们可以使用以下命令:display qmgr QMGR18. Inquire命令Inquire命令是查询IBM MQ队列管理器、队列和其他对象的信息的命令。

MQ常用命令

MQ常用命令

查看死信队列:dis qlocal(DEADQ)
查看本地队列:dis qlocal(*)
查看本地队列深度: display ql(xxx) curdepth
查看远程队列深度:display qr(xxx) curdepth
查看ccsid: display qmgr all
更改监听: alter listener(xxxx) TRPTYPE(TCP) PORT(1417) CONTROL(QMGR)
停止监听: end LISTENER(xxxx)
查看通道当前序列号: dis chs(xxxx) curseqno
查看通道所有状态: dis chs(xxxxx) all
查看通道: dis chl(xxx)
查看所有通道 dis chl(*) 或 dis chs(*或 dis lsstatu(listentName)
查看本地队列:dis qlocal(xxxxx) 查看其中的 CURDEPTH(0),若其>0,则说明本地队列堵塞
显示所有远程队列: display qremote(*)
显示所有通道: display channel(*)
ping通道:ping CHANNEL(xxxx)
清空队列内容:clear Qlocal(Qname)(需运行 runmqsc)
删除队列:delete qlocal(Qname)
以下为MQ常用命令:
查看发送通道:display channel(xxx)
查看队列管理器: dspmq
停止队列管理器:endmqm QMEMBFE
删除队列管理器:dltmqm QMEMBFE
重置发送通道:reset channel(xxxx)

RocketMQ常用命令

RocketMQ常用命令

RocketMQ常⽤命令在bin⽬录下的mqadmin命令,可以进⾏创建、修改topic,更新broker的配置信息,查询特定消息等各种操作。

1. 创建Topic指令 :updateTopic⽤法:sh mqadmin updateTopic -n 192.168.1.100:9876参数是否必填说明-b如果-c为空,则必填broker 地址,表⽰topic 建在该broker-c如果-b为空,则必填cluster 名称,表⽰topic 建在该集群(集群可通过clusterList 查询)-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...-p否指定新topic 的权限限制( W|R|WR ) -r 否可读队列数(默认为8)-w否可写队列数(默认为8)-t是opic 名称(名称只能使⽤字符 ^[a-zA-Z0-9_-]+$ )2. 删除Topic指令 :deleteTopic参数是否必填说明-c是cluster 名称,表⽰删除某集群下的某个topic (集群可通过clusterList 查询)-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;…-t是topic 名称(名称只能使⽤字符 ^[a-zA-Z0-9_-]+$ )3. 创建(修订)订阅组指令 :updateSubGroup参数是否必填说明-b如果 –c 为空,则必填broker 地址,表⽰订阅组建在该broker-c如果 –b 为空,则必填cluster名称,表⽰topic 建在该集群(集群可通过clusterList查询)-d否是否容许⼴播⽅式消费-g是订阅组名-i否从哪个broker 开始消费-m否是否容许从队列的最⼩位置开始消费,默认会设置为false-q否消费失败的消息放到⼀个重试队列,每个订阅组配置⼏个重试队列-r 否重试消费最⼤次数,超过则投递到死信队列,不再投递,并报警-s否消费功能是否开启-w 否发现消息堆积后,将Consumer 的消费请求重定向到另外⼀台Slave 机器-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...4. 删除订阅组配置指令: deleteSubGroup参数是否必填说明-b 如果–c 为空,则必填broker 地址,表⽰订阅组建在该broker-c 如果–b 为空,则必填cluster 名称,表⽰topic建在该集群(集群可通过clusterList查询)-g是订阅组名-h否打印帮助-n 是nameserve 服务地址列表,格式ip:port;ip:port;...5. 更新Broker 配置⽂件指令 :updateBrokerConfig参数是否必填说明-b 如果–c为空,则必填broker 地址,表⽰订阅组建在该broker-c 如果–b 为空,则必填cluster名称,表⽰topic 建在该集群(集群可通过clusterList查询)-k 是 key 值-v否value 值-h否打印帮助-n 是nameserve 服务地址列表,格式ip:port;ip:port;...6. 查看Topic 列表信息指令 :topicList参数是否必填说明-h否打印帮助-n 是nameserve 服务地址列表,格式ip:port;ip:port;...7. 查看Topic 路由信息指令 :topicRoute参数是否必填说明-t是topic 名称-h否打印帮助-n 是nameserve 服务地址列表,格式ip:port;ip:port;...8. 查看Topic 统计信息指令 :topicStats参数是否必填说明-t是topic 名称-h否打印帮助-n 是nameserve 服务地址列表,格式ip:port;ip:port;...9. 查看Broker 统计信息指令 :brokerStats参数是否必填说明-b是 broker 地址-h否打印帮助-n 是nameserve 服务地址列表,格式ip:port;ip:port;...10. 根据消息ID 查询消息指令 :queryMsgById参数是否必填说明-i是消息id-h否打印帮助-n 是nameserve 服务地址列表,格式ip:port;ip:port;...11. 根据消息Key 查询消息指令 :queryMsgByKey参数是否必填说明-f否被查询消息的截⽌时间-k是msgKey-t是topic 名称-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...12. 根据Offset 查询消息指令 :queryMsgByOffset参数是否必填说明-b 是Broker 名称,表⽰订阅组建在该broker(这⾥需要注意填写的是broker 的名称,不是broker 的地址,broker名称可以在clusterList 查到-i是query 队列id-o是offset 值-t是topic 名称-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...13. 查询Producer 的⽹络连接该命令只打印当前与cluster 连接的producer ⽹络连接信息指令 :producerConnection参数是否必填说明-g是⽣产者所属组名-t是topic 名称-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...14. 查询Consumer 的⽹络连接该命令只打印当前与cluster 连接的consumer ⽹络连接信息指令 :consumerConnection参数是否必填说明-g是消费者所属组名-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...15. 查看订阅组消费状态指令 :consumerProgress参数是否必填说明-g是消费者所属组名-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...16. 查看集群消息指令 :clusterList参数是否必填说明-m否打印更多信息-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...17. 添加(更新)KV 配置信息指令 :updateKvConfig参数是否必填说明-k是key 值-v是value 值-s是Namespace 值-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...18. 删除KV 配置信息指令 :deleteKvConfig参数是否必填说明-k是key 值-s是Namespace 值-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...19. 添加(更新)Project group 配置信息指令 :updateProjectGroup参数是否必填说明-p是project group 名-i否服务器ip-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...20. 删除Project group 配置信息指令 :deleteProjectGroup参数是否必填说明-p是project group 名-i否服务器ip-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...21. 取得Project group 配置信息指令 :getProjectGroup参数是否必填说明-p是project group 名-i否服务器ip-i否服务器ip -h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...22. 设置消费进度根据时间来设置消费进度,设置之前要关闭这个订阅组的所有consumer,设置完再启动,⽅可⽣效指令 :resetOffsetByTime参数是否必填说明-f否通过时间戳强制回滚(true|false),默认为true-s是时间戳-g是消费者所属组名-t是topic 名称-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...23. 清除特定Broker权限指令 :wipeWritePerm参数是否必填说明-b是broker 地址-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:port;...24. 获取Consumer消费进度该命令只打印当前与cluster 连接的consumer 的消费进度指令 :getConsumerStatus参数是否必填说明-g是消费者所属组名-t是查询主题-i否Consumer 客户端ip-h否打印帮助-n是nameserve 服务地址列表,格式ip:port;ip:portt;...。

mq常用命令

mq常用命令

mq常用命令一、连接管理命令1. mqsc:进入MQSC模式,用于管理MQ对象。

2. runmqsc:运行MQSC脚本。

3. strmqm:启动MQ队列管理器。

4. endmqm:停止MQ队列管理器。

5. dspmq:显示当前系统中的MQ队列管理器。

6. crtmqm:创建新的MQ队列管理器。

7. dltmqm:删除指定的MQ队列管理器。

二、队列管理命令1. crtlq:创建本地队列。

2. dltmq:删除本地队列。

3. dmpmqmsg:显示队列中的消息。

4. amqmsrvn:启动MQ服务。

5. amqmdnet:启动MQ分布式网络服务。

6. amqmdgin:启动MQ远程订阅服务。

三、消息处理命令1. amqsput:向队列发送消息。

2. amqsget:从队列接收消息。

3. amqssub:订阅消息。

4. amqssubc:取消订阅消息。

5. amqsgrep:根据消息内容过滤消息。

四、通道管理命令1. crtmqchs:创建MQ通道。

2. dltmqchs:删除MQ通道。

3. strmqmchs:启动MQ通道。

4. endmqmchs:停止MQ通道。

5. dspmqchs:显示MQ通道。

6. amqssslc:启用SSL加密通道。

五、安全管理命令1. setmqaut:设置队列对象的授权。

2. dspmqaut:显示队列对象的授权。

3. setmqaut:设置队列管理器的授权。

4. dspmqaut:显示队列管理器的授权。

5. setmqaut:设置通道的授权。

6. dspmqaut:显示通道的授权。

六、日志管理命令1. amqsbcg:启用MQ日志。

2. amqsbcgc:停用MQ日志。

3. amqsbcgd:调整MQ日志大小。

4. dspmqlog:显示MQ日志。

七、监控命令1. dspmqrte:显示MQ路由器状态。

2. dspmqspl:显示MQ任务状态。

3. dspmqsrv:显示MQ服务状态。

IBM MQ常用命令

IBM MQ常用命令
再有看看远程队列中的属性是不是配置错误,如rname,rqname,xmitq等属性。
也有可能是发送接收队列的消息序列号不一致。如果不一致做一下reset操作。
还有可能是上一批消息没有提交。可以做一个resolve操作。
QR1 -> QT1 -> QL2
消息被放入到远程队列中,远程队列通过传输队列传输,最后传输到QM2中的本地队列。
出现问题,我们怎么办?
1 不能放入消息。
一般这种情况应该大部分是远程队列中的传输队列那个参数配置的不正确。
还有可能是队列的允许放入这个参数设置成了禁止。基本上就这两种情况。
更改属性
ALTER QMGR DESCR(‘NEW DESCRIPTION’)
ALTER QLOCAL(QNAME) PUT(DISABLED)
ALTER QALIAS(QNAME) TARGQ(TARGQNAME)
删除队列
DELETE QLOCAL(QNAME)
DELETE QREMOTE(QRNAME)
INITQ(SYSTEM.CHANNEL.INITQ)+
PROCESS(PROCESSNAME) REPLACE
创建进程定义
DEFINE PROCESS(PRONAME) +
DESCR(‘STRING’)+
APPLTYPE(WINDOWSNT)+
APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)
常用命令
创建队列管理器
crtmqm –q QMgrName
-q是指创建缺省的队列管理器
删除队列管理器

MQ 常用命令

MQ 常用命令

1. 队列管理器1.1. 创建队列管理器命令:crtmqm <qmgrName>示例:1.2. 启动队列管理器命令:strmqm <qmgrName>停止队列管理器命令:endmqm -c|-w|-i|-p <qmgrName>参数说明:-c 受控关闭(或停顿关闭)。

这是缺省值。

队列管理器停止,但仅当所有应用程序已断开连接后才停止。

当前正在处理的任何MQI 调用已完成。

立即将控制权返回给您,并且不通知您队列管理器是何时停止的。

对通过服务器连接通道连接的任何客户机应用程序的影响等效于以QUIESCE 方式发出的STOP CHANNEL 命令。

-w 等待关闭。

此类型的关闭等效于受控关闭(除了仅当队列管理器已停止后才将控制权返回给您之外)。

当执行关闭时,您将接收到消息:等待队列管理器qmName 结束。

对通过服务器连接通道连接的任何客户机应用程序的影响等效于以QUIESCE 方式发出的STOP CHANNEL 命令。

-i 立即关闭。

队列管理器在完成所有当前正在处理的MQI 调用后停止。

任何在该命令发出后发出的MQI 请求都将失败。

当队列管理器再次启动时,任何未完成的工作单元将回滚。

队列管理器结束后返回控制权。

对通过服务器连接通道连接的任何客户机应用程序的影响等效于以FORCE 方式发出的STOP CHANNEL 命令。

-p 抢先关闭。

仅在意外情况下使用此类型的关闭。

例如,当队列管理器在常规endmqm 命令下未停止。

队列管理器可以停止而不等待应用程序断开连接或MQI 调用完成。

这可能会产生WebSphere MQ 应用程序的不可预测的结果。

关闭方式设置为立即关闭。

如果队列管理器稍后未停止,关闭方式将升级,且终止所有剩余的的队列管理器进程。

对通过服务器连接通道连接的任何客户机应用程序的影响等效于以TERMINATE 方式发出的STOP CHANNEL 命令。

1.3. 删除队列管理器命令:dltmqm1.4. 显示队列管理器启动状态命令:dspmq2. 管理本地MQ对象使用MQSC 命令执行本地管理任务使用MQSC命令执行定义或修改队列、通道等操作。

MQ测试常用命令

MQ测试常用命令

测试1 本地通道测试1、使用mqadmin用户登录2、执行crtmqm -q TEST_QM,建立测试用的消息管理器。

3、执行strmqm TEST_QM,启动测试用的消息管理器。

4、执行runmqsc TEST_QM5、输入define ql(DATA),回车,建立本地队列DATA6、输入end回车至此,本地测试通道搭建完成,下面进行测试。

1、执行amqsput DATA TEST_QM2、随便输入一些内容,一行为一条消息,可输入多条。

3、输入完毕连续按两次回车退出。

4、执行amqsget DATA TEST_QM,看看能否收到刚才输入的消息,如果能收到,证明MQ 本地通道是正常的。

如果收不到,则MQ安装有问题。

测试2 远程通道测试如果测试1通过,继续进行远程通道测试。

1、执行runmqsc TEST_QM2、输入define chl(TO.TEST) chltype(RCVR) trptype(tcp),创建接收方通道。

3、输入end并回车。

4、执行crtmqm TEST_RQM,建立模拟的远程通道。

5、执行strmqm TEST_RQM6、执行runmqsc TEST_RQM7、输入define ql(TEST) usage(xmitq)8、输入define qr(REMOTE.DA TA) rname(DATA) rqmname(TEST_QM) xmitq(TEST)9、输入define chl(TO.TEST) chltype(sdr) conname('127.0.0.1(1111)') xmitq(TEST) trptype(tcp),创建发送方通道。

10、输入end11、执行runmqlsr -t tcp -m TEST_QM -p 1111,启动接收方的监听。

12、新打开一个telnet会话,用mqadmin登录,执行runmqsc TEST_RQM13、输入start chl(TO.TEST)14、输入end至此,模拟的远程测试通道建立完成,以下进行测试。

(转)mq常用命令

(转)mq常用命令

(转)mq常⽤命令(暂时放⼀放)创建队列管理器crtmqm qmgrname删除队列管理器dltmqm [-z] qmgrname启动队列管理器strmqm qmgrname停⽌队列管理器endmqm –i QmgrName ⽴即停⽌endmqm –p QmgrName 强制停⽌显⽰队列管理器dspmq 查看全部队列dspmq -m qmgrname ----显⽰具体的队列管理器启动代理:strmqbrk -m GCP_QM启动监听器runmqlsr -m qmgrname -p port -t tcpexp runmqlsr -m GCP_QM -p 1414 -t tcp &停⽌监听endmqlsr -m qmgrname选择队列管理器runmqsc Qmgrname退出队列管理器end显⽰队列属性DISPLAY QLOCAL (Q)查看全部队列dis q(*)AIX查看系统版本:lslpp -ah mqm.server.rtelinux查看系统版本:rpm -qa |grep mqendmqm QmgrName 受控停⽌endmqm –i QmgrName ⽴即停⽌endmqm –p QmgrName 强制停⽌dis qmgr 查看队列管理器属性dis q(GCP_NOTIFY_Q_RECOL) 显⽰全部属性dis qs(GCP_NOTIFY_Q_RECOL) 显⽰主要属性修改队列属性ALTER QMGR CCSID (1381)定义队列属性DEFINE CHANNEL (C) CHLTYPE (SDR) CONNAME ('127.0.0.1 (1414)') XMITQ (XQ) exp define channel(CH1) chltype(SVRCONN) trptype(TCP) mcauser('mqm')创建本地队列define qlocal(QueueName)修改队列属性alter qlocal(Qname) maxdepth(5)重新创建本地队列,属性重置为缺省define qlocal (Qname) replace删除本地队列delete qlocal(Qname)查看错误原因以mq⽤户登录,查看mq的错误原因:直接 mqrc 2085查看端⼝占⽤情况通过ps -ef |grep mgrps -ef| grep mqm| grep 1418mqm 9204 1 0 May 05 ? 0:02runmqlsr -m GCP_QM -t TCP -p 1417扩⼤队列深度#su – mqm#runmqsc P_DNMS_QMalter QLOCAL(Q_RM_DATA) MAXDEPTH(100000) //增⼤配置队列深度alter QLOCAL(Q_PM_DATA) MAXDEPTH(100000) //增⼤性能队列深度队列授权:setmqaut -m P_DNMS_QM -n Q_REDEF_ALARM -t q -g mqm +all WebSphere MQ 的⼯作原理的核⼼就是存储转发查看队列管理器的运⾏状态:dspmq查看jmsbreak的运⾏状态:dspmqbrk往队列中放消息amqsput QName QmgrName清除队列中的所有消息CLEAR QLOCAL(QNAME)ps:在清除队列中的消息时候,需要先将占⽤队列的进程停掉,然后执⾏上述清除命令。

MQ常用命令

MQ常用命令

常用MQ命令:启动队列管理器strmqm <QMName>立即停止endmqm –i <QMName>必须看到ended,命令正常结束,才能说明MQ队列管理器已经终止dspmq显示结果中QMNAME表示MQ队列管理器的名称,STA TUS表示当前运行状态运行状态有Starting 正在启动Running 正在运行Ending 正在停止Ended normally 已经正常终止Ended immediately 已经立即终止Ended preemtively 已经强制终止Ended unexpectively 异常终止注意:停止系统后必须使用dspmq命令进行状态检查使用MQSC脚本命令管理runmqsc <QMName>常用MQSC脚本命令查看队列管理器信息DISPLAY QMGR查看所有通道状态DISPLAY CHSTATUS(*)检查通道具体状态DISPLAY CHSTATUS(ChannelName) ALL检查通道配置DISPLAY CHANNEL(ChannelName)检查队列配置和深度DIS QLOCAL(QName)该命令的显示结果可以看出队列当前深度启动通道START CHANNEL(ChannelName)停止通道STOP CHANNEL(ChannelName)解决通道中的可疑交易RESOLVE CHANNEL(ChannelName) ACTION ( COMMIT | BACKOUT )复位通道序号RESET CHANNEL(ChannelName)。

rabbitMQ队列使用及常用命令

rabbitMQ队列使用及常用命令

rabbitMQ队列使⽤及常⽤命令⼀、RabbitMQ常⽤命令启动监控管理器:rabbitmq-plugins enable rabbitmq_management关闭监控管理器:rabbitmq-plugins disable rabbitmq_management启动rabbitmq:rabbitmq-service start关闭rabbitmq:rabbitmq-service stop查看所有的队列:rabbitmqctl list_queues清除所有的队列:rabbitmqctl reset关闭应⽤:rabbitmqctl stop_app启动应⽤:rabbitmqctl start_app⽤户和权限设置(后⾯⽤处)添加⽤户:rabbitmqctl add_user username password分配⾓⾊:rabbitmqctl set_user_tags username administrator新增虚拟主机:rabbitmqctl add_vhost vhost_name将新虚拟主机授权给新⽤户:rabbitmqctl set_permissions -p vhost_name username '.*' '.*' '.*'⾓⾊说明none 最⼩权限⾓⾊management 管理员⾓⾊policymaker 决策者monitoring 监控administrator 超级管理员⼆、RabbitMQ使⽤(1)介绍①什么叫消息队列消息(Message)是指在应⽤间传送的数据。

消息可以⾮常简单,⽐如只包含⽂本字符串,也可以更复杂,可能包含嵌⼊对象。

消息队列(Message Queue)是⼀种应⽤间的通信⽅式,消息发送后可以⽴即返回,由消息系统来确保消息的可靠传递。

消息发布者只管把消息发布到 MQ 中⽽不⽤管谁来取,消息使⽤者只管从 MQ 中取消息⽽不管是谁发布的。

mq 连接问题

mq 连接问题
MAXMSGL(41943040) +
MCAUSER('') +
REPLACE +
SSLPEER('') +
DESCR('')
5.创建服务器连接通道 SVRCONN
DEFINE CHANNEL(S_NT) CHLTYPE(SVRCONN) REPLACE
DEFPSIST(NO) +
CLUSTER('') +
MAXMSGL(41943040) +
MAXDEPTH(1000000) +
DESCR('')
2. 建立传输队列 PBC.0000.ONLINE.TRAN
*更改QM的字符集编码(CCSID)
ALTER QMGR FORCE CCSID(1381)
本地队列 q1
DEFINE QLOCAL ('q1') +
LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) +
REPLACE SHARE USAGE(NORMAL) +
解释:创建 PBC.0000.ONLINE.TRAN 通道为 402100000010.0000.O1 的实时传输队列
DEFINE QLOCAL ('PBC.0000.ONLINE.TRAN') +
LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) +
REPLACE SHARE USAGE(XMITQ) +
6. 定义接收通道 0000.402100000010.O1

MQ基本指令

MQ基本指令

CS模式(Local對Server)WMS>Interface>LCD MES CS>CS1. crtmqm CS 創建隊列管理器CS2. strmqm CS 啓動隊列管理器CS3. runmqsc CS 進入隊列管理器CSdefine ql(q) 定義本地隊列命名為qdefine chl(cs) chltype (svrconn) 定義連接通道end 退出隊列管理器4. runmqlsr -m CS -t tcp -p 1414 開啓偵聽5. set MQSERVER=CS/TCP/IP(1414) 設置環境參數1414端口(在windows 環境下)6. amqsputc Q CS 把隊列的數據傳到Q中7. amqsget Q CS 把Q中的數據從隊列中取出8. endmqlsr -m CS 停止偵聽9. endmqm –i CS 停止對列管理器SS模式:(Server對Server)S1:1. crtmqm S1 創建隊列管理器S12. strmqm S1 啓動隊列管理器S13. runmqsc S1 進入隊列管理環境define ql(s1) usage(xmitq) 定義傳輸隊列s1define qremote(s2) rname(s2) rqmname(S2) xmitq(s1) 定義遠程隊列s2 define chl(s1.s2) chltype(sdr) conname('10.0.102.211(1414)') xmitq(s1)trptype(tcp) 定義發送端的通道通過類型連接IP 端口4.start chl(s1.s2) 開啓s1,s2通道.發送端要手動開起dis chl(*) 顯示通道的狀態end 退出隊列管理器5. amqsput S1 S1 把S1队列裏的數據放到S1管理器中去S2:1. crtmqm S2 創建隊列管理器S22. strmqm S2 開啓隊列管理器S23. runmqsc S2 進入管理器環境define ql(s2) 定義本地隊列s2define chl(s1.s2) chltype(rcvr) trptype(tcp) 定義接收端的通道end 退出管理器環境4. runmqlsr -m S2 -t tcp -p 1414 開啓偵聽5. amqsget S2 S2 把S2队列管理器的S2队列里的數據取出==========================================Trigger 模式:1. crtmqm TRIGGER 創建qmgr2. strmqm TRIGGER 開啓qmgr3. runmqsc TRIGGER 進入命令提示符界面define ql(initq) 定義Initqdefine ql(q) trigger trigtype(every) process(amqsget) initq(initq) 定義触发類型define process(amqsget) applicid('C:\WINDOWS\system32\CALC.EXE') appltype(windows) 定義觸發程式的路徑define chl(trigger) chlt ype(svrconn) 定義服务器连线通道end 退出命令提示符界面4. runmqlsr -m TRIGGER -t tcp -p 1414 開啓偵聽5. runmqtrm -m TRIGGER -q INITQ 觸發6. set MQSERVER=TRIGGER/TCP/IP(1414) 設置环境參數7. amqsput Q TRIGGER 在TRIGGER队列管理器里的Q队列里取出数据8. endmqlsr -m TRIGGER 关闭TRIGGER队列管理器。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

QUEUE(QMB)
TYPE(QLOCAL)
ACCTQ(QMGR)
ALTDATE(2009-02-06)
ALTTIME(11.41.44)
BOQNAME( )
BOTHRESH(0) CLUSTER( )
CLUSNL( ) CLWLPRTY(0)
CLWLRANK(0)
CLWLUSEQ(QMGR)
CRDATE(2008-12-05)
1.查看所有队列管理器 dspmq
查看所有的通道
dis chl(name)/dis chl(*)/dis chl(*) all/dis channel(name)
查看通道状态
dis chs(name)/dis chs(*)/dis chs(*) all
查看队列
display queue(name)
查看队列管理器信息(包括 CCSID 等信息) dis qmgr
种方法。 需要注意的时,当 DEPTH 属性值为0的时候,实际上就形成了同步通信。另外,当采用 Depth 触发时,产生触发消息以后,队列将被修改为非触发方式,如果需要再次触发,需要重新设 置成允许触发。
一般而言,在实际应用中,如果通道设置成触发方式,触发类型往往设置成为 FIRST 和
DEPTH。
6.修改 ccsid
alter qmgr ccsid(“XXX”)
一、MQ 的启动与停止
用 root 用户启/停需要 root 用户包含在 mqm 组中。
1、MQ 的启动 strmqm QMgrName 如果启动默认队列管理器,strmqm 后可以忽略队列管理器名称。 在意外情况停止队列管理器后,启动可能会失败,此时可以检查上次停止后是否有 IPC 资 源未释放,若有请予以删除,删除方法参考下面的“C.清理所有残留在系统内部的信号灯和 共享内存”。
CRTIME(10.37.53)
CURDEPTH(0)
DEFBIND(OPEN)
DEFPRTY(0)
DEFPSIST(NO)
DEFSOPT(SHARED)
DEFTYPE(PREDEFINED)
DESCR( )
DISTL(YES)
GET(ENABLED)
HARDENBO
INITQ( )
IPPROCS(1)
5、查看死信队列 dis qlocal(DEADQName)
三、日常维护项目 1、监控文件系统/var/mqm 的使用情况,建议不要超过80%。
2、定期报告 MQ 系统错误,备份清理 MQ 系统错误记录 在遇到问题时,检查/var/mqm/errors 目录下是否有新的 FDC 文件产生,如果有应当检查原 因。另外,要定期检查该目录下 MQ 错误日志。 3、检查日志个数是否增长 使用命令 cd 移动到 MQ 日志所在目录(/var/mqm/log/QMgrName/active/),使用 ls –l|wc 命令统计。
次事情,下次传输队列的消息数由3个增加到4个时候不会产生触发事件YPE(FIRST)。
l 在通道触发中,推荐使用 SYSTEM.CHANNEL.INITQ 队列作为初始队列, 该队列为 MQ 专
用的通道启动队列, 不需要手工启动其触发监视器,设置传输队列
2.2.3 触发器工作流程
1)
本地或远程应用程序 A,往应用队列(Application Queue)中 PUT 了一条消息。
2)
如果队列的触发类型设置为 first,当队列原来深度为0时(队列为空),这时 PUT
一条消息到队列中将形成触发事件,同时产生一条触发消息,触发消息中将包含进程定义中
的信息,因为进程定义中包含启动程序 B 所需的信息,所以触发消息中也包含了启动程序 B
4. 检查 MQ 队列管理器错误日志 当系统运行不正常时首先检查:/var/mqm/qmgrs/QMgrName/errors/AMQERR0n.LOG 错误消息生成后总是放在 AMQERR01中,AMQERR02和 AMQERR03文件用于保存历史错 误消息 2.2.2 触发类型 l EVERY: 应用队列中每接受到一个消息时,都将产生触发消息。如果应用程序仅仅处理一个消息就结 束,可采用这种触发类型。 l FIRST: 应用队列中消息从0变为1时会触发事件。如果当队列中的一个消息到达时启动程序,直到 处理完所有消息才结束,则采用这种触发类型。 l DEPTH: 应用队列中消息数目和 TriggerDepth(引起触发事件发生时,队列中的消息数目)属性值相 同时,才会产生触发事件。当一系列请求的回复都收到时,才启动应用程序,则可以采用这
QDPLOEV(DISABLED)
QDPMAXEV(ENABLED)
QSVCIEV(NONE)
QSVCINT(999999999)
RETINTVL(999999999)
SCOPE(QMGR)
SHARE
STATQ(QMGR)
TRIGDATA( )
TRIGDPTH(1)
TRIGMPRI(0)
TRIGTYPE(FIRST)
所需的信息。
3)
队列管理器创建触发消息,并把它 PUT 入与应用队列相关的启动队列 Initiation
Queue。
4)
触发监控器(Trigger Monitor)从启动队列(Initiation Queue)中 GET 触发消息。
5)
触发监控器处理触发消息,发出启动应用程序 B 的命令。
6)
应用程序 B 打开应用队列(Application Queue),并处理队列中的消息。
完整 MQSC 命令参考如下:
ALTER QL(QMB) +
TRIGGER +
TRIGTYPE(FIRST) +
INITQ(SYSTEM.CHANNEL.INITQ) +
TRIGDATA(QMA.QMB)
l 通道的触发监控器我们采用系统的自带的 runmqchi 程序,缺省队列管理器启动的时候,
runmqchi 进程会自动启动。
发送通道名 QMA.QMB,通道启动器为 runmqchi,该进程在队列管理器启动的时候自动启
动。下面我们通过举例来演示配置实现消息通道触发启动。
l 首先我们来查看一下传输队列 QMB 都有哪些属性,显示如下清单所示,其中清单中的标 注红色的属性和通道触发配置相关。
dis ql(QMB)
1 : dis ql(QMB) AMQ8409: 显示队列细节。
二、MQ 运行状态查看与常用操作
1、查看队列管理器运行状态 对 MQ 5.2或以上版本,执行如下命令检查队列管理器运行状态:dspmq 显示结果中 QMNAME 表示 MQ 队列管理器的名称,STATUS 表示当前运行状态。 运行状态有如下几种: Starting 正在启动 Running 正在运行 Ending 正在停止 Ended normally 已经正常终止 Ended immediately 已经立即终止 Ended preemtively 已经强制终止 Ended unexpectively 异常终止 注意:停止 MQ 后必须使用 dspmq 命令进行状态检查 dspmq 查询结果示例: QMNAME(QM00) STATUS(Running)
INITQ(SYSTEM.CHANNEL.INITQ )属性。
l 通过 TRIGDATA 属性设置需要触发的通道名,例如 TRIGDATA(QMA.QMB )。
l 对于 TRIGMPRI 属性的含义是基于消息优先级触发,也即某类优先级的消息满足的触发条
件才产生触发事件,我们在消息通道触发中不推荐使用。
7.6.3.1 通道的状态
USAGE(XMITQ)
l 设置传输队列为触发模式 TRIGGER。
l 设置触发类型为 every/first/depth 其中的一种,例如 TRIGTYPE(FIRST)。如果设置为
TRIGTYPE(DEPTH),则还需要设置触发深度属性,例如 TRIGDPTH(4),表示当队列中的消
息数由3个增加到4个的时候才能形成触发事件,但需要注意的是深度触发事件只能产生一
2、MQ 的关闭 一般情况下,我们使用“endmqm -i QMgrName”来停止 mq,如果停止失败,可以使用如 下步骤: 步骤1:endmqm -p QMgrName,如果停不掉,继续步骤2; 步骤2:杀死有关进程,清理残留在系统内部的信号灯和共享内存 A.找到队列管理器程序进程 ps -ef|grep QMgrName B.使用 kill 命令终止1>中找到的程序进程,无法停止的进程可以用 kill -9来终止,终止进程 的顺序如下(不存在的进程可以忽略): kill amqpcsea 命令服务器 kill amqhasmx 记录器 kill amqharmx 日志格式化器(仅 LINEAR 日志) kill amqzllp0 检查点处理器 kill amqzlaa0 队列管理器代理 kill amqzxma0 处理控制器 kill amqrrmfa 库进程(用于群集) C.清理所有残留在系统内部的信号灯和共享内存(其属主和组均为 mqm) ipcs -s| grep mqm | awk '{print $2}'|xargs -i ipcrm -s {} ipcs -m| grep mqm | awk '{print $2}'|xargs -i ipcrm -m {}
2、查看通道运行状态与启停通道 runmqsc dis chl(*); 查看所有通道定义 dis chs(*); 查看所有通道状态,如果没有查询到通道状态,或报错 AMQ8420: Channel Status not found,请启动通道 dis chs(ChannelName);查看通道 ChannelName 的状态 通道状态有如下几种: STARTING 正在启动 BINDING 正在绑定 INITIALIZING 正在初始化 RUNNING 正常 STOPPING 正在停止 RETRYING 重试 PAUSED 等待 STOPPED 已停止 REQUESTING 请求 start chl(ChannelName); 启动通道 stop chl(ChannelName); 停止通道 reset channel(ChannelName); 重置通道序号。当本地与其他 MQ 队列管理器的通道无法 正常启动的情况,检查日志发现是通道序号不一致,此时就需要先停止发送方通道,并在发 送方和接收方进行通道计数的重置,重置后启动通道即可恢复通讯。
相关文档
最新文档