基于AIX系统的MQ传输方案的设计与实现

2020-07-26 14:19梁明炯
科技创新与应用 2020年22期
关键词:数据传输

梁明炯

摘  要:IBM WebSphere MQ是跨平台的消息传输通信中间件,通过消息队列的存储转发机制,实现各类异构系统之间的数据传输。AIX是IBM开发的类UNIX操作系统,性能稳定。文章基于AIX系统设计并实现了WebSphere MQ的传输方案。

关键词:AIX;MQ;异构系统;数据传输

中图分类号:TP311.52      文献标志码:A         文章编号:2095-2945(2020)22-0010-05

Abstract: IBM WebSphere MQ is a message transmission middleware across multiple platforms that uses the store and forward mechanism of messages to achieve data transmission between heterogeneous systems. AIX is a Unix-like operating system with stable performance developed by IBM. This paper designs and implements a transmission scheme using WebSphere MQ based on AIX.

Keywords: AIX; MQ; heterogeneous systems; transmission

1 背景及意義

随着深圳航空运输业的快速发展,深圳空管气象部门与深圳机场以及各航空公司之间的数据交换需求日益增多。如何保证航空气象资料的实时传输尤为关键。IBM的WebSphere MQ是跨平台跨网络的提供消息传输功能的通信中间件,是目前应用最多的消息中间件产品[1][2]。AIX系统主要应用在IBM RISC 6000系列小型机上[3],性能稳定。我们基于AIX设计并实现了空管气象部门与各航空公司的MQ数据传输系统。本系统自运行以来非常稳定,为各航空公司提供了可靠及时的航空气象资料。

2 MQ方案设计

IBM WebSphere MQ实际上是基于消息队列实现传输。应用程序通过连接到MQ以发送或接收消息,如果连接暂时不可用,MQ会将消息排队,并在连接重新联机时将其转发。MQ中主要涉及三个概念:队列管理器、通道和队列。队列管理器是消息队列的管理者,用来维护和管理消息队列。队列管理器确保消息可以发送至正确的队列或传递至另一个队列管理器;通道是两个队列管理器之间的单向通信链路。MQ 使用通道在队列管理器之间传送消息。要双向发送消息必须定义每个方向的通道;队列是存放消息的容器,队列存储消息直到它被应用程序处理。

MQ的队列分为4种,分别是本地队列、传输队列、远程队列和死信队列:(1)本地队列是一个物理上位于本地

队列管理器中的队列。应用程序可以放消息到本地队列,也可以从本地队列取消息;(2)传输队列是特殊类型的本

地队列。如果需发送消息到远程队列管理器上的队列,消息先被储存在传输队列,直到远程队列管理器上的队列可用;(3)远程队列实质上指向远程队列管理器,程序可以向远程队列发送消息,但不能从远程队列中去读取消息;(4)死信队列是存储无法发送到其正确目的地消息的队列,也就是放置发送失败的消息。

限于篇幅,只选取两个航空公司(东海航空和深圳航空)来阐述MQ的设计方案。我们需要定义各传输接收方的队列管理器、队列以及它们之间相互传输的通道。这里先定义各传输接收方的四字代码,以便定义MQ对象时使用:空管气象部门KGQX、东海航空DHHK、深圳航空SZHK。因此所定义的三个队列管理器分别是KGQX、DHHK和SZHK。

创建并启动队列管理器后,应用程序和其他队列管理器可以连接到它来发送和接收消息。MQ通道通过网络将一个队列管理器连接到另一个队列管理器。MQ通道命名设计为本队列管理器名.TO.对方队列管理器名,例如空管气象到东海航空的通道名为KGQX.TO.DHHK。由于传输的气象资料包括报文和产品(包括图片等各种非报文格式资料),我们设计本地队列LOCAL.TXT存放报文资料,本地队列LOCAL.PRD存放产品资料。传输队列使用对方队列管理器命名,因为传输队列存储的数据是要发送到对方队列管理器。假如一份报文需要通过队列管理器KGQX传到DHHK,那么消息先被存储到本地队列LOCAL.TXT,目标是远程队列TO.DHHK.TXT。然后到传输队列DHHK,通过通道KGQX.TO.DHHK到达队列管理器DHHK。气象部门与深圳航空和东海航空的MQ设计如图1所示。

3 MQ方案实现

本章首先在AIX系统上创建并配置好MQ,然后通过脚本定义好MQ各对象。

3.1 创建MQ文件系统及账户

首先在AIX系统上通过smitty创建相应的文件系统及MQ账户。

(1)运行smitty crfs命令,选择第一项Add an Enhanc

