MQ队列管理器搭建

Posted 俄而123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MQ队列管理器搭建相关的知识,希望对你有一定的参考价值。

多应用单MQ使用场景

技术分享
如上图所示,MQ独立安装,或者与其中一个应用同处一机。Application1与Application2要进行通信,但因为跨系统,所以引入中间件来实现需求。
 
Application1需要连接MQ,并将消息放入队列Queue中,Application2同样连接MQ,监听在Queue队列上,一旦发现有消息进入则取出该消息进行处理。
下面将给出创建队列管理器和队列的示例:
    定义队列管理器名称为Qm1,本地队列名称为Queue,服务器连接通道CHAN_SERVER_CON,监听端口为1414,死性队列QDEAD
    搭建MQ队列可以使用图形用户界面也可以使用命令进行,此处使用命令进行。
1.创建MQ队列管理器,使用mqm用户登录MQ所在机器
[email protected] ~>$crtmqm Qm1
2.启动Qm1队列管理器
[email protected] ~>$strmqm Qm1
3.进入Qm1命令行
[email protected] ~>$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回车也可以。
[email protected] ~>$endmqm Qm1    停止队列管理器
[email protected] ~>$dspmq                  查看当前队列管理器的执行状态,当队列管理器状态变为Ended normally时才能删除
[email protected] ~>$dltmqm Qm1       删除队列管理器,它会级联删除该队列管理器中的队列和监听器等等。
 
2.至于java如何与MQ通信,如何连接MQ队列此处不做过多的阐述了!

以上是关于MQ队列管理器搭建的主要内容,如果未能解决你的问题,请参考以下文章

MQ队列管理器搭建

如何测试客户端跟WebSphere MQ队列管理器的连接

ibm的mq创建管理器时间太长

无法连接 Websphere MQ 队列管理器

WebSphere MQ 入门指南

确定访问我们本地队列的远程 MQ 队列管理器