码迷,mamicode.com
首页 > 其他好文 > 详细

MQ队列管理器搭建(一)

时间:2017-05-22 23:26:23      阅读:622      评论:0      收藏:0      [点我收藏+]

标签:大写   系统   需求   csdn   连接   str   安装   启动   队列   

多应用单MQ使用场景

技术分享
如上图所示,MQ独立安装,或者与其中一个应用同处一机。Application1与Application2要进行通信,但因为跨系统,所以引入中间件来实现需求。
 
Application1需要连接MQ,并将消息放入队列Queue中,Application2同样连接MQ,监听在Queue队列上,一旦发现有消息进入则取出该消息进行处理。
下面将给出创建队列管理器和队列的示例:
    定义队列管理器名称为Qm1,本地队列名称为Queue,服务器连接通道CHAN_SERVER_CON,监听端口为1414,死性队列QDEAD
    搭建MQ队列可以使用图形用户界面也可以使用命令进行,此处使用命令进行。
1.创建MQ队列管理器,使用mqm用户登录MQ所在机器
mqm@localhos ~>$crtmqm Qm1
2.启动Qm1队列管理器
mqm@localhos ~>$strmqm Qm1
3.进入Qm1命令行
mqm@localhos ~>$runmqsc Qm1
4.定义一个本地队列Queue
DEFINE QLOCAL (‘Queue‘)  DEFPSIST (YES) MAXDEPTH(100) REPLACE
‘Queue‘为队列名称,至于使用单引号的原因是,如果在shell脚本中不加单引号的话,最后创建出来的会变成大写QUEUE.。DEFPSIST(YES)表示该队列为持久化队列,MAXDEPTH(100)代表该队列的最大深度为100,如果消息超过了100的话,则会被放入死性队列。
5.在定义一个死性队列QDEAD
DEFINE QLOCAL (‘QDEAD‘)  DEFPSIST (YES) MAXDEPTH(100) REPLACE
6..给Qm1设置指定的死性队列,当消息无法到达指定的Queue中时,会被放入死性队列QDEAD
ALTER QMGR DEADQ(‘QDEAD’)
7.定义服务器连接通道CHAN_SERVER_CON,该通道的用途是供应用程序连接的,应用程序通过服务器连接通道从而连接MQ。
DEFINE CHANNEL(‘CHAN_SERVER_CON’) CHLTYPE(SVRCONN) REPLACE
8.定义监听器LISTENER.TCP,该端口1414应用程序连接时需要指定。
DEFINE LISTENER(‘LISTENER.TCP‘) TRPTYPE(TCP) CONTROL(QMGR) PORT(1414) REPLACE
9.启动监听器LISTENER.TCP
START LISTENER(‘LISTENER.TCP‘)
 
到此为止这个需求中的MQ队列管理器已经创建完毕了。如果在创建过程中出现错误,或者想停止队列管理器,或者想删除重新创建,则执行下述命令:
1.删除前先停止队列管理器
ctrl+c可以冲命令行跳出,或者输入end回车也可以。
mqm@localhos ~>$endmqm Qm1    停止队列管理器
mqm@localhos ~>$dspmq                  查看当前队列管理器的执行状态,当队列管理器状态变为Ended normally时才能删除
mqm@localhos ~>$dltmqm Qm1       删除队列管理器,它会级联删除该队列管理器中的队列和监听器等等。
 
2.至于java如何与MQ通信,如何连接MQ队列此处不做过多的阐述了!

MQ队列管理器搭建(一)

标签:大写   系统   需求   csdn   连接   str   安装   启动   队列   

原文地址:http://www.cnblogs.com/eer123/p/6891736.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!