ed Journaled File System。在弹出界面中,选择datavg,在Numb of units中选择5120,即创建5120MB大小的文件系统。在MOUNT POINT一项选择/usr/mqm,即挂载点为/usr/mqm;在Mount AUTOMATICALLY at system restart一项选择yes,即开机自动挂载文件系统。如图2所示。

(2)同样的方法创建/var/mqm文件系统,容量也设置为5G。

(3)执行mount /usr/mqm和mount /var/mqm命令,将

所创建的两个文件系统进行挂载。

(4)通过smitty mkgroup命令创建mqm用户组,然后通过smitty mkuser命令创建MQ用户。

3.2 安装配置MQ

把MQ For AIX光盘插入CDROM中。以root用户登录,输入smitty install命令进入smitty菜单开始安装。在SOFTWARE to install选项按F4,将ACCEPT new license agreements 置为yes,按回車,开始进行MQ的安装。如图3所示。

安装结束后需添加MQSeries服务,步骤如下。

(1)修改/etc/services文件,在末尾添加一行:MQSeries 1414/tcp

(2)修改/etc/inetd.conf,在末尾添加一行:

MQSeries stream tcp nowait mqm /usr/mqm/bin/amqcrsta amqcrsta

(3)刷新inetd进程:refresh -s inetd

可通过telnet localhost 1414进行测试mq是否安装并配置成功。

3.3 定义MQ对象

如图1所示,在空管气象端需要创建队列管理器、2个本地队列、2个传输队列、4个远程队列、1个死信队列以及4个通道。

3.3.1 定义队列管理器

这里创建一个缺省的队列管理器KGQX,如表1。其中,-lf 表示队列管理器日志文件大小,-lp 20 -ls 2表示日志指定为20个主扩展和2个次扩展,-q 选项表示缺省的队列管理器名称。maxmsgl(15728640)表示修改队列管理器的最大消息长度(单位为字节),这里实际消息长度为15728640/1024/1024=15M。

3.3.2 定义本地队列

共需要定义两个本地队列LOCAL.TXT和LOCAL.PRD,如表2。其中,DEFPSIST属性表示队列消息的持久性(值为YES则队列管理器重启时消息不会丢失),MAXMSGL表示队列管理器最大消息长度,MAXDEPTH表示队列上允许的最大消息数。

3.3.3 定义传输队列

队列管理器KGQX中共需要定义两个传输队列SZHK和DHHK,分别对应深圳航空和东海航空,如表3。每个传输队列同时保存报文和产品。USAGE(XMITQ)参数为“XMITQ”,表示指定本队列为传输队列。

3.3.4 定义远程队列

每个远程队列对应于发往一个航空公司的报文或者产品。RNAME和RQMNAME中的参数需与远程队列管理器中的本地队列名或者远程队列管理器名相同,如表4。

3.3.5 定义死信队列

队列管理器KGQX中需定义一个死信队列KGQX.DEADQ,其中参数KGQX.DEADQ表示本队列为死信队列,如表5。

3.3.6 定义消息通道

队列管理器KGQX需接收深圳航空队列管理器SZHK和东海航空队列管理器DHHK发送的消息,接收通道名为SZHK.TO.KGQX和DHHK.TO.KGQX,如表6。其中,参数RCVR指定通道类型为接收类型。BATCHSZ(5)表示批处理大小,当发送的消息个数达到5,通道将统一提交消息。

还需定义到SZHK和DHHK的消息发送通道KGQX.TO.SZHK和KGQX.TO.DHHK,如表7所示。这里IP1和IP2表示对方MQ服务器的IP地址。

4 结束语

本文通过WebSphere MQ设计并实现了用于深圳空管气象部门与航空公司之间的数据传输系统。系统自上线之日起不间断运行,表现出稳定的传输性能。这有效保证了深圳空管气象部门与各航空公司之间安全可靠的数据交换,为深圳航空运输业的发展保驾护航。

参考文献:

[1]马越,罗汉文.WebSphere MQ在零售业系统数据传输中的应用[J].上海师范大学学报(自然科学版),2017,46(01):1-9.

[2]于岩.基于Websphere MQ搭建高可用消息传输队列[J].电脑知识与技术,2015,11(19):76-77.

[3]张黎.基于AIX操作系统的银行中间业务平台的开发与应用研究[D].江汉大学,2018.

猜你喜欢
数据传输
具有物联网功能的医用恒温反应箱的研制
具有物联网功能的医用恒温反应箱的研制
基于Ad Hoc的微震监测数据传输系统设计
基于ZigBee 的井下探测小助手设计
GPRS DTU的应用经验浅析
新型高速复合数据传输线缆的研究与开发
基于FPGA的可反馈式同步串行通信技术
配网馈线自动化通信方式分析