WebSphere MQ通道的建立

  WebSphere MQ是软件应用程序能够用消息和消息队列交换数据并进行通讯。

1.创建队列管理器

大脑:队列管理器(一个负责管理员数据库的队列和消息,负责管理目标数据库的队列和消息)

1. WebSphere MQ 队列管理器,队列和通道 

 

消息有两条路径:一条供复制的数据和来自数据库的通信使用。通道较大,用于运送复制的事务

(大批量消息)

                    另一条供Q ApplyQ Capture通信使用。

步骤:

1. 创建队列管理器

crtmqm SRC_QM     crtmqm TGT_QM

2. 启动队列管理器

strmqm TGT_QM     strmqm SRC_QM

 

2.创建源队列

队列是用来存储消息的数据结构,归队列管理器所有。

SRC_QM定义4个队列:

Ø         远程队列(发送队列),用于将复制数据的消息传递给接收队列

Ø         传输队列,在消息传递过通道之前保存消息

Ø         管理队列,Q Capture用来接收来自Q Apply的通信

Ø         重启动队列,保存重启动的信息

 

2. 源的消息队列

步骤:

1. runmqsc SRC_QM启动与队列管理器的交互对话。

2. DEFINE QLOCAL(‘ADMINQ’) DEFPSIST(YES)    创建管理队列

3. DEFINE QLOCAL(‘RESTARTQ’) DEFPSIST(YES)   创建重启动队列

4. DEFINE QLOCAL(‘TGT_QM’) USAGE(XMITQ) DEFPSIST(YES) 创建传输队列

DEFPSIST(YES):使用这个队列的消息是持久性的,会将它们记入日志,在系统失效或者停止运行时用它们实现恢复。

5. 创建指向目标接收队列的远程队列的定义:

DEFINE QREMOTE(‘SENDQ’) RNAME(‘RECVQ’) RQMNAME(‘TGT_QM’) XMITQ(‘TGT_QM’) DEFPSIST(YES)

命名了目标队列(RNAME,目标队列管理器(RQMNAME)以及要使用的传输队列(XMITQ.

6end

3.创建目标队列

TGT_QM定义三个队列:

Ø         本地队列:接收来自Q Capture的消息

Ø         远程队列的定义,指向源管理队列;本地传输队列,用来容纳管理消息

Ø         模型队列的定义,这对的是spill队列,在复制数据的时候装入数据。Spill对队列是动态生成的,用来保存装入目标表时从原表发来的所有事务。

3. 目标消息。

1. runmqsc TGT_QM

2. 创建接收队列

DEFINE QLOCAL('RECVQ') DEFPSIST(YES)

3. 创建目标传输队列

DEFINE QLOCAL('SRC_QM') USAGE(XMITQ) DEFPSIST(YES)

4.创建指向源管理队列的远程队列的定义

DEFINE QREMOTE(‘ADMINQ’) RNAME(‘ADMINQ’) RQMNAME(‘SRC_QM’) XMITQ(‘SRC_QM’) DEFPSIST(YES)

5.      spill队列创建模型队列定义

DEFINE QMODEL(‘IBMQREP.SPILL.MODELQ’) DEFSOPT(SHARED) MSGDLVSQ(FIFO) DEFTYPE(PERMDYN)

4.创建MQ通道

技巧:每个通道都有两端:在发起队列管理器中定义的发送方通道,以及在目标队列管理器中定义的接收方通道。

4. 源与目标之间的消息通道

开始之前:为了区别不同的通道,您需要在计算机上找出两个可用端口,因为源队列管理器和目标队列管理器都位于拥有独立 IP 地址的独立计算机上。使用端口 1450 1451 未被占用。

  • 要检查在 Windows 上端口是否可用,请打开C:\WINNT\system32\drivers\etc\services文件,并用 Edit -> Find(或者 Ctrl+F)搜索 1450 1451
  • Linux UNIX 上则使用以下命令:cat /etc/services | egrep "1450|1451"

如果这些端口已经分配,请选择其他的端口,并用同样的步骤确认端口可用。

 

源的通道对象

在源队列管理器中,要为发住目标的事务定义发送方通道,为来自 Q Apply 程序的管理消息定义接收方通道。

定义通道

1.确定您的计算机的IP地址:

²        Windows 上用 ipconfig 命令。

²        Linux UNIX 上则用 ifconfig -a 命令。

2rumqsc SRC_QM

3. 定义从 SRC_QM 队列管理器到 TGT_QM 队列管理器的发送方通道(使用 TCP/IP 传输协议):

DEFINE CHL ('SRC_QM.TO.TGT_QM') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('IP address(port)') XMITQ('TGT_QM') DISCINT(0)

4. SRC_QM 队列管理器上定义来自 TGT_QM 队列管理器的接收方通道:

DEFINE CHL ('TGT_QM.TO.SRC_QM') CHLTYPE(RCVR) TRPTYPE(TCP)

 

目标上的通道对象

在目标队列管理器中,您要为与 Q Capture 程序的通信定义发送方通道,为来自 Q Capture 程序的事务消息定义接收方通道。

定义通道

1. runmqsc TGT_QM                 

2. 定义从 TGT_QM 队列管理器到 SRC_QM 队列管理器的发送方通道:

DEFINE CHL ('TGT_QM.TO.SRC_QM') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('IP address(port)') XMITQ('SRC_QM') DISCINT(0)

3. TGT_QM 队列管理器上定义来自 SRC_QM 队列管理器的接收方通道:

DEFINE CHL ('SRC_QM.TO.TGT_QM') CHLTYPE(RCVR) TRPTYPE(TCP)

 

 

posted on 2006-05-31 15:59  盼盼508  阅读(3507)  评论(1编辑  收藏  举报