ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接

ibm mq安装配置

在IBM Integration Bus v10之前,Integration节点依靠队列管理器来连接到IBM MQ。 如果Integration节点必须处理发送到队列管理器的消息,则该节点必须在队列管理器上运行。 从IBM Integration Bus v10开始,已删除了对IBM MQ的依赖性。 现在,可以在不运行任何队列管理器的情况下单独运行Integration节点。 在本教程中,您将学习在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接的不同方法。

要将集成节点连接到MQ队列管理器,可以从MQInput和MQOutput节点的以下选项中进行选择:

  • 本地队列管理器
  • MQ客户端连接属性
  • 客户通道定义表(CCDT)

通过选择这些选项之一,Integration节点可以连接到队列管理器并传播消息。

设置系统

要配置本教程中描述的组件和对象,您必须具有以下技能和系统要求。

必备技能

在开始本教程之前,您必须具备以下领域的技能:

  • MQ客户端/服务器体系结构的实现知识
  • IBM MQ管理中级知识
  • IBM Integration Bus管理的中级知识
  • IBM Integration Bus开发技能

系统要求

表1概述了三个选项所需的基础结构设置。 在此表中,Y表示该产品已安装在服务器上,而NA表示该产品未安装或不适用于服务器。

您不需要配置表1中列出的所有先决条件。因此,仅配置要在环境中实现的选项的先决条件。

表1.每个选项的服务器环境概述
选件 Microsoft®Windows®上的IBM Integration Bus v10 Windows上的IBM Integration Bus v8 Windows上的IBM Integration Bus v8 Linux®上的MQ v8
本地队列管理器 ÿ ÿ 不适用 不适用
MQ客户端连接 ÿ 不适用 ÿ ÿ
商会 ÿ 不适用 ÿ ÿ
集成节点的创建:使用-q标志或mqsichangebroker命令时,无需再次创建集成节点。

创建MQ对象以在Linux服务器上进行连接

