MQ常用命令
创建队列管理器
crtmqm -q QMgrName -q 是指创建缺省的队列管理器
删除队列管理器
dltmqm QmgrName
启动队列管理器
strmqm QMgrName 如果是启动默认的队列管理器,可以不带其名字
停止队列管理器
endmqm (-c or -w)QmgrName 受控停止
endmqm -i QmgrName 立即停止
endmqm -p QmgrName 强制停止
运行MQ命令行控制台
runmqsc QMgrName
通过脚本创建系统对象 runmqsc QMgrName < queue.tst
显示队列管理器
dspmq -m QmgrName
定义本地队列
DEFINE QL(QNAME) REPLACE
定义别名队列
DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)
远程队列定义
DEFINE QREMOTE(QRNAME) RNAME(AAA) RQMNAME (QMGRNAME ) XMITQ(QTNAME)
显示队列的所有属性
DISPLAY QUEUE (QNAME) [ALL]
显示队列的所选属性
DISPLAY QUEUE(QNAME) DESCR GET PUT MAXDEPTH CURDEPTH
显示本地队列,远程队列
DISPLAY QUEUE (QNAME) DISPLAY QREMOTE (QNAME)
显示队列状态
DISPLAY QSTATUS(QNAME) TYPE (HANDLE)
创建接受通道C
DEFINE CHNNEL(C) CHLTYPE (RCVR)
创建发送方通道C,连接对方IP地址为127.0.0.1,端口为1414 通道连接传输队列XQ
DEFINE CHANNEL(C) CHLTYPE (SDR) + CONNAME ('127.0.0.1(1414)'XMITQ(XQ))
删除通道C
DELETE CHANNEL (C)
修改通道C可传输的消息最大为8M
ALTER CHANNEL(C) CHLTYPE(SDR) MAXMSGL (8388608)
显示通道C的属性或状态
DISPLAY CHANNEL (C) 、DISPLAY CHSTATUS(C)
MQ群集
群集是一个命名队列管理器的集合
一个队列管理器可以不属于群集,或属于一个活多个群集。
当队列被定义为群集队列是,它可以被认为是公用队列,可被群集中的其他队列管理器自由使用
MQ--中间件
中间件类型 产品举例
面向消息中间件(MOM) IBM MQSeries,microsoft MSMQ ,BEA MessageQ ,JBossMQ
数据连接 ODBC,JDBC,etc
远程过程调用(RPC) DCE,NSF
对象请求代理(ORB) 符合CORBA标准,如Orbix,Visibroker,BEA Objectbroke,Java IIOP;还有Java RMI
交易流程控制(TPM) MTS,IBM CICS ,IBM Encina
Message Oriented Middleware MOM 允许一个应用向另一个应用发送消息,而无论应用是否在线
消息-- 程序之间的通信是通过发送消息数据而不是相互间直接调用
队列-- 消息通过放入队列而存储下来,减少了程序间逻辑性连接的需要
消息队列框架的通信模式是异步的
MQ定义了4种队列,队列是用它的的队列管理器和队列名称来完全确定的
本地队列-- 实际队列,会为它分配存储空间,包含传输队列
远程队列-- 其他队列管理器上多的队列的映射定义(类似于指针、引用)
别名队列-- 某一本地或远程队列的别名(用于编程的灵活性)
模型队列-- 队列模板,可用于创建本地队列 (create queue xxx "like" queue yyy)
MQ对象:消息通道
定义:为两个队列管理器(相同或不同平台)提供通信的通路
一个消息通道只能在一个方向上传送消息,如要双向通信,就得在队列管理器建立两个消息通道
一个通道可以为队列管理器上的任意多个队列服务
1在Websphere MQ集群中,成员队列管理器可以创建本地队列,并将其在集群中共享,集群中的其他成员队列管理器不需要任何额外的配置操作,就可以像访问本地队列一样向该队列放入(PUT)消息
2 每个成员队列管理器都可以创建与之同名的共享队列,于是该共享队列在集群中就拥有了多个副本,所有的副本将作为一个虚拟的整体;