IBM Websphere MQ _01 基本操作

来源:互联网 发布:c# socket接收数据 编辑:程序博客网 时间:2024/06/05 03:12

MQ的配置操作:

安装完MQ,程序本身会把/opt/mqm/bin/目录下面的一些程序链接到/usr/bin/下面,例如crtmqm,runmqsc等等,这些命令只有安装了服务端才有。

1:  创建队列管理器 

           crtmqm –q QMgrName
           -q是指创建缺省的队列管理器 。

    

 2:  删除队列管理器
           dltmqm QMgrName

    

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

    

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

   

 5:  显示队列管理器
          dspmq –m QmgrName
          如果输入dspmq,那么显示的是默认的队列管理器。
 
     

6:运行MQSeries命令
           runmqsc QmgrName
          如果是默认队列管理器,可以不带其名字
 
     

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

     

8:启动通道
          runmqchl –c ChlName –mQmgrName
          启动侦听
          runmqlsr –t TYPE –p PORT–m QMgrName
          停止侦听
          endmqlsr -m QmgrName

    

 9:定义死信队列
         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 

 
    

10:创建发送方通道
         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 GETPUT
         DISPLAY QUEUE(QNAME)MAXDEPTHCURDEPTH
 
         显示队列管理器的所有属性
         DISPLAY QMGR [ALL]
 
         显示进程定义
         DISPLAY PROCESS(PRONAME)
 
         更改属性 
         ALTER QMGR DESCR(‘NEWDESCRIPTION’)
         ALTER QLOCAL(QNAME) PUT(DISABLED)
         ALTER QALIAS(QNAME) TARGQ(TARGQNAME)
 
        删除队列
        DELETE QLOCAL(QNAME) 
        DELETE QREMOTE(QRNAME)
 
        清除队列中的所有消息
        CLEAR QLOCAL(QNAME)
        以上就是基本的操作,对于更深入的东西,只能慢慢研究了,先写到这!


 

创建配置队列管理器

对于我等小白,当然希望在自己的Windows笔记本上管理服务器上的队列,接下来示范创建一个可以使用MQ Explorer管理的队列。

1) 执行su - mqm,切换到mqm用户

2) 执行source /opt/mqm/bin/setmqenv -s,加载执行mq命令的环境

3) 执行crtmqm -u SYSTEM.DEAD.LETTER.QUEUE QM_TEST,创建一个带死信队列的队列管理器。QM_TEST是队列管理器的名称,可以根据需要起不同的名称

4) 执行strmqm QM_TEST,启动队列管理器

5) 执行runmqsc QM_TEST,启动MQ管理工具

6) 在管理工具内执行以下命令,创建监听器

define listener(TCP.LISTENER) trptype(tcp)control(qmgr) port(1414)

start listener(TCP.LISTENER)

7) 在管理工具内执行以下命令,创建远程MQ Explorer使用的通道

define channel(SYSTEM.ADMIN.SVRCONN) chltype(SVRCONN)REPLACE

8) 在管理工具内执行以下命令,放行远程的管理连接

set CHLAUTH(*) TYPE(BLOCKUSER)USERLIST('nobody','*MQADMIN')

set CHLAUTH(SYSTEM.ADMIN.*) TYPE(BLOCKUSER)USERLIST('nobody')

使用连接队列

1) 使用MQ的Windows介质安装MQExplorer,并启动

2) 左侧菜单中在Queue Managers右键,选择Add Remote QueueManager...

3) Queue Manger Name中填写远程对列管理器的名称,此处为QM_TEST。在后续的配置页面中输入队列管理器所在服务器的ip,用户名为mqm(无密码)

4) 如果连接时MQ Explorer显示异常AMQ4059 Reason Code 2538,可能是防火墙阻碍了访问,可以在Linux服务器上执行iptables -F 以后再试试