如果要在Linux服务器上运行MQ,请为IBM Integration Bus连接创建必需的MQ对象:

  1. 检查MQ版本:
    -bash-4.1$ dspmqver

    清单1显示了针对MQ版本显示的输出示例。

    清单1. MQ版本详细信息
    Name:		WebSphere MQ
    Version:		8.0.0.2
    Level:		p800-002-150519.TRIAL
    BuildType:	IKAP - (Production)
    Platform:		WebSphere MQ for Linux (x86-64 platform)	
    Mode:		64-bit
    0/S:			Linux 2.6.32-71.e16.x86_64
    InstName:		Installation1
    InstDesc:
    Primary: 		Yes
    InstPath: 	/opt/mqm
    DataPath: 	/var/mqm
    MaxCmdLevel: 	801
  2. 创建IIB10_QM1IIB10_QM2队列管理器:
    crtmqm IIB10_QM1
    crtmqm IIB10_QM2
  3. 启动IIB10_QM1IIB10_QM2队列管理器:
    strmqm IIB10_QM1
    strmqm IIB10_QM2
  4. 检查队列管理器的状态:
    -bash-4.1$ dspmq

    队列管理器的创建成功,并且其状态显示为Running :

    QMNAME(IIB10_QM1)	STATUS(Running)
    QMNAME(IIB10_QM2)	STATUS(Running)
  5. IIB10_QM1队列管理器下创建所需的对象:
    -bash-4.1$ runmqsc IIB10_QM1
    1. 定义本地队列:
      DEFINE QL(INPUT.QL)

      您将看到以下输出:

      AMQ8006: WebSphere MQ queue created.
    2. 定义渠道:
      DEFINE CHANNEL(IIBV10.SVRCONN) CHLTYPE(SVRCONN)

      您将看到以下输出:

      AMQ8014: WebSphere MQ channel created.
    3. 定义监听器:
      DEFINE LISTENER(QM1.LIS) TRPTYPE(TCP) PORT(1025) CONTROL(QMGR)

      您将看到以下输出:

      AMQ8626: WebSphere MQ listener created.
    4. 启动监听器:
      START LISTENER(QM1.LIS)

      您将看到以下输出:

      AMQ8021: Request to start WebSphere MQ listener accepted.
  6. IIB10_QM1队列管理器上为IIB10_QM1创建客户端连接通道:
    DEFINE CHANNEL(IIBV10.SVRCONN) CHLTYPE(CLNTCONN) CONNAME('192.168.112.131(1025)') QMNAME(IIB10_QM1)

    您将看到以下输出:

    AMQ8014: WebSphere MQ channel created.
  7. 创建IIB10_QM2 CLNTCONN通道作为CCDT配置的一部分IIB10_QM2IIB10_QM1队列管理:
    DEFINE CHANNEL(IIBV10.QM2.SVRCONN) CHLTYPE(CLNTCONN) CONNAME('192.168.112.131(1026)') QMNAME(IIB1O_QM2)

    您将看到以下输出:

    AMQ8014: WebSphere MQ channel created.
  8. IIB10_QM1队列管理器提供授权,以使Integration节点连接到队列管理器:
    setmqaut -m IIB10_QM1 -t qmgr -p system +connect
    setmqaut -m IIB10_QM1 -n INPUT.QL -t q -p system +inq +get
  9. 确保所有授权都反映正在使用的队列管理器:
    refresh security
  10. IIB10_QM2队列管理器下创建所需的对象:
    bash-4.1$ runmqsc IIB10_QM2
    1. 定义本地队列:
      DEFINE QL(OUTPUT.QL)

      您将看到以下输出:

      AMQ8006: WebSphere MQ queue created.
    2. 定义渠道:
      DEFINE CHANNEL(IIBV10.QM2.SVRCONN) CHLTYPE(SVRCONN)

      您将看到以下输出:

      AMQ8014: WebSphere MQ channel created.
    3. 定义监听器:
      DEFINE LISTENER(QM2.LIS) TRPTYPE(TCP) PORT(1026) CONTROL(QMGR)

      您将看到以下输出:

      AMQ8626: WebSphere MQ listener created.
  11. IIB10_QM2队列管理器提供授权,以使Integration节点连接到队列管理器:
    setmqaut -m IIB10_QM2 -t qmgr -p system +inq +connect +setall
    setmqaut  -m IIB10_QM2  -n OUTPUT.QL -t q -p system +put +setall
  12. 确保所有授权均反映正在使用的队列管理器:
    refresh security

在Windows服务器上创建用于连接的MQ对象

如果要在Windows服务器上运行MQ,请为IBM Integration Bus连接创建必需的MQ对象:

  1. 创建LOCAL_QM1LOCAL_QM2队列管理器:
    crtmqm LOCAL_QM1
    crtmqm LOCAL_QM2
  2. 启动LOCAL_QM1LOCAL_QM2队列管理器:
    strmqm LOCAL_QM1
    strmqm LOCAL_QM2
  3. 检查队列管理器的状态:
    -bash-4.1$ dspmq

    队列管理器的创建成功,并且其状态显示为Running :

    QMNAME(LOCAL_QM1)		STATUS(Running)
    QMNAME(LOCAL_QM2)		STATUS(Running)
  4. LOCAL_QM1队列管理器下创建所需的对象:
    runmqsc LOCAL_QM1
  5. 定义本地队列:
    DEFINE QL(INPUT.QL)

    您将看到以下输出:

    AMQ8006: WebSphere MQ queue created.
  6. LOCAL_QM2队列管理器下创建所需的对象:
    runmqsc LOCAL_QM2
  7. 定义本地队列:
    DEFINE QL(OUTPUT.QL)

    您将看到以下输出:

    AMQ8006: WebSphere MQ queue created.

在Windows服务器上配置IBM Integration Bus

要在Windows服务器上配置IBM Integration Bus:

  1. 创建IIBV10集成节点,其中IIBV10是代理名称,并且集成节点不具有任何队列管理器依赖性:
    mqsicreatebroker IIBV10

    创建集成节点后,将看到以下输出:

    BIP8071I: Successful command completion.
  2. 检查集成节点的状态:
    mqsilist

    显示以下状态。

    BIP1326I: Integration node 'IIBV10' is stopped.
    BIP8071I: Successful command completion.
  3. 启动集成节点:
    mqsistart IIBV10

    您将看到以下输出:

    BIP8096I: Successful command initiation.
  4. 使用IBM Integration Toolkit(图1)检查Integration节点属性。 在“集成”节点属性上指定的队列管理器指示没有队列管理器与此集成节点关联。
    图1.使用IBM Integration工具箱进行集成节点验证
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第1张图片

