MQ基本命令
来源:互联网 发布:淘宝网首页板鞋 编辑:程序博客网 时间:2024/05/16 17:01
一.MQ基本操作
MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。其基本的操作方法如下:
创建队列管理器
crtmqm –q QMgrName
-q是指创建缺省的队列管理器
删除队列管理器
dltmqm QmgrName
启动队列管理器
strmqm QmgrName
如果是启动默认的队列管理器,可以不带其名字
停止队列管理器
endmqm QmgrName 受控停止
endmqm –i QmgrName 立即停止
endmqm –p QmgrName 强制停止
显示队列管理器
dspmq –m QmgrName
运行MQSeries命令
runmqsc QmgrName
如果是默认队列管理器,可以不带其名字
往队列中放消息
amqsput QName QmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
从队列中取出消息
amqsget QName QmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
启动通道
runmqchl –c ChlName –m QmgrName
启动侦听
runmqlsr –t TYPE –p PORT –m QMgrName
停止侦听
endmqlsr -m QmgrName
MQSeries命令
定义死信队列
DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE
设定队列管理器的死信队列
ALTER QMGR DEADQ(QNAME)
定义本地队列
DEFINE QL(QNAME) REPLACE
定义别名队列
DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)
远程队列定义
DEFINE QREMOTE(QRNAME) +
RNAME(AAA) RQMNAME(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)
二.配置一个能够通信的远程连接
以上讲述了MQ的基本命令操作,但只知道这些是没有实际意义的。MQ的最终目的是实现远程通信,所以下面就以一个具体的例子来说明如何实现远程连接。这个例子的目的是建立可以实现消息传递的一对MQ服务器,它们分别基于NT和UNIX平台。
首先在NT端建一队列管理器
crtmqm –q QM_NT
启动队列管理器
strmqm QM_NT
运行MQ控制台命令
runmqsc QM_NT
创建死信队列
DEFINE QL(NT.DEADQ) DEFPSIST(YES) REPLACE
更改队列管理器属性,设置其死信队列
ALTER QMGR DEADQ(NT.DEADQ)
创建进程定义
DEFINE PROCESS(P_NT)+
APPLTYPE(WINDOWSNT)+
APPLICID(’ runmqchl -c SDR_NT -m QM_NT’)
创建本地传输队列
DEFINE QL(QT_NT) USAGE(XMITQ) DEFPSIST(YES) +
INITQ(SYSTEM.CHANNEL.INITQ)+
PROCESS(P_NT) REPLACE
创建远程队列定义,对应于UNIX机器上的本地队列Q_UNIX,传输队列为QT_NT
DEFINE QREMOTE(QR_NT)+
RNAME(Q_UNIX) RQMNAME(QM_UNIX)+
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
创建服务器连接通道
DEFINE CHANNEL(S_NT) CHLTYPE(SVRCONN) REPLACE
在UNIX端创建队列管理器
crtmqm –q QM_UNIX
启动队列管理器
strmqm QM_UNIX
添加侦听程序
修改/etc/services文件,加入一行:
MQSeries 1414/tcp #MQSeries channel listener
修改/etc/inetd.conf文件,加入一行(启动侦听程序)
MQSeries stream tcp nowait mqm /usr/lpp/mqm/bin/amqcrsta amqcrsta –m QM_UNIX
运行以下命令,以使修改起作用
refresh –s inetd
运行MQ控制台命令
runmqsc QM_UNIX
创建死信队列
DEFINE QL(UNIX.DEADQ) DEFPSIST(YES) REPLACE
更改队列管理器属性,设置其死信队列
ALTER QMGR DEADQ(UNIX.DEADQ)
创建接收方通道,其名字必须与远程发送方相同
DEFINE CHANNEL(SDR_NT) CHLTYPE(RCVR) REPLACE
创建本地队列
DEFINE QL(Q_UNIX) DEFPSIST(YES) REPLACE
创建服务器连接通道
DEFINE CHANNEL(S_UNIX) CHLTYPE(SVRCONN) REPLACE
经过以上操作之后,远程连接的配置工作完成。接下来需要验证配置是否正确。
在NT端启动发送方通道
runmqchl –c SDR_NT –m QM_NT 或 start chl(SDR_NT)
从NT端发送消息到UNIX端
amqsput QR_NT QM_NT
在UNIX端接收消息
/usr/mqm/samp/bin/amqsget Q_UNIX QM_UNIX
若能收到消息,说明配置成功。
另,在NT下一般情况下在建立队列管理器时会自动建立侦听器,启动队列管理器时则会自动启动侦听程序。当然也可以手动配置侦听程序。
修改\winnt\system32\drivers\etc\services文件,在文件中加入一行:
MQSeries 1414/tcp #MQSeries channel listener
启动侦听程序
runmqlsr –t tcp –p 1414 –m QM_NT
· 常用命令:
1.查看队列状态
|dspmq|
2.选择某一队列管理器
|runmqsc 队列管理器名称| end退出
3.显示命令dis
dis ql(*) -显示所有队列名称
dis ql(queue_name) -本地队列
dis qr(queue_name) -远程队列
dis chl(chanel_name) -显示通道定义
dis chs(chanel_name) -显示通道状态
dis chl(*) -显示所有通道名称
dis qr(*) -显示所有远程队列名称
dis qmgr -显示默认的qmgr名称
dis process(*) -显示进程
4.msgcp命令(此命令是为了解决支付系统相邻节点数据不一致设计的,检查错误报文的有力工具)
msgcp -M队列管理器名 -Sq队列名|-Sf文件名 [-Dq队列名|-Sf文件名] [-m] [-C报文个数] [-I报文ID号] [-v] [-f]
参数说明
-M:指定队列所在的队列管理器名
-Sq:指定复制操作的源队列名
-Sf:指定复制操作的源文件名(-Sq和-Sf只能且必须二选一)
-Dq:指定复制操作的目标队列名
· -Df:指定复制操作的目标文件名(-Dq和-Df只能二选一)
-m:表示复制时将源队列的相应报文同时删除
当从一个文件考出时,此参数无效
此参数需慎用,因为一旦删除,将无法恢复
-C:指定要复制的报文个数
-I:指定要复制的报文ID号
-v:显示详细信息,包括消息组ID、PUT时间和偏移量
-f:显示所有报文片,包括完整和不完整的报文
ex:
msgcp -SqERRMSG -Df备份文件名 -M队列管理器名 -f –m
msgcp -SqDeadQ -Df备份文件名 -M队列管理器名 -f –m
msgcp –Sq0000_1 阅读队列中的内容。
msgcp –SqQMxxxx 阅读队列内容
msgcp –SqERRMSG 阅读errmsg的内容
5.定义队列
def ......
6.aix环境下错误日志存放路径
/var/mqm/qmgrs/qmname/errors
7.MQ的事务日志(环行日志和线性日志)
/var/mqm/log
- MQ基本命令
- IBM MQ基本操作
- MQ基础命令
- MQ队列管理器命令
- MQ基础命令
- IBM WebSphere MQ命令
- WebSphere MQ基础命令
- mq命令大全
- MQ常用管理命令
- MQ命令学习总结大全MQ常用命令
- MQ命令学习总结大全MQ常用命令
- Websphere mq 的基本操作
- MQ整理—基本介绍
- Websphere MQ控制命令列表
- IBM MQ 命令(2)
- WebShpere MQ 实战命令操作
- MQ研究之一(基本操作)
- MQ系列2:ActiveMQ基本配置
- 数组排序
- 在内核中创建文件 filp_open/sys_open
- VC++------------一些简单的错误(不断更新)
- Struts2学习笔记(五)之异常处理机制
- 调试内核oops
- MQ基本命令
- MFC中获取App,MainFrame,Doc和View类等指针的方法
- 关于大数的操作!!
- redhat5中RAW设备的建立
- Android WebView 加载资源
- SQL中1=1与1<>1的使用
- eclipse导入android项目之后有个红色叹号
- C++中产生随机数的函数
- 【WebService】接口的测试方法