IBM MQ 使用以及常见问题集锦

消息队列+发送队列+消息通道

接收通道名称与发送端的发送通道名称要一致,修改通道信息后要执行 start channle(chlname) 重启通道。
常用的MQ命令
/* MQ创建 */
显示队列管理器 dspmq
进入队列管理器控制台 runmqsc 队列管理器名
显示通道状态 dis chs(*)
显示通道 dis chl(*)

启动mq通道报错如下信息,为CCSID错误
The local and remote queue managers do not agree on the next message sequence
number. A message with sequence number 214 has been sent when sequence number
使用命令重置CCSID可行reset chl(MBA.MBFEA) seqnum(819)

STATUS(BINDING)
主要是看mqm
创建mq: crtmqm -q qmgrname
-q是指创建缺省的队列管理器

删除mq: dltmqm qmgrname
启动mq: strmqm qmgrname
停止mq: endmqm qmgrname 受控停止
endmqm -i qmgrname 立即停止
endmqm -p qmgrname 强制停止
显示队列管理器 dspmq -m qmgrname
运行mqseries命令(启动用于运行队列管理器MQSC命令的控制台(runmqsc)) runmqsc qmgrname
往队列中放消息 amqsput qname qmgrname
从队列中取消息 amqsget qname qmgrname
启动通道 runmqchl -c ChlName -m QmgrName
启动侦听 runmqlsr -t Type -p Port -m QMgrName
停止侦听 endmqlsr -m QmgrName
MQSeries命令
显示队列的所有属性 DISPLAY QUEUE (QName) [ALL]
显示队列的所选属性 DISPLAY QUEUE (QName)DESCR GET PUT
DISPLAY QUEUE (QName)MAXDEPTH CURDEPT

显示队列管理器的所有属性 DISPLAY QMGR[ALL]
mq配置信息:根目录的mqs.ini(mq配置文件) qm.ini(队列管理器配置文件,它的属性仅影响某个队列管理器,在节点中的每个队列管理器都有一个qm.ini,所在目录 ./pmts/qmgrs/QMUMBFEA/qm.ini)
查看通道状态
DISPLAY CHSTATUS(*) CURRENT

MQ属性
队列管理器名称、队列、进程、名称列表、群集、认证信息对象 最长48个字符,通道名最长20个字符,队列名区分大小写,所有控制命令区分大小写
USAGE(NORMAL/XMITQ):
BOTHRESH 和 BOQNAME属性:当处理backout消息时,
如4 中所言,如果某个消息是在同步点控制之下读取的,并且由于某种原因消息被回滚,消息描述符中的BackoutCount字段的值将被加1,你需要判断该数值,如果它大于某个阈值,你需要使用其它手段来处理该消息。在处理该消息的应用中,你可以将其与设定的阈值做比较,这时,阈值会被写死在程序中,为了提高其灵活性,你可以使用队列的BOTHRESH 和 BOQNAME属性。这样,你可以在例外处理中,利用MQINQ查询得到阈值的大小,如果超出,可以将消息转发到BOQNAME指定的队列中,继而对该队列进行相应的处理。这种方法大大增强了应用程序的灵活性。
DESCR:描述
MAXMSGL:消息大小
队列管理器MAXMSGL,默认值:4M,可以调整范围:32K – 100M;
通道MAXMSGL,默认值:4M,可以调整范围:0-队列管理器MAXMSGL;
队列MAXMSGL,默认值:4M,可以调整范围:0-队列管理器MAXMSGL;
使用alter命令,即可对其MAXMSGL进行修改。
三者之间的关系:
队列管理器MAXMSGL>=队列MAXMSGL;
通道MAXMSGL:
队列MAXMSGL:仅对本地队列和模型队列有效,表示队列中可以容纳的最大消息长度,这个属性的调整范围在各个平台上的上限是不一样的。通道在建立 的时候会有一个握手过程,双方会交换各自通道定义上的MAXMSGL,最后协商出通道使用的最大消息长度,一般会取双方定义中较小的那一个。
系统缺省对象:
系统缺省对象是一组每次创建队列管理器时自动创建的对象定义。您可以复制和修改这些对象定义中的任何一个,以在安装时用于应用程序。
缺省对象名具项SYSTEM.DEFAULT;例如,缺省本地队列是SYSTEM.DEFAULT.LOCAL.QUEUE,并且缺省接收方通道是SYSTEM.DEFAULT.RECEIVER。您无法重命名这些对象;这些名称的缺省对象是必需的。
当您定义对象时,从相应的缺省对象复制您不明确指定的任何属性。例如,如果您定义本地队列,则从缺省队列SYSTEM.DEFAULT.LOCAL.QUEUE 获取您未指定的那些属性。
请参阅附录1, “系统和缺省对象”以获取关系统缺省的更多信息。