讯息流

使用IBM Integration工具箱开发了示例消息流。 您可以将其用于本教程中介绍的所有三种方法。 此消息流说明了以下队列管理器的连接:

  • 在Linux上运行的IIB10_QM1IIB10_QM2
  • Windows上运行的LOCAL_QM1LOCAL_QM2

图2展示了一个流程,该流程接受XML格式的消息并按以下方式进行传输:

  • 从Linux上运行的IIB10_QM1IIB10_QM2 (用于MQ客户端连接属性和CCDT方法)
  • 从Windows上运行的LOCAL_QM1LOCAL_QM2 (对于本地队列管理器方法)
图2. XML格式的消息流
XML中的消息流

因为您正在使用消息流将XML消息从一个队列管理器转换为另一队列管理器,所以在MQ级别不需要分发设置。 开发消息流时,该流对消息的处理取决于节点的属性。 例如,通过设置定义MQ的INPUT和OUTPUT队列名称的属性,可以确定消息流从何处接收消息以及在何处传递消息。

图3显示了从LOCAL_QM1队列管理器到LOCAL_QM2队列管理器的消息路由。 所示的客户机环境具有两个队列管理器( LOCAL_QM1LOCAL_QM2 )和IBM Integration Bus( IIBV10 )。 它们安装在同一Windows服务器上。 源应用对一个消息INPUT.QL下队列LOCAL_QM1队列管理器。 然后,消息流拾取消息,并将其发送到OUTPUT.QL下队列LOCAL_QM2为目标应用程序队列管理器。

图3.从LOCAL_QM1到LOCAL_QM2路由消息
ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第2张图片

图4显示了从IIBV10_QM1IIBV10_QM2的消息路由。 客户端环境在Linux服务器上具有两个队列管理器( IIB10_QM1IIB10_QM2 ),在Windows服务器上具有IBM Integration Bus( IIBV10 )。 推杆应用将消息放在所述INPUT.QL下队列IIB10_QM1 然后,消息流拾取该消息并把它发送到OUTPUT.QL下队列IIB10_QM2用于吸气剂的应用。

图4.从IIBV10_QM1到IIBV10_QM2路由消息
ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第3张图片

方案1:本地队列管理器

在这种情况下,IBM Integration Bus v10和IBM MQ v8都安装在同一Windows服务器上,并且两个组件都以绑定方式进行连接。 在绑定方式下,IBM Integration Bus和MQ在同一服务器上彼此连接。 同样,与使用服务器绑定的本地队列管理器建立了本地连接。 与远程队列管理器建立了客户端连接。 您可以使用本地连接,客户端连接或本地和客户端连接到队列管理器的组合。

如果选择本地队列管理器选项,则必须指定队列管理器名称。 消息流使服务器连接到队列管理器(通过使用服务器绑定)。 集成节点和队列管理器必须在同一服务器上运行。

配置MQInput节点属性

MQInput节点从应用程序接收消息,并使用IBM MQ Enterprise Transport连接到Integration节点。

要配置MQInput节点属性:

  1. 更新INPUT.QL队列名称:
    1. 导航到MQ输入节点属性窗口(图5)。
    2. 在“ 基本”选项卡上,为“ 队列名称 ”输入INPUT.QL
    图5.队列名称属性
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第4张图片
  2. 更新LOCAL_QM1队列管理器的连接详细信息:
    1. 转到MQ输入节点属性窗口(图6)。
    2. 在“ MQ连接”选项卡上,对于“ 连接” ,输入Local queue manager 对于目标队列管理器名称 ,输入LOCAL_QM1
    图6. LOCAL_QM1队列管理器的连接详细信息
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第5张图片

配置MQOutput节点属性

MQOutput节点将输出消息从消息流传递到MQ队列。 节点使用MQPUT将消息放入目标队列或您指定的队列。

