MQ中将消息发送至远程队列的配置

摘自MQ资源管理器帮助文档V7

在开始学习本教程之前,您需要从系统管理员处了解标识网络上接收机器的名称:IP地址、MQ的端口号、队列管理器、接收(远程机器)或者是发送的队列(本地机器)名称

消息传递如图示:

本教程介绍了如何设置一台计算机上的队列管理器 QM_ORANGE 与另一台计算机上的队列管理器 QM_APPLE 之间的消息传递。在第一台计算机上创建的消息被传递到第二台计算机上的队列 Q1(此队列被称为远程队列)。

要点: 在本教程中,您将使用创建了队列管理器 QM_APPLE 和本地队列 Q1 的机器作为接收机器。

您将在发送机器上设置队列管理器和队列(远程队列定义和传输队列)。然后定义消息通道。最后,您将把测试消息放入发送机器,并从接收机器上的队列获取该消息。

完成本教程后,您应该基本了解如何使用远程队列定义来设置和使用 WebSphere® MQ 消息传递。

一、              在发送机器上创建队列管理器

二、              在发送队列管理器上创建队列

三、              创建消息通道

四、              将测试消息放入队列

五、              验证是否已发送测试消息

一、在发送机器上创建队列管理器

在发送机器上使用 WebSphere MQ 资源管理器创建队列管理器

无法远程完成此过程。必须在发送机器上本地完成此过程。

  1. 启动 WebSphere MQ 资源管理器。
  2. 在导航器视图中,右键单击队列管理器文件夹,然后单击新建 > 队列管理器 此时会打开创建队列管理器向导。
  3. 在队列管理器名称字段中,输入 QM_ORANGE。
  4. 选中设置为缺省队列管理器复选框。
  5. 单击下一步两次以转至向导的步骤 3。
  6. 确保选中启动队列管理器复选框。
  7. 确保选中自动启动队列管理器复选框。
  8. 单击下一步以转至向导的步骤 4。
  9. 确保选中创建配置用于 TCP/IP 的侦听器复选框。
  10. 如果完成按钮不可用,那么在侦听端口号字段中输入另一个端口号。 如果当前值为 1414,那么尝试输入 1415 或 1416。
  11. 单击完成。

WebSphere MQ 资源管理器的导航器视图中的队列管理器文件夹中会显示表示此队列管理器的图标,并且在您创建队列管理器后,该队列管理器会自动开始运行。

使用 MQSC 创建发送队列管理器

在发送机器上打开命令提示符,然后按照以下步骤操作:

  1. 通过输入以下命令来创建名为 QM_ORANGE 的缺省队列管理器:

crtmqm -q QM_ORANGE

此时会显示消息,告诉您已经创建了队列和缺省 WebSphere MQ 对象。

  1. 通过输入以下命令来启动此队列管理器:

strmqm

此时会显示一条消息,告诉您何时启动了该队列管理器。

  1. 现在,您必须通过输入以下命令来创建侦听器:

runmqlsr -m QM_APPLE -t TCP -p (port number)

注: 如果未使用 -p 参数指定任何端口,那么使用缺省端口 1414,但请注意,不能对发送方和接收方使用相同的端口号,因此,如果其中一个为 1414,那么另一个就应该是 1415。

您现在已经创建了发送队列管理器。下一个任务是在此队列管理器上创建队列。

二、在发送队列管理器上创建队列

使用 WebSphere MQ 资源管理器在发送队列管理器上创建队列

在发送队列管理器上:

  1. 在导航器视图中,展开队列管理器文件夹。
  2. 展开队列管理器 QM_ORANGE。
  3. 右键单击队列文件夹,然后单击新建 > 远程队列定义... 此时会打开新建远程队列定义向导。
  4. 在名称字段中,输入 Q1。
  5. 在远程队列字段中,输入 Q1。 【注:这里新建的远程队列的名称,一定要和远程机器上的队列名称相同,否则消息会发出去,但是远程机器的队列里面收不到消息,如上文提到的的Q1与Q1,或者是如下图的testQ与testQ:
  6. 在远程队列管理器字段中,输入 QM_APPLE。
  7. 在传输队列字段中,输入 QM_APPLE。
  8. 单击完成。 您现在已经创建了远程队列定义。
  9. 单击 QM_ORANGE 队列管理器。
  10. 右键单击队列文件夹,然后单击新建 > 本地队列 此时会打开新建本地队列向导。
  11. 在名称字段中,输入 QM_APPLE。
  12. 在用途字段中,选择传输。
  13. 单击完成。 您现在已经在本地机器上创建了传输队列。

