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队列此处不做过多的阐述了!

时间: 2024-08-02 02:50:32

MQ队列管理器搭建(一)的相关文章

MQ队列管理器搭建(三)

MQ集群及网关队列管理器的搭建 描述: 如上图所示,为MQ的集群搭建部署图.CLUSTERA.CLUSTERB分别是两个集群,其中Qm1-Qm3.GateWayA为CLUSTERA集群中的队列管理器:Qm1-Qm3.GateWayB是CLUSTERB集群中的队列管理器.GateWayA与GateWayB负责网络路由和消息分发,使用集群的方式可以达到负载均衡的目的,除此之外还能提高MQ使用的稳定性.同一个集群中除网关队列管理器外的任意队列管理器因故关闭或停止工作后,其他的队列管理器可以接管它的工作

MQ队列管理器搭建(二)

MQ级联方式使用场景 使用场景: 如上图所示,Application1与Application2要进行通信或者消息互换,使用MQ中间件作为中介.上图中,Application1与Application2通信不进行直接连接,而是通过与MQ通信从而实现二者的通信.图中两个MQ的信息如上描述.其中RemoteQueue为远程队列,该队列指定了目标端对应的队列为Queue,并且该远程队列指定了传输所使用的传输队列尾TransQueue:而此传输队列TransQueue与发送通道CHAN_QMGR1_TO

JMSWMQ0018: 连接至队列管理器 'QMGR' 失败,连接方式为 'Bindings'

之前写的一个用JMS监听MQ的java程序,调用本地MQ一起正常.可是今天突然去调用远程服务器上的队列时却报错了. 以下是报错信息 Exception in thread "main" org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is com.ibm.msg.client.jms.Det

MQ队列管理

分享一段代码,很实用. 下面这段java代码是我在国外一个论坛上发现的,源地址已经忘了.代码的作用是可以删除正在使用的mq的队列消息,管理mq的人一定知道它的美妙了吧,哈哈. 我拿来改了下,增加了2个参数支持:ccsid和channel.上代码: 1 import java.util.Hashtable; 2 import com.ibm.mq.*; 3 4 /** 5 * A simply Java class to destructively read (delete) all messag

Java调用MQ队列

IBM MQ 6.0中设置两个队列,(远程队列.通道之类都不设置). 队列管理器是XIR_QM_1502 队列名称是ESBREQ IP地址是10.23.117.134(远程的一台电脑,跟我的电脑不在一个局域网内) 端口1414 CCSID 1208 MQ配置可以参考这个,有配图http://wenku.baidu.com/view/06d108d0360cba1aa811daa3.html 程序如下,发送线程两个,接收线程一个.接收完毕后就结束. [java] view plaincopy /*

postfix队列管理

队列管理单元的服务器程序--qmgr,是整个postfix系统的中心枢纽.所有邮件,包括等待送出与从外界收进来的,都必须通过队列.了解队列的运行原理以及postfix如何处理队列,有助于你解决问题.  队列管理器总共设置了五个做不同用途的队列,包括:输入.活动.等待.故障.保留.每个队列在queue_directory参数指定的路径下各有一个专属的子目录.默认的队列目录是/var/spool/postfix/.  于后台运作的qmgr daemon能自动处理大部分的队列管理工作,必要时,管理员可

9布局管理器

布局管理器 所谓 GUI 界面,归根结底,就是一堆组件的叠加.我们创建一个窗口,把按钮放上面,把图标放上面,这样就成了一个界面.在放置时,组件的位置尤其重要.我们必须要指定组件放在哪里,以便窗口能够按照我们需要的方式进行渲染.这就涉及到组件定位的机制. Qt 提供了两种组件定位机制:绝对定位和布局定位. 绝对定位就是一种最原始的定位方法:给出这个组件的坐标和长宽值. 这样,Qt 就知道该把组件放在哪里以及如何设置组件的大小.但是这样做带来的一个问题是,如果用户改变了窗口大小,比如点击最大化按钮或

用STL设计消息队列、优先级消息队列、资源分配管理器

STL库老早已经成为C++的一部分,在使用C++开发项目的过程中,很多人还在犹豫要不要使用STL库,觉得STL库很难,其实不然.我工作的项目中现在大量使用STL库,STL使用调试简单,高效,可以减少很多重复的代码. 本文的主要目的是使用STL的queue 和 priority queue来阐述下项目中经常使用的消息队列以及资源分配模式.本文的例子主要如下: 消息队列 带优先级的消息队列 资源分配管理器 STL容器 我们将使用下面的容器来实现本文的例子: queue 队列容器支持添加一个元素,并且

使用NuGet.Server搭建公司内部的Nuget(包)管理器

使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言 Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加.移除和更新引用的工作变得更加快捷方便.这是维基百科中的定义,实际上Nuget就是一个包管理器,类似于Java的Maven,可以帮助我们更方便的管理dll. 相信每个人都从官方的nuget服务器上下载过一些第三方组件.如:log4net.qu