要配置MQOutput节点属性:

  1. 更新OUTPUT.QL队列名称:
    1. 转到MQ输出节点属性窗口(图7)。
    2. 在“ 基本”选项卡上,为“ 队列名称 ”输入OUTPUT.QL
    图7.队列名称属性
    队列名称属性
  2. 更新LOCAL_QM2队列管理器的连接详细信息:
    1. 转到MQ输出节点属性窗口(图8)。
    2. 在“ MQ连接”选项卡上,对于“ 连接” ,输入Local queue manager 对于目标队列管理器名称 ,输入LOCAL_QM2
    图8. LOCAL_QM2队列管理器的连接详细信息
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第6张图片

确认数据流引擎连接

要确认数据流引擎与队列的连接,请显示队列状态:

runmqsc LOCAL_QM1
dis qs(INPUT.QL) type(handle)

清单2中的输出显示APPLTAG(erver\bin\DataFlowEngine.exe) ,它指示队列正在侦听数据流引擎。

清单2.数据流引擎连接的队列状态
AMQ8450: Display queue status details.
QUEUE(INPUT.QL) 		TYPE(HANDLE)
APPLDESC( )
APPLTAG(erver\bin\DataFlowEngine.exe)
APPLTYPE(USER) 		BROWSE(NO)
CHANNEL( )			CONNAME( )
ASTATE(ACTIVE)			HSTATE(ACTIVE)
INPUT(SHARED) 			INQUIRE(YES)
OUTPUT(NO) 			PID(5260)
QMURID(0.12291)		SET(NO)
TID(*)
URID(XA_FORMATID[] XA_GTRIDH[] XA_BQUAL[])
URTYPE(QMGR) 			USERID(SYSTEM@NT AUTHORITY)

如图9所示, INPUT.QL队列名称的当前队列深度为0。它还显示了显示的消息数据。 在MQ资源管理器,使用PUT命令将消息中的INPUT.QL队列LOCAL_QM1队列管理器。

图9. INPUT.QL的当前队列深度和消息数据
ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第7张图片

如图10所示,对于当前的队列深度OUTPUT.QL队列现在是1。该值确认该消息流从采消息INPUT.QL队列LOCAL_QM1队列管理器,并将其发送到OUTPUT.QL队列在LOCAL_QM2队列管理器上。

图10. OUTPUT.QL的当前队列深度
当前队列深度

通过使用IBM集成工具包,所述的当前队列深度OUTPUT.QL队列LOCAL_QM2从0变为1的队列管理器(图11)。 此更改确认消息已发送。 此外,该消息数据是针对从发送相同的消息INPUT.QL队列上LOCAL_QM1队列管理器。

图11. OUTPUT.QL的当前队列深度和消息数据
ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第8张图片

场景2:MQ客户端连接属性

如果选择定义MQ客户机连接属性,那么还必须指定以下属性:

  • 队列管理器主机名
  • 侦听器端口号
  • 频道名称
  • MQInput节点上的目标队列管理器名称
  • MQOutput节点上的目标队列管理器名称

在此示例中,“集成”节点在Windows服务器上运行,而队列管理器在Linux服务器上运行。

配置MQInput节点属性

要配置MQInput节点属性:

  1. 更新INPUT.QL队列名称:
    1. 转到MQInput Node Properties窗口(图12)。
    2. 在“ 基本”选项卡上,为“队列名称”输入INPUT.QL
    图12. MQInput节点的队列名称属性
    队列名称属性
  2. 更新IIB10_QM1队列管理器的连接详细信息:
    1. 转到“ MQ输入节点属性”窗口。
    2. MQ Connection选项卡上(图13):
      1. 对于连接 ,输入MQ client Connection properties
      2. 对于目标队列管理器名称 ,输入IIB10_QM1
      3. 对于队列管理器主机名 ,输入IP地址。
      4. 对于侦听器端口号 ,输入1025
      5. 对于频道名称 ,输入IIBV10.SVRCONN
    图13. IIB10_QM1的连接详细信息
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第9张图片

配置MQOutput节点属性