——————————————————————————————————————————————-
win下使用 dspmq.exe

uninx/linux 下
#su – mqm
#dspmq

最近在配置MQ,记下了一些常用的MQ命令,如下:

创建队列管理器
crtmqm –q QMgrName

删除队列管理器
dltmqm QmgrName

启动队列管理器
strmqm QmgrName
如果是启动默认的队列管理器,可以不带其名字

停止队列管理器
endmqm QmgrName 受控停止
endmqm –i QmgrName 立即停止
endmqm –p QmgrName 强制停止

显示队列管理器
dspmq –m QmgrName

往队列中放消息
amqsput QName QmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

从队列中取出消息
amqsget QName QmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

启动通道
runmqchl –c ChlName –m QmgrName

启动侦听
runmqlsr –t TYPE –p PORT –m QMgrName

停止侦听
endmqlsr -m QmgrName

下面是在MQ环境中可以执行的MQ命令(即在runmqsc环境下可以敲的命令)

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

定义队列允许的最大消息数目
MAXDEPTH
maxdepth:队列上允许的最大消息数;

设定队列管理器的持久信队列
ALTER QMGR DEADQ(QNAME)

定义本地队列
DEFINE QL(QNAME) REPLACE

定义别名队列
DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)

远程队列定义
DEFINE QREMOTE(QRNAME) +
RNAME(AAA) RQMNAM)E(QMGRNAME) +
XMITQ(QTNAME)

定义模型队列
DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)

定义本地传输队列
DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +
INITQ(SYSTEM.CHANNEL.INITQ)+
PROCESS(PROCESSNAME) REPLACE

创建进程定义
DEFINE PROCESS(PRONAME) +
DESCR(‘STRING’)+
APPLTYPE(WINDOWSNT)+
APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)
其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等

创建发送方通道
DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+
CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE
其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。

创建接收方通道
DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE

创建服务器连接通道
DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE

显示队列的所有属性
DISPLAY QUEUE(QNAME) [ALL]

显示队列的所选属性
DISPLAY QUEUE(QNAME) DESCR GET PUT
DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH

显示队列管理器的所有属性
DISPLAY QMGR [ALL]

显示进程定义
DISPLAY PROCESS(PRONAME)

更改属性
ALTER QMGR DESCR(‘NEW DESCRIPTION’)
ALTER QLOCAL(QNAME) PUT(DISABLED)
ALTER QALIAS(QNAME) TARGQ(TARGQNAME)

删除队列
DELETE QLOCAL(QNAME)
DELETE QREMOTE(QRNAME)

清除队列中的所有消息
CLEAR QLOCAL(QNAME)

以下是一些高级配置的命令:
amqmcert 配置SSL证书
amqmdain 配置windows上的MQ服务
crtmqcvx 转换数据
dmpmqaut 转储对象权限管理
dmpmqlog 转储日志管理
dspmq 显示队列管理器
dspmqaut 显示打开对象的权限
dmpmqcap 显示处理程序容量和处理程序数
dspmqcsv 显示命令服务器状态
dspmqfls 显示文件名
dspmqtrc 跟踪MQ输出(HP-UNIX LINUX Solaris)
dspmqrtn 显示事务的详细信息
endmqcsv 停止队列管理器上的命令服务器
strmqcsv 启动队列管理器上的命令服务器
endmqtrc 停止跟踪
rcdmqimg 向日志写对象的映像
rcmqobj 根据日志中的映像重新创建一个对象
rsvmqtrn 提交或逆序恢复事务