内容视图中将会显示新队列 Q1 和 QM_APPLE。

如果内容视图中未显示这些队列,请单击位于内容视图顶部的“刷新”按钮 

使用 MQSC 来在发送队列管理器上创建队列

在发送机器上打开命令提示符,然后按照以下步骤操作:

  1. 通过输入以下命令来启动 MQSC:

runmqsc

此时会显示一条消息,告诉您 MQSC 会话已启动。

  1. 通过输入以下命令来定义名为 QM_APPLE 的本地队列:

define qlocal (QM_APPLE) usage (xmitq)

此时会显示一条消息,告诉您何时创建了该队列。

  1. 通过输入以下命令来定义远程队列定义:

define qremote (Q1) rname (Q1) rqmname(QM_APPLE) xmitq (QM_APPLE)

您现在已经在发送队列管理器上创建了队列。下一个任务是创建发送队列管理器和接收队列管理器之间的消息通道。

三、创建消息通道

使用 MQ 资源管理器创建消息通道

  1. 接收队列管理器 QM_APPLE 上,创建通道的接收方端:
    1. 在导航器视图中,展开先前创建的队列管理器 QM_APPLE,然后展开高级文件夹。
    2. 右键单击通道文件夹,然后单击新建 > 接收方通道... 此时会打开新建接收方通道向导。
    3. 在名称字段中,输入 QM_ORANGE.QM_APPLE。
    4. 单击完成。 您现在已经在接收机器上创建了接收方通道。
  2. 发送队列管理器 QM_ORANGE 上,创建通道的发送方端:
    1. 展开先前创建的队列管理器 QM_ORANGE,然后展开高级文件夹。
    2. 右键单击通道文件夹,然后单击新建 > 发送方通道... 此时会打开新建发送方通道向导。
    3. 在名称字段中,输入 QM_ORANGE.QM_APPLE,然后单击下一步。
    4. 在连接名称字段中,输入接收机器的计算机名称或 IP 地址(您应该已经在系统管理员的帮助下获得此信息)。
    5. 在传输队列字段中,输入 QM_APPLE。
    6. 单击完成。
    7. 单击通道文件夹。
    8. 右键单击 QM_ORANGE.QM_APPLE。
    9. 从弹出菜单中,单击启动。
    10. 单击确定。 您现在已经在发送机器上创建了发送方通道。

注: 您不必启动接收方通道,因为它会在您设置发送方通道时自动启动(当设置发送方通道时,您指定了接收方通道的IP 地址)。

现在,已经在接收队列管理器 QM_APPLE 上创建接收方通道 QM_ORANGE.QM_APPLE,并且已在发送队列管理器 QM_ORANGE 上创建发送方通道 QM_ORANGE.QM_APPLE。此外,您还已经启动发送方通道,这也自动地启动了接收方通道。

使用 MQSC 创建消息通道

接收机器上打开命令提示符,然后按照以下步骤操作:

  1. 通过输入以下命令来启动 MQSC:

runmqsc

此时会显示一条消息,告诉您 MQSC 会话已启动。

  1. 通过输入以下命令来定义接收通道:

define channel (QM_ORANGE.QM_APPLE) chltype (RCVR) trptype (TCP)

此时会显示一条消息,告诉您何时创建了该通道。

  1. 通过输入以下命令来停止 MQSC:

end

将显示一些消息,然后会显示命令提示符。

发送机器上打开命令提示符,然后按照以下步骤操作:

  1. 通过输入以下命令来启动 MQSC:

runmqsc

此时会显示一条消息,告诉您 MQSC 会话已启动。

  1. 通过输入以下命令来定义发送方通道:

define channel (QM_ORANGE.QM_APPLE) chltype (sdr) conname ('con-name') xmitq (QM_APPLE) trptype (tcp)

值 con-name 是接收方队列管理器的 TCP 地址。

  1. 通过输入以下命令来启动通道:

start channel (QM_ORANGE.QM_APPLE)

  1. 通过输入以下命令来停止 MQSC:

end

将显示一些消息,然后会显示命令提示符。

您现在已经创建了将消息从发送队列管理器 QM_ORANGE 发送到接收队列管理器 QM_APPLE 上的队列 Q1 所需的全部 WebSphere MQ 对象。下一个任务是发送测试消息。

四、将测试消息放入队列

使用 MQ 资源管理器测试消息放入队列

点右键到远程队列上,选择“放入测试消息…”:

在弹出的界面中输入任何消息,点关闭或者是连续输入即可。

使用 MQSC 来将测试消息放入队列

在发送机器(主管队列管理器 QM_ORANGE 的机器)上执行此任务。

使用 amqsput 样本程序来将消息放入您创建的队列。

在 Windows® 上,缺省情况下样本程序随 WebSphere® MQ 服务器或客户机一起安装。在 Linux® 上,需要安装样本程序 RPM。

打开命令提示符,然后按照以下步骤操作:

  1. 启动 amqsput 样本程序,如下所示:

    • 在 Linux 上,切换到 /opt/mqm/samp/bin 目录,然后输入命令:./amqsput Q1
    • 在 Windows 上,输入命令:amqsput Q1

此时会显示以下消息:

样本 amqsput0 启动
目标队列为 Q1

  1. 在一行或多行上输入某些消息文本,然后按 Enter 键两次。 此时会显示以下消息:

样本 amqsput0 结束

您现在已经创建了测试消息并将其放入远程队列。下一个任务是验证是否已接收到测试消息。

五、验证是否已发送测试消息

使用 WebSphere MQ 资源管理器来验证是否已发送测试消息

在接收机器(主管队列管理器 QM_APPLE 的机器)上执行此任务。

接收队列管理器上:

  1. 在导航器视图中,展开队列管理器 QM_APPLE。
  2. 单击队列文件夹。
  3. 在内容视图中,右键单击队列 Q1,然后单击浏览消息...。 此时会打开消息浏览器,显示当前 Q1 上的消息列表。
  4. 双击列表中的最后一条消息以查看其属性对话框。

在属性对话框的数据页上,消息数据字段以人类可读的格式显示了消息的内容。

使用 MQSC 验证是否已发送测试消息

您在接收机器(主管队列管理器 QM_APPLE 的机器)上执行此任务。使用 amqsget 样本程序来从队列中取回消息。

打开命令提示符,然后按照以下步骤操作:

启动 amqsget 样本程序,如下所示:

  • 在 Linux® 上,切换到 /opt/mqm/samp/bin 目录,然后输入命令:./amqsget Q1
  • 在 Windows® 上,输入命令:amqsget Q1

此时会启动该样本程序,并显示您的消息以及此队列上的任何其他消息。在短暂停留后,样本程序结束,并再次显示命令提示符。

恭喜!您现在已经完成了本教程。