要配置MQOutput节点属性:

  1. 更新OUTPUT.QL队列名称:
    1. 转到MQ输出节点属性窗口(图14)。
    2. 在“ 基本”选项卡上,为“ 队列名称 ”输入OUTPUT.QL
    图14.图14. MQOutput节点的队列名称
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第10张图片
  2. 更新IIB10_QM2队列管理器的连接详细信息:
    1. 转到MQ输出节点属性窗口(图15)。
    2. 在“ MQ连接”选项卡上:
      1. 对于Connection ,输入MQ client connection properties
      2. 对于目标队列管理器名称 ,输入IIB10_QM2
      3. 对于“ 队列管理器主机名”,输入IP地址。
      4. 对于“ 侦听器端口号”,输入1026
      5. 对于Channel Name,输入IIBV10.QM2.SVRCONN
    图15. IIB10_MQ2的连接详细信息
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第11张图片

测试MQ客户端连接

在测试消息流之前, INPUT.QLOUTPUT.QL队列的初始当前深度( CURDEPTH )为0,这意味着队列中没有消息。 要测试客户端连接:

  1. 启动IIB10_QM1队列管理器的MQSC命令:
    -bash-4.1$ runmqsc IIB10_QM1
  2. 显示INPUT.QL队列的当前深度:
    dis ql(INPUT.QL) CURDEPTH

    CURDEPTH为0,如以下输入队列详细信息所示:

    AMQ40409: Display Queue details.
    QUEUE(INPUT.QL) 		TYPE(QLOCAL)
    CURDEPTH(0)
  3. 启动IIB10_QM2队列管理器的MQSC命令:
    -bash-4.1$ runmqsc IIB10_QM2
  4. 显示OUTPUT.QL队列的当前深度:
    dis ql(OUTPUT.QL) CURDEPTH

    CURDEPTH为0,如以下输出队列详细信息所示:

    AMQ8409: Display Queue details.
    QUEUE(OUTPUT.QL) 		TYPE(QLOCAL)
    CURDEPTH(0)
  5. 将示例消息放在INPUT.QL队列上:
    -bash-4.1$ ./amqsput INPUT.QL IIB10_QM1

    您将看到以下输出:

    Sample AMQSPUT0 start
    target queue is INPUT.QL
    I am using IIBV10 and MQV8.0
    
    Sample AMQSPUT0 end
  6. 启动IIB10_QM2队列管理器的MQSC命令:
    -bash-4.1$ runmqsc IIB10_QM2

    您将看到以下输出:

    Starting MQSC for queue manager IIB10_QM2.
  7. 显示OUTPUT.QL队列的当前深度:
    dis ql(OUTPUT.QL) CURDEPTH

    如以下输出所示, CURDEPTH为1,这意味着消息流已成功将消息处理到输出队列:

    AMQ8409: Display Queue details.
    QUEUE(OUTPUT.QL) 		TYPE(QLOCAL)
    CURDEPTH(1)
    END
  8. 验证与IIB10_QM1队列管理器的流连接:
    dis chs(IIBVlO.SVRCONN) all

    数据流引擎(执行组)正在侦听,并且服务器连接通道IIBV10.SVRCONN正在运行。 MQInput节点已连接到服务器连接通道,在这种情况下显示成功的连接(清单3)。

    清单3.连接到IIB10_QM1队列管理器的消息流
    AMQ8417: Display Channel Status details.
    CHANNEL(IIBV10.SVRCONN) 	CHLTYPE(SVRCONN)
    BUFSRCVD(46) 			BUFSSENT(5)
    BYTSRCVD(4296) 		BYTSSENT(2152)
    CHSTADA(2015-10-05) 	CHSTAII(12.04.28)
    COMPHDR(NONE,NONE) 		COMPMSG(NONE,NONE)
    COMPRATE(0,0) 			COMPTIME(0,0)
    CONNAME(192.168.112.1) 	CURRENT
    EXITTIME(0,0) 			HBINT(300)
    JOBNAME(000ooF3600000121)
    LOCLADDR(::ffff:192.168.112.l31(1025))
    LSTMSGDA(2015-lO-05) 	LSTMSGTI(12.04.28)
    MCASTAI(RUNNING) 		MCAUSER(system)
    MONCHL(OFF) 			MSGS(3)
    RAPPLTAG(erver\bin\DataFlowEngine.exe)
    SECPROT(NONE) 			SSLCERTI()
    SSLKEYDA( ) 			SSLKEYTI()
    SSLPEER( ) 			SSLRKEYS(0)
    STAIUS(RUNNING) 		STOPREQ(NO)
    SUBSTAIE(RECEIVE) 		CURSHCNV(1)
    MAXSHCNV(10) 			RVERSION(08000002)
    RPRODUCT(MQCC)
  9. 验证与IIB10_QM2队列管理器的流连接:
    dis chs(IIBVlO.QM2.SVRCONN) all

    如清单4所示,数据流引擎(执行组)正在侦听,并且服务器连接通道IIBV10.QM2.SVRCONN正在运行。 这些结果表明MQOutput节点已连接到服务器连接通道,表明连接成功。

    清单4.连接到IIB10_QM2队列管理器的消息流
    AMQ8417: Display Channel Status details.
    CHANNEL(IIBV10.QM2.SVRCONN)	CHLTYPE(SVRCONN)
    BUFSRCVD(10) 				BUFSSENT(9)
    BYTSRCVD(2884) 			BYTSSENT(2844)
    CHSTADA(2015-10-05) 		CHSTATI(12.05.55)
    COMPHDR(NONE,NONE) 			COMRMSG(NONE,NONE)
    COMPRATE(0,0) 				COMPTIME(0,0)
    CONNAME(192.168.112.1) 		CURRENT
    EXITTIME(0,0) 				HBINT(300)
    JOBNAME(OOOOIOZBOOOOOOOD)
    LOCLADDR(::ffff:192.168.112.131(1026))
    LSTMSGDA(2015-lO-05) 		LSTMSGTI(12.05.55)
    MCASTAT(RUNNING) 			MCAUSER(system)
    MONCHL(OFF) 				MSGS(7)
    RAPPLTAG(erver\bin\DataFlowEngine.exe)
    SECPROT(NONE) 				SSLCERTI()
    SSLKEYDA( ) 				SSLKEYTI()
    SSLPEER( ) 				SSLRKEYS(0)
    STATUS(RUNNING) 			STOPREQ(NO)
    SUBSTATE(RECEIVE) 			CURSHCNV(1)
    MAXSHCNV(10) 				RVERSION(08000002)
    RPRODUCT(MQCC)
  10. OUTPUT.QL队列中获取示例消息:
    -bash-4.1$ ./amqsget OUTPUT.QL IIB10_QM2

    您将看到以下输出:

    Sample AMQSGET0 start 
    message I am using IIBV10 and MQV8.0