MQ 控制命令的参考信息。
addmqinf
添加 WebSphere MQ 配置信息(仅限于 Windows? 和 UNIX 平台)。
amqccert
检查不完整的证书链(仅限于 Windows)。
amqmdain
配置或控制 WebSphere MQ 服务控制(仅限于 Windows)。
amqmfsck(文件系统检查)
检查文件系统是否与 POSIX 标准一致并能够共享队列管理器数据以支持多实例队列管理器。
amqtcert
从 WebSphere MQ 5.3 或 5.3.1 迁移证书(仅限于 Windows)。
crtmqcvx
根据数据类型结构来创建数据转换代码。
crtmqm
创建队列管理器。
dltmqm
删除队列管理器。
dmpmqaut
转储一组 WebSphere MQ 对象类型和概要文件的当前权限列表。
dmpmqlog
显示并格式化 WebSphere MQ 系统日志的部分内容。
dspmq
显示关于队列管理器的信息。
dspmqaut
dspmqaut 显示特定 WebSphere MQ 对象的权限。
dspmqcsv
显示命令服务器的状态
dspmqfls
显示与 WebSphere MQ 对象相对应的文件名。
dspmqinf
显示 WebSphere MQ 配置信息(仅限于 Windows 和 Unix 平台)。
dspmqrte
确定消息通过队列管理器网络时采用的路由。
dspmqtrc
格式化并显示 WebSphere MQ 跟踪(仅限于 Unix 平台)。
dspmqtrn
显示不确定的事务。
dspmqver
显示 WebSphere MQ 版本和构建信息。
endmqcsv
为队列管理器停止命令服务器。
endmqlsr
结束队列管理器的所有侦听器进程。
endmqdnm
对某个队列停止 .NET 监视器(仅限于 Windows)。
endmqm
停止队列管理器或者切换到备用队列管理器。
endmqtrc
对所跟踪的某些或全部实体结束跟踪。
migmbbrk
migmbbrk 命令将发布/预订配置数据从 WebSphere Event Broker V6.0 或者 WebSphere Message Broker V6.0 或 V6.1 迁移到 WebSphere MQ V7.0.1 或更高版本。
mqftapp
启动文件传输应用程序的图形界面(仅限于 Windows 和 Linux x86 平台)。
mqftrcv
处理在服务器上使用 WebSphere MQ 文件传输应用程序接收到的文件(仅限于 Windows 和 Linux x86 平台)。
mqftrcvc
处理在客户机上接收到的文件(仅限于 Windows 和 Linux x86 平台)。
mqftsnd
使用 WebSphere MQ 文件传输应用程序从服务器发送文件(仅限于 Windows 和 Linux x86 平台)。
mqftsndc
使用 WebSphere MQ 文件传输应用程序从客户机发送文件(仅限于 Windows 和 Linux x86 平台)。
rcdmqimg
将一个对象或一组对象的映像写入日志,以便进行介质恢复。
rcrmqobj
根据日志中包含的一个或一组对象的映像来重新创建这些对象。
rmvmqinf
除去 WebSphere MQ 配置信息(仅限于 Windows 和 Unix 平台)。
rsvmqtrn
解决不确定的事务。
runmqchi
运行通道启动程序进程,以便自动启动通道。
runmqchl
启动发送方或请求方通道
runmqdlq
启动死信队列处理程序,以便监视和处理死信队列中的消息。
runmqdnm
使用 .NET 监视器来开始处理某个队列中的消息(仅限于 Windows)。
runmqlsr
运行侦听器进程,以便侦听各种通信协议的远程请求。
runmqsc
对队列管理器运行 WebSphere MQ 命令。
runmqtmc
在客户机上启动触发器监视器。
runmqtrm
在服务器上启动触发器监视器。
setmqaut
更改概要文件、对象或对象类的权限。可以对任意数目的主体或组授予权限或从中撤销权限。
setmqcrl
在 Active Directory 中管理 CRL(证书撤销列表)LDAP 定义(仅限于 Windows)。
setmqprd
登记 WebSphere MQ 生产许可证。
setmqscp
在 Active Directory 中发布客户机连接通道定义(仅限于 Windows)。
strmqcfg
启动 WebSphere MQ 资源管理器(仅限于 Windows 和 Linux x86 平台)。
strmqcsv
为队列管理器启动命令服务器。
strmqm
启动队列管理器或者使其准备好执行备用操作。
strmqtrc

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注