IBM MQ常用命令

查看版本

dspmqver

1、队列管理器

1.1创建队列管理器

命令:crtmqm <qmgrName>

示例:

crtmqm -ld /var/mqm/log -lc -lf 16384 -lp 25 -ls 5 QM_TEST

参数说明:

-ld 日志文件目录

-lc 使用循环日志

-lf 日志文件页大小

-lp 逐日之文件个数

-ls 辅助日志文件个数

QM_TEST 队列管理器名

1.2 启动队列管理器

命令:strmqm <qmgrName>

停止队列管理器

命令:endmqm -c|-w|-i|-p <qmgrName>

参数说明:

-c 受控关闭(或停顿关闭)。这是缺省值。

队列管理器停止,但仅当所有应用程序已断开连接后才停止。当前正在处理的任何MQI调用已完成。

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

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

-w 等待关闭。

此类型的关闭等效于受控关闭(除了仅当队列管理器已停止后再将控制权返回给您之外)。当执行关闭时,您将收到消息:等待队列管理器qmName结束。

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

-i 立即关闭。

队列管理器在完后才能所有当前正在处理的MQI调用后停止。任何在该命令后发出的MQI请求都将失败,当队列管理器再次启动的时候,任何未完成的工作单元将回滚。

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

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

-p 抢先关闭。

仅在意外情况下使用此类型的关闭。例如:当队列管理器在常规endmqm命令下未停止。

队列管理器中可以停止而不等待应用程序断开连接或MQI调用完成。这可能会产生WebSphere MQ应用程序不可预测的结果。关闭方式设置为立即关闭。如果队列管理器稍后未停止,关闭方式将升级,且终止所有剩余的队列管理器进程。

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

1.3 删除对列管理器

命令:dltmqm [队列管理器的名字]

注意:队列管理器运行中是禁止删除的。

1.4 显示对列管理器启动状态

命令:dspmq -n -m MQ_TEST

 

2.管理本地MQ对象

使用MQSC命令执行本地管理任务。

使用MQSCM命令执行定义或修改队列,通道等操作。MQSC命令可以有以下两种使用方式:

交互地使用MQSC命令:runmqsc [qmgrName]

从文本文件运行MQSC命令:runmqsc [qmgrName] <myprog.in> myprog.out

 

2.1.1、显示或修改队列管理器属性

dis qmgr [要查询的属性] (display 可以简写为dis)(不加后面的属性表示查询全部)

2.1.2、修改对列管理器属性

ALTER QMGR CHLAUTH(DISABLED) 关闭通道权限

(需要在mqsc命令行里面执行,runmqsc MQ_TEST 里面)

2.2 队列

2.2.1 定义本地队列示例

def ql(FROMCCPC_1) maxdepth(10000) defpsist(yes) replace

参数说明:

ql(FROMCCPC_1):队列本地名称 ql为QLOCAL表示本地队列

maxdepth:队列上允许的最大消息数

defpsist:队列中消息持久性默认值。

NO 该队列上的消息在队列管理器重新启动时丢失。

YES 该队列上的消息在队列管理器重新启动时保存了下来。

关于消息在队列中的保存时间:消息在队列的保存时间与三个设置有关:队列defpsist属性、消息persistence 池性属性和消息expiry消息到期时间属性,其中队列defpsist属性是在创建队列时设置,消息persistence和Expiry消息到期时间属性是应用程序往队列放入消息时指定。消息本身的Persistence值优先于队列defpsist值。Expiry指消息到期时间,即经过指定的时间后,消息如果还没被取走,此消息将过期(无效)。消息过期后,可能会自动从队列中删除(取决于不同操作系统的MQ的实现)。对于非持久性消息,即使Expiry设置为永不过期重启队列管理器时,消息也将丢失。

2.2.2 定义远程队列示例

def qr(TOPCCPC_1) rname(5819_1) rqmname(QMC5819) xmitq(QMGF) defpsist(yes) replace

参数说明:

qr(TOPCCPC_1):队列本地名称,名称可任意取。

rname(5819_1):远程队列名,必须与远程队列管理器中的本地列名相同。

rqmname(QMC5819):远程队列管理名,必须与远程队列管理名相同。

xmitq(QMGF):本地传输队列名称。

2.2.3 定义传输队列示例

def ql(QMGF) usage(XMTQ) defpsist(yes) maxdepth(500000) trigger trigtpe(FIRSET) trigdata(999581030604.5819) initq(SYSTEM.CHANNEL.INTIQ) replace

参数说明:

ql(QMGF):队列本地名称,名字可任意取。

usage(XMITQ):指定此本地队列为传输队列,参数值为固定值“XMITQ”

trigger:启动触发(相对应的是:NOTRIGGER为禁用触发)。

trigtype(FIRST):触发方式,建议值为“FIRST”,即4第一条消息触发。

trigdata(999581030604.5819):触发数据,值为传输队列将使用的发送通道名。

initq(SYSTEM.CHANNEL.INITQ):触发队列,固定填“SYSTEM.CHANNEL.INITQ”。

触发器在此的作用是传输队列接收到第一条消息时,将触发启动指定的发送通道。

2.2.4 查看队列

dis q(*) 查看队列管理器下所有队列

dis q(Q_Y) 或 dis qr(Q_Y) 查看远程队列属性,Q_Y远程队列名称

