MQ中将消息发送至远程队列的配置
MQ中将消息发送至远程队列的配置
摘自MQ资源管理器帮助文档V7
在开始学习本教程之前,您需要从系统管理员处了解标识网络上接收机器的名称:IP地址、MQ的端口号、队列管理器、接收(远程机器)或者是发送的队列(本地机器)名称。
消息传递如图示:
本教程介绍了如何设置一台计算机上的队列管理器 QM_ORANGE 与另一台计算机上的队列管理器 QM_APPLE 之间的消息传递。在第一台计算机上创建的消息被传递到第二台计算机上的队列 Q1(此队列被称为远程队列)。
要点: 在本教程中,您将使用创建了队列管理器 QM_APPLE 和本地队列 Q1 的机器作为接收机器。
您将在发送机器上设置队列管理器和队列(远程队列定义和传输队列)。然后定义消息通道。最后,您将把测试消息放入发送机器,并从接收机器上的队列获取该消息。
完成本教程后,您应该基本了解如何使用远程队列定义来设置和使用 WebSphere® MQ 消息传递。
一、 在发送机器上创建队列管理器
二、 在发送队列管理器上创建队列
三、 创建消息通道
四、 将测试消息放入队列
五、 验证是否已发送测试消息
一、在发送机器上创建队列管理器
在发送机器上使用 WebSphere MQ 资源管理器创建队列管理器
无法远程完成此过程。必须在发送机器上本地完成此过程。
- 启动 WebSphere MQ 资源管理器。
- 在导航器视图中,右键单击队列管理器文件夹,然后单击新建 > 队列管理器 此时会打开创建队列管理器向导。
- 在队列管理器名称字段中,输入 QM_ORANGE。
- 选中设置为缺省队列管理器复选框。
- 单击下一步两次以转至向导的步骤 3。
- 确保选中启动队列管理器复选框。
- 确保选中自动启动队列管理器复选框。
- 单击下一步以转至向导的步骤 4。
- 确保选中创建配置用于 TCP/IP 的侦听器复选框。
- 如果完成按钮不可用,那么在侦听端口号字段中输入另一个端口号。 如果当前值为 1414,那么尝试输入 1415 或 1416。
- 单击完成。
WebSphere MQ 资源管理器的导航器视图中的队列管理器文件夹中会显示表示此队列管理器的图标,并且在您创建队列管理器后,该队列管理器会自动开始运行。
使用 MQSC 创建发送队列管理器
在发送机器上打开命令提示符,然后按照以下步骤操作:
- 通过输入以下命令来创建名为 QM_ORANGE 的缺省队列管理器:
crtmqm -q QM_ORANGE
此时会显示消息,告诉您已经创建了队列和缺省 WebSphere MQ 对象。
- 通过输入以下命令来启动此队列管理器:
strmqm
此时会显示一条消息,告诉您何时启动了该队列管理器。
- 现在,您必须通过输入以下命令来创建侦听器:
runmqlsr -m QM_APPLE -t TCP -p (port number)
注: 如果未使用 -p 参数指定任何端口,那么使用缺省端口 1414,但请注意,不能对发送方和接收方使用相同的端口号,因此,如果其中一个为 1414,那么另一个就应该是 1415。
您现在已经创建了发送队列管理器。下一个任务是在此队列管理器上创建队列。
使用 WebSphere MQ 资源管理器在发送队列管理器上创建队列
在发送队列管理器上:
- 在导航器视图中,展开队列管理器文件夹。
- 展开队列管理器 QM_ORANGE。
- 右键单击队列文件夹,然后单击新建 > 远程队列定义... 此时会打开新建远程队列定义向导。
- 在名称字段中,输入 Q1。
- 在远程队列字段中,输入 Q1。 【注:这里新建的远程队列的名称,一定要和远程机器上的队列名称相同,否则消息会发出去,但是远程机器的队列里面收不到消息,如上文提到的的Q1与Q1,或者是如下图的testQ与testQ:
】
- 在远程队列管理器字段中,输入 QM_APPLE。
- 在传输队列字段中,输入 QM_APPLE。
- 单击完成。 您现在已经创建了远程队列定义。
- 单击 QM_ORANGE 队列管理器。
- 右键单击队列文件夹,然后单击新建 > 本地队列 此时会打开新建本地队列向导。
- 在名称字段中,输入 QM_APPLE。
- 在用途字段中,选择传输。
- 单击完成。 您现在已经在本地机器上创建了传输队列。
内容视图中将会显示新队列 Q1 和 QM_APPLE。
如果内容视图中未显示这些队列,请单击位于内容视图顶部的“刷新”按钮 。
使用 MQSC 来在发送队列管理器上创建队列
在发送机器上打开命令提示符,然后按照以下步骤操作:
- 通过输入以下命令来启动 MQSC:
runmqsc
此时会显示一条消息,告诉您 MQSC 会话已启动。
- 通过输入以下命令来定义名为 QM_APPLE 的本地队列:
define qlocal (QM_APPLE) usage (xmitq)
此时会显示一条消息,告诉您何时创建了该队列。
- 通过输入以下命令来定义远程队列定义:
define qremote (Q1) rname (Q1) rqmname(QM_APPLE) xmitq (QM_APPLE)
您现在已经在发送队列管理器上创建了队列。下一个任务是创建发送队列管理器和接收队列管理器之间的消息通道。
三、创建消息通道
使用 MQ 资源管理器创建消息通道
- 在接收队列管理器 QM_APPLE 上,创建通道的接收方端:
- 在导航器视图中,展开先前创建的队列管理器 QM_APPLE,然后展开高级文件夹。
- 右键单击通道文件夹,然后单击新建 > 接收方通道... 此时会打开新建接收方通道向导。
- 在名称字段中,输入 QM_ORANGE.QM_APPLE。
- 单击完成。 您现在已经在接收机器上创建了接收方通道。
- 在发送队列管理器 QM_ORANGE 上,创建通道的发送方端:
- 展开先前创建的队列管理器 QM_ORANGE,然后展开高级文件夹。
- 右键单击通道文件夹,然后单击新建 > 发送方通道... 此时会打开新建发送方通道向导。
- 在名称字段中,输入 QM_ORANGE.QM_APPLE,然后单击下一步。
- 在连接名称字段中,输入接收机器的计算机名称或 IP 地址(您应该已经在系统管理员的帮助下获得此信息)。
- 在传输队列字段中,输入 QM_APPLE。
- 单击完成。
- 单击通道文件夹。
- 右键单击 QM_ORANGE.QM_APPLE。
- 从弹出菜单中,单击启动。
- 单击确定。 您现在已经在发送机器上创建了发送方通道。
注: 您不必启动接收方通道,因为它会在您设置发送方通道时自动启动(当设置发送方通道时,您指定了接收方通道的IP 地址)。
现在,已经在接收队列管理器 QM_APPLE 上创建接收方通道 QM_ORANGE.QM_APPLE,并且已在发送队列管理器 QM_ORANGE 上创建发送方通道 QM_ORANGE.QM_APPLE。此外,您还已经启动发送方通道,这也自动地启动了接收方通道。
使用 MQSC 创建消息通道
在接收机器上打开命令提示符,然后按照以下步骤操作:
- 通过输入以下命令来启动 MQSC:
runmqsc
此时会显示一条消息,告诉您 MQSC 会话已启动。
- 通过输入以下命令来定义接收通道:
define channel (QM_ORANGE.QM_APPLE) chltype (RCVR) trptype (TCP)
此时会显示一条消息,告诉您何时创建了该通道。
- 通过输入以下命令来停止 MQSC:
end
将显示一些消息,然后会显示命令提示符。
在发送机器上打开命令提示符,然后按照以下步骤操作:
- 通过输入以下命令来启动 MQSC:
runmqsc
此时会显示一条消息,告诉您 MQSC 会话已启动。
- 通过输入以下命令来定义发送方通道:
define channel (QM_ORANGE.QM_APPLE) chltype (sdr) conname ('con-name') xmitq (QM_APPLE) trptype (tcp)
值 con-name 是接收方队列管理器的 TCP 地址。
- 通过输入以下命令来启动通道:
start channel (QM_ORANGE.QM_APPLE)
- 通过输入以下命令来停止 MQSC:
end
将显示一些消息,然后会显示命令提示符。
您现在已经创建了将消息从发送队列管理器 QM_ORANGE 发送到接收队列管理器 QM_APPLE 上的队列 Q1 所需的全部 WebSphere MQ 对象。下一个任务是发送测试消息。
使用 MQ 资源管理器测试消息放入队列
点右键到远程队列上,选择“放入测试消息…”:
在弹出的界面中输入任何消息,点关闭或者是连续输入即可。
使用 MQSC 来将测试消息放入队列
在发送机器(主管队列管理器 QM_ORANGE 的机器)上执行此任务。
使用 amqsput 样本程序来将消息放入您创建的队列。
在 Windows® 上,缺省情况下样本程序随 WebSphere® MQ 服务器或客户机一起安装。在 Linux® 上,需要安装样本程序 RPM。
打开命令提示符,然后按照以下步骤操作:
- 启动 amqsput 样本程序,如下所示:
- 在 Linux 上,切换到 /opt/mqm/samp/bin 目录,然后输入命令:./amqsput Q1
- 在 Windows 上,输入命令:amqsput Q1
此时会显示以下消息:
样本 amqsput0 启动
目标队列为 Q1
- 在一行或多行上输入某些消息文本,然后按 Enter 键两次。 此时会显示以下消息:
样本 amqsput0 结束
您现在已经创建了测试消息并将其放入远程队列。下一个任务是验证是否已接收到测试消息。
使用 WebSphere MQ 资源管理器来验证是否已发送测试消息
在接收机器(主管队列管理器 QM_APPLE 的机器)上执行此任务。
在接收队列管理器上:
- 在导航器视图中,展开队列管理器 QM_APPLE。
- 单击队列文件夹。
- 在内容视图中,右键单击队列 Q1,然后单击浏览消息...。 此时会打开消息浏览器,显示当前 Q1 上的消息列表。
- 双击列表中的最后一条消息以查看其属性对话框。
在属性对话框的数据页上,消息数据字段以人类可读的格式显示了消息的内容。
使用 MQSC 验证是否已发送测试消息
您在接收机器(主管队列管理器 QM_APPLE 的机器)上执行此任务。使用 amqsget 样本程序来从队列中取回消息。
打开命令提示符,然后按照以下步骤操作:
启动 amqsget 样本程序,如下所示:
- 在 Linux® 上,切换到 /opt/mqm/samp/bin 目录,然后输入命令:./amqsget Q1
- 在 Windows® 上,输入命令:amqsget Q1
此时会启动该样本程序,并显示您的消息以及此队列上的任何其他消息。在短暂停留后,样本程序结束,并再次显示命令提示符。
恭喜!您现在已经完成了本教程。
MQ中将消息发送至远程队列的配置的更多相关文章
- IBM websphere MQ远程队列的简单配置
原理: 1.远程队列分发送方和接收方 2.接收方配置: 接收方配置要先拿到对方的发送通道配置,接收方的队列名称必须和远程发送方的队列名称一致,告诉远程发送方,你的地址,队列管理器名称等信息,在通道中建 ...
- IBM websphere MQ 消息发送与获取
一. 所需依赖包,安装 IBM websphere MQ 后,在安装目录下的 java 目录内 import java.io.IOException; import java.util.Propert ...
- 【MQ】消息队列及常见MQ比较
一.什么是消息队列 我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用.消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰. ...
- rabbitmq消息队列,消息发送失败,消息持久化,消费者处理失败相关
转:https://blog.csdn.net/u014373554/article/details/92686063 项目是使用springboot项目开发的,前是代码实现,后面有分析发送消息失败. ...
- 基于springboot工程浅谈整合rabbitmq怎么样防止消息发送mq不丢失和消费mq的消息防止丢失
本文只针对springboot整合rabbitmq的消息防丢失,话不多说,上干货.... 设置发送mq消息不丢失实现思路 执行的方案: 第一步,要对队列,消息以及交换机进行持久化操作(保存到物理磁盘中 ...
- 【RocketMQ】MQ消息发送
消息发送 首先来看一个RcoketMQ发送消息的例子: @Service public class MQService { @Autowired DefaultMQProducer defaultMQ ...
- log4j中将SocketAppender将日志内容发送到远程服务器
1.服务端配置 1)服务端配置文件log4j-server.properties #Define a narrow log category. A category like debug will p ...
- 【mq读书笔记】mq消息发送
钩子的注册: DefaultMQProducerImpl#registerSendMessageHook注册钩子处理类,可注册多个. public SendResult sendMessage( fi ...
- 使用MSMQ 远程队列
------------------------------------------------------------------------------------------------- -- ...
随机推荐
- Javascript的构造函数和constructor属性
原型链 function Foo() { this.value = 42;}Foo.prototype = { method: function() {}}; function Bar() {} // ...
- rest webapi 返回数据
webapi可以直接返回一个对象,也可以返回json 一.返回一个对象例子 [System.Web.Mvc.AllowAnonymous] [System.Web.Http.HttpGet] publ ...
- php多进程实现 亲测
php多进程实现 PHP有一组进程控制函数(编译时需要–enable-pcntl与posix扩展),使得php能在nginx系统中实现跟c一样的创建子进程.使用exec函数执行程序.处理信号等功能. ...
- CSS之APP开发比较实用的CSS属性
简介:本人刚入前端没多久,在做APP的开发的时候,经常遇到一些奇怪的问题,本人经验少,会使用js来解决css上的问题,但,却不知道其实有些css已经帮我们解决了. 1,white-space: now ...
- Java温故而知新(4)类String字符串
字符串是由字符组成,在Java中,字符串是对象,是描述字符的基本数据结构.String类可以用来保存一个字符串,本类是最终类,不允许继承: 1.String对象的创建 初始化 由于String对象特别 ...
- mysql 笔记3
--建库create database dsdb DEFAULT CHARACTER set utf8 collate utf8_general_ci;/*删除数据库drop DATABASE 数据库 ...
- localstorage本地存储的简单使用
我们在做页面时会用到本地存储的时候,今天说说localStorage本地存储. 1.localStorage.name="老王"; //第一种设置存储本地数据的方法loc ...
- CentOS7 下安装 SublimeText3
原文地址:http://www.sundabao.com/centos-%E5%AE%89%E8%A3%85sublime-text-3/ Centos 安装Sublime text 3 Centos ...
- arcgis 地理国情建库软件已完成
arcgis 地理国情软件已完成: 1.创建1:25000(或则其他比例尺)国家2000坐标系接合表 2.按照地理国情普查数据库标准,创建标准数据库 3.外业调查工作底图制作 4.矢量和影像数据批量裁 ...
- UEditor 百度富文本编辑器 .Net实例
转自 http://download.csdn.net/download/hdsslxl/6740605 1.UEditor 百度富文本编辑器完整版 .Net实例 已解决上传图片问题. 2.内附完整d ...