IBM MQ 链路样本配置
本配置样本说明如何使用 IBM MQ 链路将 WebSphere® Application Server 服务集成消息传递与 IBM MQ 消息传递相连。
IBM MQ 链路将一个服务集成消息传递引擎(称为网关消息传递引擎)与一个 IBM MQ 队列管理器或队列共享组(称为网关队列管理器)相连。服务集成总线中的所有消息传递引擎都使用网关消息传递引擎将消息路由至 IBM MQ 网络以及路由来自此网络的消息;IBM MQ 网络中的所有队列管理器和队列共享组都使用网关队列管理器将消息路由至服务集成总线以及路由来自服务集成总线的消息。
- IBM MQ 链路发送方通道,用于将消息从服务集成传送至 IBM MQ。
- IBM MQ 链路接收方通道,用于将消息从 WebSphere MQ 传送至服务集成。

如果您只需要消息往一个方向流动,那么只需要定义一个 TCP/IP 连接。例如,服务集成中与 IBM MQ 中的接收方通道相连的 IBM MQ 链路发送方通道足以支持从服务集成到 IBM MQ 的消息流。但是,本样本构建的配置允许消息双向流动。
样本配置上下文
- 应用程序服务器 server1 位于节点 London 上。在 Network Deployment 中,server1 可能是单元中的多个服务器中的一个,也可能是集群中的多个服务器中的一个,但本样本同样适用于只包含一个应用程序服务器的基本部署。
- 服务器 London 的 IP 主机名是 LONDON。
- 一个名为 BUS1 的服务集成总线。
- server1 是 BUS1 的成员;它所包含的消息传递引擎的名称是 London.server1-BUS1。
- 一个队列类型的总线目标,其名称为 ServiceIntegrationQueue1,并且它是 BUS1 中的其中一个目标。
- 队列管理器 QM01 和 QM02,它们是由相互连接的 IBM MQ 队列管理器和队列共享组构成的网络的组成部分。如果您只有一个队列管理器,那么可以忽略本样本中对 QM02 的引用。
- 运行 QM01 的服务器的 IP 主机名是 PARIS。
- 位于 QM01 上的队列 WMQ11 以及位于 QM02 上的队列 WMQ21。IBM MQ 网络中可能定义了许多其他队列,但本样本只关心您将要从 WebSphere Application Server 访问的两个 IBM MQ 队列。
您选择 London.server1-BUS1 作为网关消息传递引擎,并选择 QM01 作为网关队列管理器。
连接配置样本
- IBM MQ 管理员用来配置与 IBM MQ 链路通信的
IBM MQ 组件的命令:
- 发送方通道
- 接收方通道
- 传输队列
- 使用 WebSphere Application Server 管理控制台进行配置时需要的参数:
- 外部总线连接(它包括表示由 IBM MQ 队列管理器和队列共享组构成的网络的外部总线)和 IBM MQ 链路(表示与该网络的连接)
- 标识 IBM MQ 网络中的队列的 JMS 目标
在您配置并激活这些组件后,应用程序就可以在 WebSphere Application Server 服务集成消息传递与 IBM MQ 消息传递之间交换消息。您可以选择性地配置其他允许您对队列和目标进行更详细地控制的管理工件,请参阅目标配置样本。
- 用于配置发送方通道的 IBM MQ 命令
IBM MQ 管理员为发送方通道选择名称,在本样本中,名称为 QM01.TO.BUS1。DEFINE CHL(QM01.TO.BUS1) + CHLTYPE(SDR) + TRPTYPE(TCP) + CONNAME('LONDON(5558)') + XMITQ(BUS1)
CONNAME 参数指定网关消息传递引擎的 IP 主机和端口。
XMITQ 参数指定传输队列的名称,此名称通常与服务集成总线的虚拟队列管理器名称相同,最好是与总线名称相同。
- 用于配置接收方通道的 IBM MQ 命令
IBM MQ 管理员为接收方通道选择名称,在本样本中,名称为 BUS1.TO.QM01。DEFINE CHL(BUS1.TO.QM01) + CHLTYPE(RCVR) + TRPTYPE(TCP)
- 用于配置传输队列的 IBM MQ 命令
IBM MQ 管理员为传输队列选择名称,但使用服务集成总线 BUS1 的名称较为方便。如果服务集成总线名称不是有效的 IBM MQ 队列管理器名称,那么 WebSphere Application Server 管理员必须定义另一个虚拟队列管理器名称以供此处使用。DEFINE QL(BUS1) + USAGE(XMITQ)
- 用于配置 JMS 目标的 IBM MQ JMSAdmin 命令
IBM MQ JMS 应用程序可以使用此 JMS 目标将消息发送至 BUS1 中的服务集成总线目标 ServiceIntegrationQueue1。DEFINE Q(ServiceIntegrationQueue1) + QMGR(BUS1) + QUEUE(ServiceIntegrationQueue1)
- 用于外部总线连接的 WebSphere Application Server 参数
- 可以将外部总线连接配置为服务集成总线拓扑的组成部分。对于本样本,服务集成总线是 BUS1,外部总线连接使用下列设置:
向导中有其他与发布/预订消息传递和安全性相关的选项。请将这些设置保留为缺省值。设置 值 总线连接类型 直接连接 外部总线类型 IBM MQ 要托管连接的消息传递引擎 London.server1-BUS1 虚拟队列管理器名称 BUS1(使用本地总线的名称) 外部总线名称 QM01(使用 IBM MQ 网关队列管理器的名称) MQ 链路名称 TO.QM01 启用服务集成总线至 IBM MQ 消息流 已选中(缺省值) IBM MQ 接收方通道名称 BUS1.TO.QM01 主机名 PARIS 端口 1414 启用 IBM MQ 至服务集成总线消息流 已选中(缺省值) IBM MQ 发送方通道名称 QM01.TO.BUS01
- 用于 JMS 目标的 WebSphere Application Server 参数
- 可以对 JMS 目标进行配置,以允许服务集成 JMS 应用程序访问
IBM MQ 网络中的队列。本样本需要队列管理器 QM01 上的队列 WMQ11 的 JMS 目标以及
队列管理器 QM02 上的队列 WMQ21 的 JMS 目标。
请注意,这些 JMS 目标是 IBM MQ 队列,但出于本样本的目的,您要从服务集成 JMS 程序访问这些队列,因此需要为缺省消息传递提供程序(服务集成)而不是 IBM MQ JMS 提供程序定义 JMS 目标。
对于 WMQ11,请配置下列参数:
请将所有其他设置保留为缺省值。参数 值 名称 WMQ11 JNDI 名称 jms/WMQ11 总线名 QM01 队列名称 WMQ11 对于 WMQ21,请配置下列参数:
请将所有其他设置保留为缺省值。参数 值 名称 WMQ21 JNDI 名称 jms/WMQ21 总线名 QM01 队列名称 WMQ21@QM02
目标配置样本
- IBM MQ JMS 目标指向 IBM MQ 队列(实际上是远程或别名队列),而该队列指向服务集成目标。
- 服务集成 JMS 目标指向服务集成目标(实际上是外部或别名目标),而该目标指向 IBM MQ 队列。
有关何时以及如何定义远程和别名队列的信息,请参阅 IBM MQ 文档。
- 用于外部目标的 WebSphere Application Server 参数
- 可以对 IBM MQ 队列的外部目标进行配置,以允许控制服务集成应用程序访问各个队列的方式。例如,可以配置两个队列中的每个队列的外部目标,并指定服务集成在发送至一个队列的消息中包括
MQRFH2 头,但在发送至另一个队列的消息中不包括这个头。
可以将外部目标配置为服务集成总线的目标资源。
对于 WMQ11,请配置下列参数:
请将所有其他设置保留为缺省值。参数 值 标识 WMQ11 总线 QM01 对于 WMQ21,请配置下列参数:
如果外部目标是 IBM MQ 目标,那么标识必须采用 qName@qmName 格式,其中 qName 是队列的名称,而 qName 是队列管理器的名称。对于此示例,队列管理器 QM02 上的 WMQ21 的标识是 WMQ21@QM02。参数 值 标识 WMQ21@QM02 总线 QM01 请将所有其他设置保留为缺省值。
在定义这些外部目标后,您可以执行一些设置,例如,根据需要设置任一目标或两个目标的 _MQRFHAllowed 定制属性。