远程队列定义

DEFINE QREMOTE(QRNAME) RNAME(AAA) RQMNAME(QMGRNAME) XMITQ(QTNAME)

dis ql(qname) all 显示本地队列所有属性,还可以加指定属性

dis ql(qname) curdepth 显示队列当前深度,即当前队列中存放的消息数。

dis qs(qname) type(queue) all 显示与队列相关的状态信息。“queue”为固定值

dis qs(qname) type(handle) all 显示与访问队列的句柄相关的状态信息。

2.2.5 删除队列

delete ql(qname) 删除本地队列

2.1.6 删除本地队列中的消息

clear ql(qname)

注:删除队列中的消息时出错时处理

尝试执行命令RESOLVE CHANNEL(channel_name) ACTION(COMMIT) 后,在执行clear ql命令

 

四、发送消息

继续在Windows命令模式下,输入

amqsput Q1 QM_TEST

这里系统将处于等待用户输入的状态,随便输入一些消息,然后连敲二次回车,完成消息发送

 

五、接收消息

amqsget Q1 QM_TEST

把刚才的put换成了get,将从队列管理器QM_TEST的队列Q1中,把消息取出来

 

 

2.2 通道

WebSphere® MQ 使用两种不同类型的通道:

  • 消息通道,它是两个队列管理器之间的单向通信链路。WebSphere MQ 使用消息通道在队列管理器之间传送消息。 要双向发送消息,您必须定义每个方向的通道。
  • MQI 通道,它是双向通道,用于将应用程序(MQI 客户机)连接至服务器上的队列管理器。WebSphere MQ 使用 MQI 通道在 MQI 客户机和队列管理器之间传送 MQI 调用和响应。

2.1.1 定义接收通道

def chl(通道名) chltype(rcvr) trptype(tcp)

def chl(SYS.SVRCONN) chltype(rcvr) trptype(tcp)

参数说明:

chl(SYS.SVRCONN):接收通道名称,必须与远程队列管理器中的发送队列名称相同。推荐的命名规则为“远程队列管理器名.本地队列管理器名”

chltype(rcvr):指定通道为类型,值固定为“rcvr”

trptype(tcp):通讯协议,除非特别指明,一般 采用“tcp”协议。

2.2.2 定义发送通道

def chl(通道名) chltype(sdr) discint(0) conname('127.0.0.1(1414)') xmitq(QMCIS) trptype(tcp)

def chl(SYS.SVRCONN) chltype(sdr) discint(0) conname('127.0.0.1(1814)') xmitq(QMCIS) trptype(tcp)

def chl(SYS.SVRCONN) chltype(rcvr) discint(0) conname('127.0.0.1(1414)') xmitq(QMCIS) trptype(tcp)

2.2.3 定义服务器连接通道

DEFINE CHANNEL(channelName) CHLTYPE(SVRCONN) TRPTYPE(TCP)

def chl(channelName) chltype(SVRCONN) repalce

定义集群接收方通道

DEFINE CHANNEL(TO.DESTQMGRNAME_1) CHLTYPE(CLUSRCVR) CLUSTER(MFTCLUSTER)

其中:

  • DESTQMGRNAME 是目标代理的队列管理器的名称。
  • MFTCLUSTER 是 IBM MQ 集群的名称。

建议您对通道使用 MFTCLUSTER.DESTMGRNAME_n 命名约定,但不作强制要求。

2.2.4 删除通道

Delete chl(channel name)

2.2.5 查看通道属性

dis chl(channel name)

通道的当前状态,他可以是正在启动、正在绑定、正在初始化、正在运行、正在停止、正在重试、已暂停、已停止、正在请求和通道状态未找到。

正常运行时,通道状态未“正在运行”;

关闭通道时,通道状态未“已停止”

如果通道状态长时间处于“正在绑定”,“正在重试”,则表明通道不正常,需要人工介入。这时可查看队列管理器日志文件,日志文件中一般提供异常原因。

关于“通道状态未找到”:此状态值仅表示当前没有建立到此通道的连接,并不能表示通道是否正常。

查看通道属性

dis chs(channel name)

 

2.2.6 启动通道

start chl(channle name)

2.2.7 关闭通道

stop chl(channle name)

2.2.8 重置通道

reset chl(channle name)

 

2.3 监听器

定义监听器

def listener(QMC5819) TRPTYPE(TCP) PORT(1417) CONTROL(STARTONLY) BACKLOG(0) repalce

参数描述:

listener(QMC5819):监听器名,名称可任意取

TRPTYPE(TCP):通讯协议类型

PORT(1417):服务监听端口

CONTROL(string):指定如何启动和停止监听器

MANUAL 不会自动启动或自动停止监听器。通过使用START LISTENER命令和STOP LISTENER 命令来控制它。这是缺省值。

QMGR 当队列管理器启动和停止时,同时启动和停止被定义的侦听器。

STARTONLY 当队列管理器启动时,同时启动侦听器,但当队列管理器停止时,不请求停止侦听器。

2.3.1 启动监听器

start listener(QMC5819)

2.3.2 关闭监听器

stop listener(QMC5819)

2.3.3 查看监听器状态

dis lsstatus(LISTENER.TCP) all(QMC5819) all

  • 10
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值