现在,您已经使用AMQSPUT程序在INPUT.QL上放置了示例消息。 该消息流主从消息INPUT.QL队列,并将其发送到OUTPUT.QL上队列IIB10_QM2 您还看到CURDEPTH更改为1。

方案3:客户渠道定义表

在此示例中,“集成”节点在Windows系统上运行,队列管理器在Linux系统上运行。 如果选择CCDT选项,则必须指定队列管理器名称并在Windows系统上配置MQ CCDT文件。

配置MQInput节点属性

要配置MQInput节点属性:

  1. 更新INPUT.QL队列名称:
    1. 转到MQ输入节点属性窗口(图16)。
    2. 在“ 基本”选项卡上,为“队列名称”输入INPUT.QL
    图16. MQInput节点的队列名称
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第12张图片
  2. 更新IIB10_QM1队列管理器的MQ客户端连接详细信息:
    1. 转到MQ输入节点属性窗口(图17)。
    2. 在“ MQ连接”选项卡上,对于“ 连接” ,输入Client channel definition table (CCDT) file 对于目标队列管理器名称 ,输入IIB10_QM1
    图17. IIB10_QM1的连接详细信息
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第13张图片

配置MQOutput节点属性

要配置MQOutput节点属性:

  1. 更新OUTPUT.QL队列名称:
    1. 转到MQ输出节点属性窗口(图18)。
    2. 在“ 基本”选项卡上,为“ 队列名称 ”输入OUTPUT.QL
    图18. MQOutput节点的队列名称
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第14张图片
  2. 更新IIB10_QM2队列管理器的连接详细信息:
    1. 转到MQ输出节点属性窗口(图19)。
    2. 在“ MQ连接”选项卡上,对于“ 连接” ,输入Client channel definition table (CCDT) file 对于目标队列管理器名称 ,输入IIB10_QM2
    图19. IIB10_MQ2队列管理器的连接详细信息
    ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第15张图片

