两个MQ队列管理器之间互相放消
- 格式:doc
- 大小:179.50 KB
- 文档页数:15
mq数据同步方案-回复MQ数据同步方案一、引言消息队列(Message Queue,简称MQ)是一种在分布式系统中用于应用程序之间进行异步通信的解决方案。
它通过将消息发送到中间代理(消息中间件)来解耦发送者和接收者之间的直接通信,从而提高系统的可伸缩性和弹性。
在数据同步方案中,MQ可以起到缓冲、解耦、削峰填谷等作用,使数据可以在不同系统之间进行高效稳定的传输。
本文将深入探讨如何利用MQ实现数据同步方案,主要包括以下几个方面:MQ的相关概念和原理、MQ数据同步的基本流程、数据同步方案的设计和实施、以及常见的MQ数据同步方案举例等。
二、MQ的相关概念和原理1. 消息队列消息队列是一种异步通信机制,它将消息发送者和消息接收者解耦,使得发送者和接收者可以独立地运行和扩展。
消息队列中的消息以先进先出(FIFO)的方式进行排序,确保消息的顺序性。
2. 消息中间件消息中间件是实现消息队列的软件系统,它负责接收、存储和转发消息,它还提供了消息发送和接收的API接口,使得应用程序可以与消息队列进行交互。
3. 生产者和消费者生产者是消息队列的消息发送者,它负责将消息发送到消息队列中。
消费者是消息队列的消息接收者,它负责从消息队列中获取消息并进行处理。
4. 主题和队列主题是消息队列中的一种发布/订阅模式,一个主题可以有多个消费者。
队列是消息队列中的一种点对点模式,一个队列只能有一个消费者。
三、MQ数据同步的基本流程MQ数据同步的基本流程包括数据产生、数据发送、数据接收和数据处理等环节。
下面将详细介绍每个环节的实现方式。
1. 数据产生数据产生是指在源系统中生成需要同步的数据。
可以通过源系统的数据库触发器、消息队列客户端等方式实现数据的实时产生。
2. 数据发送数据发送是指将数据通过消息队列发送到目标系统。
生产者将数据封装成消息,并通过消息中间件发送到消息队列,等待消费者的接收。
3. 数据接收数据接收是指消费者从消息队列中获取数据。
(转)IBMmq基本使⽤⼀、下载7.5 Trial版本这是下载⽹址,下载前先必须注册IBM ID,下载完成后⼀路Next即可(注:windows上安装时,会询问是否域环境,初次学习时,为简单起见,建议选择No)安装完成后,MQ的Bin⽬录会⾃动添加到环境变量Path中,以后就可以直接⽤Dos命令⾏窗⼝操作(当然,也可以⽤图形化GUI⽅式通过IBM WebSphere MQ Explorer来管理)注:安装时,强烈建议⽤管理员Administrator⾝份安装,否则安装完成后,有可能license⽆法⽣效、runmqsc命令模式下⽆法正常执⾏命令.⼆、创建队列管理器WIN + R键,输⼊cmd,进⼊命令⾏窗⼝,键⼊:crtmqm QM_TEST创建⼀个队列管理器QM_TEST(你可以改成⾃⼰想要的名字),如果把整个MQ理解成⼀个数据库实例,QM_TEST相当于就是db instance中的schema(或user)命令⾏创建的队列管理器默认是不活动状态的,可以⽤strmqm QM_TEST来启动队列管理器三、创建队列如果说“队列管理器”是db中的schema,那么"队列"就相当于db中的Table了,⽽队列中的每条"消息",就相当于Table中的每条记录,继续在命令⾏窗⼝模式下,输⼊runmqsc QM_TEST将进⼊MQ的交互命令模式,继续输⼊define qlocal(Q1)将创建⼀个本地队列Q1(你可以改成⾃⼰需要的名字),如果此时你打开 "开始菜单->程序->IBM WebSphere MQ->WebSphere MQ Explorer (Installation1)"也能同步在图形界⾯下,看到这个队列最后键⼊end,退出MQ的交互命令模式。
四、发送消息继续在Windows命令模式下,输⼊amqsput Q1 QM_TEST这⾥系统将处于等待⽤户输⼊的状态,随便输⼊⼀些消息,然后连敲⼆次回车,完成消息发送五、接收消息amqsget Q1 QM_TEST把刚才的put换成了get,将从队列管理器QM_TEST的队列Q1中,把消息取出来六、进阶指南熟悉以上命令⾏操作后,还可以⽤图形化的操作⽅式再强化⼀遍(建议还是多⽤命令⾏模式,因为有些操作只能⽤命令⾏完成,⽐如后⾯要提到的修改队列管理器编码)WebSphere MQ Explorer中,从"帮助"菜单⾥调出帮助⽂档,⾥⾯有⼀个不错的教程,强烈推荐新⼿看⼀遍不过,"教程2:将消息发送⾄远程队列"这⾥,帮助⽂档上有⼏个细节没讲透,导致初次⽤命令⾏照着做,可能会不成功,⼏个要点如下:1、通道命名问题发送⽅与接收⽅的通道名称,必须⼀样,这样⼆边才能对应起来2、接收⽅必须要有侦听器,⽽且要处于激活状态3、发送⽅的发送通道中,连接名称格式为:"<接收⽅HostName或IP地址>(接收⽅-队列管理器-侦听器的TCP端⼝) ,不包括"<>“,⽐如⽐如:yangjm(1514)或172.12.134.14(1514)4、发送⽅的发送通道必须处于激活状态,如果通道启动失败,尝试右键->ping/复位,如果还不⾏,检查上述要点1-3是否设置有问题七、远程连接问题图形⽅式添加“远程队列管理器”时,如果远程队列也是7.x或以上版本,当前登录⽤户是管理员时,将提⽰权利不⾜,拒绝连接,原因是7.0以上,MQ提⾼了安全性,会默认拦截管理员,详情可参考IBM上的解释解决⽅式:1. 更换当前⽤户,建⼀个mqm⽤户组(MQ安装后,会默认创建该Windows⽤户组)的⽤户,然后以该⽤户⾝份登录操作2.参考IBM上的解释,如果出于学习⽬的,最简单的做法,就是在runmqsc交互模式下,键⼊ALTER QMGR CHLAUTH(DISABLED) 直接关闭通道认证(⽣产环境不推荐这么做)另外,要想本机上的队列能被远程管理,前提是该队列管理器允许远程管理,操作⽅式:队列管理器上右击->选择"远程管理...",接下来的事情⼤家都知道⼋、字符集编码问题每个队列管理器,都有⼀个CCSID的属性,对应的就是字符集编码,在windows系统中,这个编码应该是1381,如果你是⽤其它OS(⽐如linux)的配置通过脚本导⼊MQ的,可能编码就不是1381了,这会导致在windows上⽆法连接\启动队列管理器,可以通过MQ交互命令⾏修改,runmqsc QM_TEST 进⼊QM_TEST的MQ交互模式DISPLAY QMGR CCSID 查看当前的CCSID属性ALTER QMGR CCSID(1381) 修改字符集编码为1381九、如何从“试⽤版”升级成“正式版”试⽤版默认只能⽤90天,到期后,如果购买了正式版的license,可以通过命令⾏导⼊license,命令如下:setmqprd x:\license\amqpcert.lic注:amqpcert.lic中的P即代表这是Product⽣产版本,setmqprd 后⾯的路径即为license⽂件的所在路径⼗、java连接⽰例代码import com.ibm.mq.MQC;import com.ibm.mq.MQEnvironment;import com.ibm.mq.MQException;import com.ibm.mq.MQGetMessageOptions;import com.ibm.mq.MQMessage;import com.ibm.mq.MQPutMessageOptions;import com.ibm.mq.MQQueue;import com.ibm.mq.MQQueueManager;/** 可以在MQ的资源管理器的某⼀个队列上放⼊测试消息、浏览消息等* 可以放⼊多条消息,按先进先出的⽅式取得*/public class MQTest {private String qManager;// QueueManager名private MQQueueManager qMgr;private MQQueue qQueue;String HOST_NAME;int PORT = 0;String Q_NAME;String CHANNEL;int CCSID;String Msg;public void init() {try {HOST_NAME = "yangjm";//Hostname或IPPORT = 1414;//要有⼀个侦听器,处于活动状态,且监听1414端⼝qManager = "QM_APPLE";Q_NAME = "Q1";//Q1是⼀个本地队列CHANNEL = "DC.SVRCONN";//QM_APPLE上要建⼀个名为DC.SVRCONN的服务器连接通道CCSID = 1381; // 表⽰是简体中⽂,// CCSID的值在AIX上⼀般设为1383,如果要⽀持GBK则设为1386,在WIN上设为1381。
mq的使用场景和步骤MQ(Message Queue)是一种异步通信模式,在分布式系统中被广泛应用。
它将消息从一个应用程序传递到另一个应用程序,可以解耦应用程序之间的直接依赖关系。
MQ的使用场景:1. 异步任务处理:可以将耗时的任务放在消息队列中处理,提高系统的并发能力和响应速度。
2. 应用解耦:不同的应用之间可以通过消息队列进行解耦,提高系统的可伸缩性和可维护性。
3. 数据同步:可以将不同系统之间的数据同步操作通过消息队列进行异步处理。
4. 流量削峰:在大并发请求下,可以通过消息队列来控制系统的流量,避免系统崩溃或过载。
5. 日志处理:将日志消息发送到消息队列,然后通过消费者处理和存储,以降低日志系统的压力。
MQ的使用步骤:1. 安装和配置MQ系统:选择适合自己系统的MQ软件,如RabbitMQ、Kafka等,并进行相应的安装和配置。
2. 创建消息队列:在MQ系统中创建一个或多个消息队列,用于存储消息。
3. 发送消息:生产者将要发送的消息发送到消息队列中。
4. 接收消息:消费者监听(或订阅)消息队列,当有消息到达时,消费者接收并处理消息。
5. 处理消息:消费者处理接收到的消息,根据业务需求进行相应的处理逻辑。
6. 确认消息:当消费者成功处理一条消息后,向MQ系统发送确认消息,表示这条消息已经被处理完成。
7. 监控和调优:根据实际情况监控MQ的性能指标,进行性能调优以提高系统的稳定性和可靠性。
需要注意的是,不同的MQ系统可能会有一些细微的差别,具体的使用步骤可能会有所不同。
因此,在使用特定MQ系统之前,应该详细了解该MQ系统的使用文档和实践经验。
目前随着我们在中国的WebSphere MQ(MQSeries)用户数量越来越多,越来越多的用户开始对MQ使用时的性能优化问题提出要求,希望能够更好地使用我们的产品,并尽可能的发挥它的最大优势,这里,我根据日常积累的经验谈一谈在MQ性能优化方面应该考虑的因素。
任何一种软件,都会存在一定的系统管理工作,WebSphere MQ也不例外,在使用WebSphere MQ(以下简称MQ)时,我们可能会由于配置的原因或者由于系统的原因,也可能由于MQ本身的原因,而遇到MQ运行过程中的一些故障和问题,如何能够快速地定位这些问题,分析问题发生的原因,进而快速地解决问题,恢复系统正常运行呢?这需要一定的经验积累和技巧,本文将对这方面给出一些简单的提示和方法。
其实,MQ的故障分析手段很多,例如MQ的错误日志即是一种简单易行、快速有效的手段,通过查看错误日志往往能一针见血地迅速解决问题,另外MQ还提供了其它一些手段,如通过作trace 和FFST (First Failure support technology) 等途径,来追踪和记录错误信息,从而解决问题。
作为一个跨平台的中间件产品,MQ在各个平台上的系统管理方法也有极大的相似之处,尤其在AIX,SUN,HP-UNIX等Unix平台和WindowsNT/2000平台上,本文将以MQ for Windows NT/2000 为例,帮助您分析和定位产品运行过程中可能发生的问题,并给出查找问题的办法,帮助您分析问题产生的可能原因,从而给出解决问题的途径。
在分析故障原因时,通常可从一个或一系列症状入手,对它们进行跟踪以发现问题发生的原因。
然而,诊断问题不是解决问题。
但是,问题诊断的过程常使你能够解决问题。
例如,如果你发现引起问题的原因是应用程序中的一个错误,你就可以通过改正该错误来解决问题。
如果在确定了问题的原因并采取了相应措施后,您仍不能解决问题,您可以和IBM支持中心联系以帮助您解决问题。
mq的使用方法(原创版4篇)目录(篇1)1.MQ 的概念与作用2.MQ 的基本使用方法3.MQ 的高级使用方法4.MQ 的使用注意事项正文(篇1)一、MQ 的概念与作用消息队列(Message Queue,简称 MQ)是一种应用程序之间通过消息进行通信的技术。
它起到了解耦、削峰填谷、保证消息顺序等作用,广泛应用于企业级应用中。
二、MQ 的基本使用方法1.创建队列:通过命令创建一个队列,如:`创建队列 my_queue`。
2.发送消息:通过命令向队列发送消息,如:`发送消息 my_queue "Hello, MQ!"`。
3.接收消息:通过命令从队列接收消息,如:`接收消息 my_queue`。
三、MQ 的高级使用方法1.消息过滤:可以使用`#`符号进行消息过滤,如:`接收消息my_queue # "关键字"`。
2.消息持久化:可以通过设置队列属性实现消息持久化,以防止数据丢失。
3.消息重试:可以使用`retry`命令实现消息的重试发送。
四、MQ 的使用注意事项1.合理设置队列参数,如队列长度、消息大小等,以避免队列过满或消息丢失。
2.注意消息顺序,确保接收消息的顺序与发送消息的顺序一致。
3.确保消息发送与接收的及时性,避免出现消息堆积或接收不及时的情况。
通过以上方法,您可以熟练地使用消息队列(MQ)进行应用程序间的通信。
目录(篇2)1.MQ 的概念与作用2.MQ 的基本组成3.MQ 的使用方法4.MQ 的优缺点5.总结正文(篇2)一、MQ 的概念与作用消息队列(Message Queue,简称 MQ)是一种应用程序之间通过消息传递进行通信的技术。
它起到了解耦、异步处理、削峰填谷等作用,使得系统在面对高并发、高负载的情况下仍能稳定运行。
二、MQ 的基本组成一个典型的消息队列系统包括以下几个部分:1.生产者(Producer):负责向队列中发送消息的应用程序。
2.消费者(Consumer):负责从队列中接收并处理消息的应用程序。
mq常用命令一、连接管理命令1. mqsc:进入MQSC模式,用于管理MQ对象。
2. runmqsc:运行MQSC脚本。
3. strmqm:启动MQ队列管理器。
4. endmqm:停止MQ队列管理器。
5. dspmq:显示当前系统中的MQ队列管理器。
6. crtmqm:创建新的MQ队列管理器。
7. dltmqm:删除指定的MQ队列管理器。
二、队列管理命令1. crtlq:创建本地队列。
2. dltmq:删除本地队列。
3. dmpmqmsg:显示队列中的消息。
4. amqmsrvn:启动MQ服务。
5. amqmdnet:启动MQ分布式网络服务。
6. amqmdgin:启动MQ远程订阅服务。
三、消息处理命令1. amqsput:向队列发送消息。
2. amqsget:从队列接收消息。
3. amqssub:订阅消息。
4. amqssubc:取消订阅消息。
5. amqsgrep:根据消息内容过滤消息。
四、通道管理命令1. crtmqchs:创建MQ通道。
2. dltmqchs:删除MQ通道。
3. strmqmchs:启动MQ通道。
4. endmqmchs:停止MQ通道。
5. dspmqchs:显示MQ通道。
6. amqssslc:启用SSL加密通道。
五、安全管理命令1. setmqaut:设置队列对象的授权。
2. dspmqaut:显示队列对象的授权。
3. setmqaut:设置队列管理器的授权。
4. dspmqaut:显示队列管理器的授权。
5. setmqaut:设置通道的授权。
6. dspmqaut:显示通道的授权。
六、日志管理命令1. amqsbcg:启用MQ日志。
2. amqsbcgc:停用MQ日志。
3. amqsbcgd:调整MQ日志大小。
4. dspmqlog:显示MQ日志。
七、监控命令1. dspmqrte:显示MQ路由器状态。
2. dspmqspl:显示MQ任务状态。
3. dspmqsrv:显示MQ服务状态。
mq实现机制一、什么是MQMQ(Message Queue)是一种消息传递的机制,用于不同应用程序之间的异步通信。
它允许发送者将消息发送到队列中,并由接收者从队列中获取消息,实现了解耦和异步处理的目的。
二、MQ的基本原理MQ的基本原理是通过消息队列实现消息的异步传输和存储。
具体来说,MQ采用了生产者-消费者模式,消息的发送者称为生产者,消息的接收者称为消费者。
MQ系统中有一个中间件,即消息队列,生产者将消息发送到队列中,而消费者从队列中获取消息进行处理。
1. 生产者发送消息:生产者将消息发送到队列中,消息可以是任何形式的数据,如文本、图片、视频等。
2. 消费者获取消息:消费者从队列中获取消息进行处理。
消费者可以有多个,可以根据需要进行扩展。
3. 消息的存储和传输:MQ系统会将消息存储在队列中,保证消息的可靠性和持久性。
同时,MQ系统负责消息的传输,将消息从生产者传递到消费者。
三、MQ的实现机制MQ的实现机制主要包括消息的传递方式、消息的持久化、消息的路由和负载均衡等。
1. 消息的传递方式:MQ系统可以采用点对点模式或发布-订阅模式进行消息的传递。
- 点对点模式:生产者将消息发送到特定的队列中,消费者从队列中获取消息进行处理。
每个消息只能被一个消费者接收。
- 发布-订阅模式:生产者将消息发送到主题中,消费者订阅感兴趣的主题并获取消息进行处理。
每个消息可以被多个消费者接收。
2. 消息的持久化:MQ系统可以将消息进行持久化,确保即使系统故障或重启,消息也不会丢失。
持久化的方式可以是将消息存储在磁盘上,或者通过备份和复制来保证消息的可靠性。
3. 消息的路由:MQ系统可以根据消息的内容、标签或其他属性来进行消息的路由。
路由的方式可以是基于消息队列的名称、主题的名称或者其他规则。
4. 负载均衡:当有多个消费者时,MQ系统可以进行负载均衡,将消息均匀地分配给各个消费者,提高系统的性能和可伸缩性。
四、MQ的应用场景MQ在现代分布式系统中有广泛的应用,主要包括以下几个方面:1. 异步通信:MQ可以实现不同应用程序之间的异步通信,提高系统的响应速度和吞吐量。
MQ维护与操作MQ维护与操作1.MQ 的⽇志清理MQSeries ⽤错误⽇志记录与MQSeries ⾃⾝运⾏,队列管理器以及通道有关的消息。
因此,错误⽇志对于MQSeries 错误诊断⾮常重要。
AIX 平台上的MQSeries错误⽇志:当队列管理器名称已知,并且队列管理器可⽤时,错误⽇志位于/var/mqm/qmgrs/qmname/errors ⽬录下,如:与MQ 通道有关的消息。
当队列管理器不可⽤时,错误⽇志位于/var/mqm/qmgrs/@SYSTEM/errors ⽬录下;当错误是事务⽇志MQ 的故障维护与Client 应⽤程序有关,错误⽇志位于:/var/mqm/errors ⽬录下。
系统管理员要定期观察错误⽇志,清楚产⽣错误的原因,并根据需要定期清理或备份错误⽇志。
MQSeries 有两种事务⽇志类型:环型⽇志和线型⽇志,所在⽬录为/var/mqm/log环型⽇志预先指定⽇志⽂件的个数,MQ 运⾏时事务⽇志循环使⽤这些⽂件。
环型⽇志的⽇志⽂件所占空间不会增长,也⽆法备份MQ 应⽤系统的映像。
本系统现设计为环型⽇志。
线型⽇志指MQSeries 在运⾏的过程中会随着⽇志记录的增加⽽产⽣新的⽇志⽂件,线型⽇志的可以保证事务运⾏中产⽣的⽇志有⾜够的空间(除⾮⽂件系统空间不⾜),还可以把MQ 应⽤系统的映像备份到⽇志中,在发⽣故障后完整地恢复,线型⽇志⽇志⽂件所占⽤的空间会不断增长,需要系统管理员定期⼿⼯删除过期的⽇志⽂件。
2.如何清除MQ 队列管理器遗留的共享内存和信号量下⾯列出的是⼀段⽤于清除MQSeries 上⼀次遗留的共享内存和信号量的⼩程序。
通常遇到的状况是当启动队列管理器时失败,返回消息AMQ8041,指明以前的进程依然在使⽤中。
解决⽅法:运⾏以下脚本或命令。
ipcs -m| grep mqm | awk '{print $2}'|xargs -i ipcrm -m {}ipcs -s| grep mqm | awk '{print $2}'|xargs -i ipcrm -s {}3.如何解决MQSeries 队列管理器⽆法启动报“AMQ5522”错误当启动MQSeries 队列管理器时,⽆法启动,报“AMQ5522”错误。
本地和远程队列的单个队列管理器实现过程----6月份技能提升内容1、基础环境2、安装MQ在第一章中我们已经学会了如何安装MQ了,在这里就不在详细阐述具体步骤了,我们需要是把两台服务器都安装MQ。
安装 WebSphere MQ 前,必须执行 ./mqlicense.sh,以阅读和接受许可证。
安装所需的 MQ 包及 WebSphere MQ Java 和 IBM Java SDK 包,以便为WebSphere MQ 开发 Java 客户机:[mqm@product240 install] # rpm -ivh IBMJava2-SDK-1.4.2-0.0.i386.rpm [mqm@product240 install] # rpm -ivh MQSeriesRuntime-6.0.0-0.i386.rpm[mqm@product240 install] # rpm -ivh MQSeriesServer-6.0.0-0.i386.rpm [mqm@product240 install] # rpm -ivh MQSeriesJava-6.0.0-0.i386.rpmWebSphere MQ 现在已经完成安装,并有用于进行配置的名为 mqm 的用户和组。
缺省情况下,WebSphere MQ 安装在 /opt/mqm 中,队列和其他配置信息位于用户 mqm 的主目录中。
Java SDK 安装在 /opt/IBMJava2-142 中,Java 解释程序位于 /opt/IBMJava2-142/bin 中。
3、MQ TCP连接配置命令在配置之前有必要先了解一下WebSphere MQ 术语和定义1)WebSphere MQ 术语和定义队列管理器---提供队列服务和 API 及用于管理队列的管理功能的系统管理程序。
队列---消息所发送到的命名目的地。
本地队列---位于队列管理器本地的队列。
远程队列---驻留在其他队列管理器(可能位于其他主机上)的队列。
传输队列---以远程队列为目标的临时消息队列。
通道---队列管理器之间的通信路径。
侦听器---从客户机或其他队列管理器接受网络请求。
命令服务器---验证命令并将有效命令发送到命令处理器(后者随后执行命令)。
2)MQ TCP连接配置命令在product240机器上执行如下操作创建队列管理器[mqm@product240 ~] # crtmqm QM_LINUX240启动队列管理器[mqm@product240 ~] # strmqm QM_LINUX240使用MQ控制台命令RUNMQSC配置runmqsc QM_LINUX240●创建死信队列:DEFINE QL(RE240.DEADQ) DEFPSIST(YES)●更改队列管理器属性, 设置死信队列为NT.DEADQ ALTER QMGR DEADQ(RE240.DEADQ)●创建本地传输队列RE242:DEFINE QLOCAL(RE242)+ USAGE(XMITQ) +DEFPSIST(YES)●创建远程队列 TO.RE242 , 对应于 RE242 上的本地队列 FROM.RE240,传输队列为RE242:DEFINE QREMOTE(TO.RE242) + RNAME(FROM.RE240) + RQMNAME(QM_LINUX242) + XMITQ(RE242)●创建发送通道 RE240.TO.RE242, 使用 TCPIP 协议,远程主机地址为192.168.1.242 port为1414, 传输队列为RE242:DEFINE CHANNEL(RE240.TO.RE242)+ CHLTYPE(SDR) + CONNAME('192.168.1.242(1414)') + XMITQ(RE242)●创建本地监听DEFINE LISTENER(LN240) + TRPTYPE(TCP) +PORT(1414) + IPADDR(192.168.1.240) + CONTROL(QMGR)在product242机器上执行如下操作创建队列管理器[mqm@product242 ~] # crtmqm QM_LINUX242启动队列管理器[mqm@product242 ~] # strmqm QM_LINUX242使用MQ控制台命令RUNMQSC配置runmqsc QM_LINUX242●创建死信队列:DEFINE QL(RE242.DEADQ) DEFPSIST(YES)●更改队列管理器属性, 设置死信队列为NT.DEADQ ALTER QMGR DEADQ(RE242.DEADQ)●创建本地队列FROM.RE240:DEFINE QLOCAL(FROM.RE240) DEFPSIST(YES)●创建接收通道 RE240.TO.RE242, 使用 TCPIP 协议,传输队列为RE240:DEFINE CHANNEL(RE240.TO.RE242) CHLTYPE(RCVR)●创建本地监听DEFINE LISTENER(LN242) + TRPTYPE(TCP) +PORT(1414) + IPADDR(192.168.1.242) + CONTROL(QMGR)3)分别启动两节点监听runmqlsr –t TCP –p 1414 –m QM_LINUX240 &runmqlsr –t TCP –p 1414 –m QM_LINUX242 &4)启动通道runmqchl -m QM_LINUX240 -c RE240.TO.RE242 &或者到MQ控制台里面执行如下命令启动Runmqsc QM_LINUX240start CHANNEL(RE240.TO.RE242)5)MQ TCP连接验证RE240 向 RE242 发送消息,RE240端运行:$ cd /opt/mqm/samp/bin./amqsput TO.RE242 QM_LINUX240在提示下输入字符,每条消息以回车键作结束。
若不输任何字符,击回车键时将退出该程序。
RE242端在/usr/lpp/mqm/samp/bin 下,运行:$ cd /opt/mqm/samp/bin./amqsget FROM.RE240 QM_LINUX242两个MQ队列管理器之间互相放消息的实现基于第三章实现的过程,现在我们来实现两个MQ队列管理器之间互相放消息。
MQ TCP连接配置命令在product242机器上执行如下操作创建队列管理器[mqm@product242 ~] # crtmqm WMQM242启动队列管理器[mqm@product242 ~] # strmqm WMQM242查看队列管理器使用MQ控制台命令RUNMQSC配置runmqsc WMQM242●创建死信队列:DEFINE QL(WMQM240.DEADQ) DEFPSIST(YES)●更改队列管理器属性, 设置死信队列为NT.DEADQ ALTER QMGR DEADQ(WMQM240.DEADQ)●创建本地传输队列WMQM240:DEFINE QLOCAL(WMQM240)+ USAGE(XMITQ) +DEFPSIST(YES)●创建远程队列 TO. WMQM240 , 对应于 WMQM240 上的本地队列 FROM.WMQM242, 传输队列为WMQM240:DEFINE QREMOTE(TO.WMQM240) + RNAME(FROM.WMQM242) + RQMNAME(WMQM240) + 队列管理器的名字XMITQ(WMQM240)●创建发送通道 WMQM242.TO.WMQM240, 使用 TCPIP 协议,远程主机地址为192.168.1.240 port为1415, 传输队列为WMQM240:DEFINE CHANNEL(WMQM242.TO.WMQM240)+ CHLTYPE(SDR) + CONNAME('192.168.1.240(1415)') + XMITQ(WMQM240)●创建本地监听DEFINE LISTENER(LN242) + TRPTYPE(TCP) +PORT(1415) + IPADDR(192.168.1.242) + CONTROL(QMGR)说明:上面的监听其实可以不用创建了,因为在第三章的时候已经创建完成了在product240机器上执行如下操作创建队列管理器[mqm@product240 ~] # crtmqm WMQM240启动队列管理器[mqm@product240 ~] # strmqm WMQM240查看队列管理器状态使用MQ控制台命令RUNMQSC配置runmqsc WMQM240●创建死信队列:DEFINE QL(WMQM240.DEADQ) DEFPSIST(YES)●更改队列管理器属性, 设置死信队列为WMQM240.DEADQ ALTER QMGR DEADQ(WMQM240.DEADQ)●创建本地队列FROM.WMQM242:DEFINE QLOCAL(FROM.WMQM242) DEFPSIST(YES)●创建接收通道 WMQM242.TO.WMQM240, 使用 TCPIP 协议,传输队列为WMQM242:DEFINE CHANNEL(WMQM242.TO.WMQM240) CHLTYPE(RCVR)●创建本地监听DEFINE LISTENER(LN240) + TRPTYPE(TCP) +PORT(1415) +IPADDR(192.168.1.240) + CONTROL(QMGR)3)分别启动两节点监听runmqlsr –t TCP –p 1415 –m WMQM240 &runmqlsr –t TCP –p 1415 –m WMQM242 &4)在发送端启动通道runmqchl -m WMQM242 -c WMQM242.TO.WMQM240 &或者到MQ控制台里面执行如下命令启动Runmqsc WMQM242start CHANNEL(WMQM242.TO.WMQM240)在接收端查看5)MQ TCP连接验证WMQM242 向 WMQM240 发送消息, WMQM242端运行:$ cd /opt/mqm/samp/bin./amqsput TO. WMQM240 WMQM242在提示下输入字符,每条消息以回车键作结束。
若不输任何字符,击回车键时将退出该程序。
WMQM240端在/usr/lpp/mqm/samp/bin 下,运行:$ cd /opt/mqm/samp/bin./amqsget FROM.WMQM242 WMQM2406)总结:至此实现了两个MQ队列管理器之前相互放消息的目的。