MQ中将消息发送至远程队列的配置的更多相关文章

  1. IBM websphere MQ远程队列的简单配置

    原理: 1.远程队列分发送方和接收方 2.接收方配置: 接收方配置要先拿到对方的发送通道配置,接收方的队列名称必须和远程发送方的队列名称一致,告诉远程发送方,你的地址,队列管理器名称等信息,在通道中建 ...

  2. IBM websphere MQ 消息发送与获取

    一. 所需依赖包,安装 IBM websphere MQ 后,在安装目录下的 java 目录内 import java.io.IOException; import java.util.Propert ...

  3. 【MQ】消息队列及常见MQ比较

    一.什么是消息队列 我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用.消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰. ...

  4. rabbitmq消息队列,消息发送失败,消息持久化,消费者处理失败相关

    转:https://blog.csdn.net/u014373554/article/details/92686063 项目是使用springboot项目开发的,前是代码实现,后面有分析发送消息失败. ...

  5. 基于springboot工程浅谈整合rabbitmq怎么样防止消息发送mq不丢失和消费mq的消息防止丢失

    本文只针对springboot整合rabbitmq的消息防丢失,话不多说,上干货.... 设置发送mq消息不丢失实现思路 执行的方案: 第一步,要对队列,消息以及交换机进行持久化操作(保存到物理磁盘中 ...

  6. 【RocketMQ】MQ消息发送

    消息发送 首先来看一个RcoketMQ发送消息的例子: @Service public class MQService { @Autowired DefaultMQProducer defaultMQ ...

  7. log4j中将SocketAppender将日志内容发送到远程服务器

    1.服务端配置 1)服务端配置文件log4j-server.properties #Define a narrow log category. A category like debug will p ...

  8. 【mq读书笔记】mq消息发送

    钩子的注册: DefaultMQProducerImpl#registerSendMessageHook注册钩子处理类,可注册多个. public SendResult sendMessage( fi ...

  9. 使用MSMQ 远程队列

    ------------------------------------------------------------------------------------------------- -- ...

随机推荐

  1. 网易和淘宝的rem方案剖析

    以下内容到分割线前是引用前端大牛的文章,方便大家理解博主内容): 从网易与淘宝的font-size思考前端设计稿与工作流 1. 简单问题简单解决 我觉得有些web app并一定很复杂,比如拉勾网,你看 ...

  2. linux下查看memcache版本

    用telnet 127.0.0.1 11211命令连接上memcache, 然后直接输入stats就可以得到memcache服务器的版本

  3. JAVA常用单词

    柠檬学院Java 基础常见英语词汇(共 70 个)OO: object-oriented ,面向对象 OOP: object-oriented programming,面向对象编程JDK:Java d ...

  4. Mac下使用Parallels Desktop安装CentOS操作系统

    Mac下安装Centos后,Mac和Centos之间默认是不通的,需要做下面一些设置后,才能互相共享. 启用网络设置 默认的网络设置是没有enable的,因此,在安装完之后需要开启的话,需要保证开启& ...

  5. Spring和Hibernate结合的一个小例子

    1.新建一个SpringHibernate的maven项目 2.pom文件的依赖为 <dependency> <groupId>junit</groupId> &l ...

  6. JavaScript实现邮箱后缀提示功能

    先来个基础的 需求 根据下面需求实现如示意图所示的邮箱输入提示功能,注意,根据要求只需实现下面功能 当用户没有任何输入时,提示框消失 当用户输入字符后,显示提示框,并且把用户输入的内容自动拼上邮箱后缀 ...

  7. php浮点数加减乘除bug

    项目测试阶段,少部分微信支付成功,但是在异步通知校对订单金额是否一致时,一直被认定订单金额不一致. 类似于: 浏览器输出: 分析: 因为计算机二进制无法准确表示部分浮点数(如2.03.0.58等等), ...

  8. 洛谷P1600 天天爱跑步(差分 LCA 桶)

    题意 题目链接 Sol 一步一步的来考虑 \(25 \%\):直接\(O(nm)\)的暴力 链的情况:维护两个差分数组,分别表示从左向右和从右向左的贡献, \(S_i = 1\):统计每个点的子树内有 ...

  9. ogr2ogr使用

    简介 org2ogr是OGR模块中提供的一个重要工具,用于对数据源进行格式转换 使用方式 命令行参数 [xingxing.dxx@30_28_6_20 J50F001020]$ ogr2ogr --l ...

  10. 03_Zookeeper基本数据模型及基本命令操作

    [Zookeeper基本数据模型及注意点] * zk的数据模型可以类比为Linux的文件目录,是一种树状结构,如:/dubbo/com.service.DemoService/provider.... ...