将CCDT文件注册到Integration节点

使用FTP,SFTP或WINSCP实用程序将AMQCLCHL.TAB CCDT文件从MQ Linux服务器复制到Windows服务器。 然后,向Integration节点注册AMQCLCHL.TAB文件:

mqsichangeproperties IIBV10 -o BrokerRegistry -n mqCCDT -v "C:\Users\MVP\Documents\AMQCLCHL.TAB"

找到用于集成节点注册表的CCDT文件

为集成节点注册表指定CCDT文件的位置:

C:\Program Files\IBM\IIB\10.0.0.0>mqsichangeproperties IIBV10 -o BrokerRegistry -n mqCCDT -v "C:\Users\MVP\Documents\AMQCLCHL.TAB"

您会看到以下消息:

BIP8071I: Successful command completion

检查CCDT文件分配

设置mqCCDT属性后,为所有配置重新启动“集成”节点以反映更改。 要检查mqCCDT属性是否已注册到IIBV10集成节点,可以使用以下命令:

mqsireportproperties IIBVIO -o BrokerRegistry –r BrokerRegistry

清单5显示了命令输出。

清单5.分配给Integration节点注册表的CCDT文件
uuid='BrokerRegistry'
brokerKeystoreType='3KS'
brokerKeystoreFi1e=''
brokerKeystorePass='brokerKeystore::password'
brokerTruststoreType='JKS'
brokerTruststoreFile=''
brokerTruststorePass='brokerTruststore::password'
brokerCRLFileList=''
httpConnectorPortRange=''
httpsConnectorPortRange=''
brokerKerberosConfigFi1e=''
brokerKerberosKeytabFile=''
allowSSLv3=''
mqCCDT='C:\Users\MVP\Documents\AMQCLCHL.TAB'
modeExtensions="

确认数据流引擎连接

