摘 要:IBM WebSphere MQ是跨平台的消息传输通信中间件,通过消息队列的存储转发机制,实现各类异构系统之间的数据传输。AIX是IBM开发的类UNIX操作系统,性能稳定。文章基于AIX系统设计并实现了WebSphere MQ的传输方案。
关键词:AIX;MQ;异构系统;数据传输
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命令,将
推荐阅读:电气方面的科技论文怎么公开发表