要确认数据流引擎与队列的连接:

  1. 启动IIB10_QM1队列管理器的MQSC命令:
    -bash-4.1$ runmqsc IIB10_QM1
  2. 显示IIB10_QM1队列管理器的队列状态:
    DIS CHS(*) all

    数据流引擎(执行组)正在侦听,并且服务器连接通道IIBV10.SVRCONNIIB10_QM1队列管理器中运行(清单6)。 这些结果表明MQInput节点已连接到服务器连接通道,表明连接成功。

    清单6.与IIB10_QM1队列管理器的流连接
    AMQ8417: Display Channel Status details.
    CHANNEL(IIBV10.SVRCONN) 		CHLTYPE(SVRCONN)
    BUFSRCVD(156) 				BUFSSENT(5)
    BYTSRCVD(10184) 			BYTSSENT(2152)
    CHSTADA(2015-10-05) 		CHSTAII(12.20.00)
    COMPHDR(NONE,NONE) 			COMRMSG(NONE,NONE)
    COMPRATE(0,0) 				COMPTIME(0,0)
    CONNAME(192.168.112.1) 		CURRENT
    EXITTIME(0,0) HBINT(300)
    JOBNAME(OOOOOFBGOOOOOIBF)
    LOCLADDR(::ffff:192.168.112.131(1025))
    LSTMSGDA(2015-lO-05) 		LSTMSGTI(12.20.00)
    MCASTAI(RUNNING) 			MCAUSER(system)
    MONCHL(OFF) 				MSGS(3)
    RAPPLTAG(erver\bin\DataFlowEngine.exe)
    SECPROT(NONE) 				SSLCERTI()
    SSLKEYDA( ) 				SSLKEYTI()
    SSLPEER( ) 				SSLRKEYS(O)
    STAIUS(RUNNING) 			STOPREQ(NO)
    SUBSTAIE(RECEIVE) 			CURSHCNV(1)
    MAXSHCNV(10) 				RVERSION(08000002)
    RPRODUCT(MQCC)
  3. 启动IIB10_QM2队列管理器的MQSC命令:
    -bash-4.1$ runmqsc IIB10_QM2
  4. 显示IIB10_QM2队列管理器的队列状态:
    dis chs(*) all

    如清单7所示,数据流引擎(执行组)正在侦听,并且服务器连接通道IIBV10.QM2.SVRCONNIIB10_QM>2队列管理器中运行。 这些结果表明MQOutput节点已连接到服务器连接通道,表明连接成功。

    清单7.与IIB10_QM2队列管理器的流连接
    AMQ8417: Display Channel Status details.
    CHANNEL(IIBV10.QM2.SVRCONN) 	CHLTYPE(SVRCONN)
    BUFSRCVD(10) 				BUFSSENT(9)
    BYTSRCVD(2876) 			BYTSSENT(2844)
    CHSTADA(2015-10-05) 		CHSTAII(12.22.05)
    COMPHDR(NONE,NONE) 			COMRMSG(NONE,NONE)
    COMPRATE(0,0) 				COMPTIME(0,0)
    CONNAME(192.168.112.1) 		CURRENT
    EXITTIME(0,0) 				HBINT(300)
    JOBNAME(00001OZBOOOOOOOE)
    LOCLADDR(::ffff:192.168.112.131(1026))
    LSTMSGDA(2015-10-05) 		LSTMSGTI(12.22.05)
    MCASTAI(RUNNING) 			MCAUSER(systam)
    MONCHL(OFF) 				MSGS(7)
    RAPPLTAG(erver\bin\DataFlowEngine.exe)
    SECPROT(NONE) 				SSLCERTI()
    SSLKEYDA( ) 				SSLKEYTI()
    SSLPEER( ) 				SSLRKEYS(0)
    STAIUS(RUNNING) 			STOPREQ(NO)
    SUBSTAIE(RECEIVE) 			CURSHCNV(1)
    MAXSHCNV(10) 				RVERSION(08000002)
    RPRODUCT(MQCC)
  5. 检查CURDEPTHOUTPUT.QL队列:
    DIS QL(OUTPUT.QL) CURDEPTH

    该消息流从拾取该消息INPUT.QL队列IIB10_QM1队列管理器和它发送到OUTPUT.QL队列IIB10_QM2队列管理器。 如清单8所示, CURDEPTH现在已更改为1。

    清单8. OUTPUT.QL CURDEPTH
    AMQ8409: Display Queue details.
    QUEUE(OUTPUT.QL) 		TYPE(QLOCAL)
    CURDEPTH(1)
  6. 浏览在样本消息OUTPUT.QL队列,在IIB10_QM2队列管理器:
    -bash-4.1$ ./amqsget OUTPUT.QL IIB10_QM2

    您会看到以下消息:

    Sample AMQSGET0 start
    message I am using CCDT File

CCDT设置面临的挑战

如果未正确定义CCDT文件配置(例如CCDT文件的通道名称或位置),则可能会遇到如图20所示的错误。

图20.错误的CCDT配置
ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接_第16张图片

此错误消息表示无法建立到队列管理器的CCDT连接。 要更正此错误,必须检查以下区域:

  • MQ客户端通道定义
  • 端口号
  • CCDT文件的位置:创建CCDT文件后,必须以二进制模式传输文件。
  • 客户端/服务器连接通道名称:创建CCDT文件之前,名称必须匹配。
  • CCDT文件的位置

    重要:请勿打开或修改CCDT文件。 修改文件可能导致CCDT无法正常工作,并可能导致错误。

结论

本教程介绍了IBM Integration Bus v10和MQ v8之间的配置和连接。 它解释了将集成节点连接到MQ队列管理器的三个选项。 这些选项包括本地队列管理器,MQ客户端连接属性和客户端通道定义表。 这些场景演示了如何使用CCDT和IBM Integration节点创建队列管理器,MQ通道。 他们还解释了如何通过使用MQ连接属性来配置IBM Integration Bus消息流。

翻译自: https://www.ibm.com/developerworks/websphere/library/techarticles/1602_movva-trs/1602_Movva.html

ibm mq安装配置

你可能感兴趣的:(ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接)