IBM WebSphere MQ 技术在民航气象数据库系统中的应用

时间:2022-07-16 08:26:30

IBM WebSphere MQ 技术在民航气象数据库系统中的应用

摘要:ibm消息中间件MQ以其独特的安全机制、卓越不凡的稳定性、可扩展性和跨平台性,以及强大的消息通讯能力,为不同应用系统之间的数据交互搭建了安全、稳定、高效的桥梁,成为业界市场占有率最高的消息中间件产品。民航气象数据库系统通过引用该技术,使得全民航气象部门之间的数据交换在广域网环境中形成了统一的数据交互平台,在此平台上全民航系统内进行气象资料交换的可靠性、稳定性、实时性得到了良好的保障,对民航气象保障工作起到了积极的推动作用。

关键词:消息中间件(MQ);队列;队列管理器;通道;错误日志

中图分类号:P409 文献标识码:A 文章编号:1007-9599 (2012) 17-0000-02

1 websphere mq的概述

消息中间件(MQ)是一种独立的系统软件或服务程序,分布式应用系统借助这种软件在不同的技术之间共享资源,管理计算资源和网络通讯。它在计算机系统中是一个关键软件,它能实现应用的互连和互操作,能保证系统安全、可靠、高效的运行。消息中间件位于用户应用和操作系统及网络软件之间,它为应用提供了公用的通信手段,并且独立于网络和操作系统。

消息中间件(MQ)适用于任何需要进行网络通信的系统,是基于消息队列的存储转发机制,负责建立网络通信的通道,进行数据或文件发送。 MQ在不同平台及不同语言编写的系统之间传递消息,只需简单的调用几个MQ的API(应用程序接口),就可以实现互相通讯,并不需要考虑底层系统和网络的复杂性。MQ作为IBM的一个拳头产品,虽然功能看上去简单,就是个消息队列,但它却是IBM中间件的核心。MQ不仅有很高的性能,而且对各种平台的支持极优,几乎你能想到的硬件和操作系统平台以及编程语言,MQ都有专门的API支持。依靠这些优势,MQ 在消息类中间件市场上占领了统治地位,已经成为事实上的行业标准,在各类应用中承担了可靠的信息数据传输的基础支撑。

2 WebSphere MQ的工作原理

MQ的工作原理如图1所示:

2.1 本地通讯:应用程序A和应用程序B运行于同一系统A,它们之间可以借助消息队列技术进行彼此的通讯:应用程序A向队列1发送一条信息,而当应用程序B需要时就可以得到该信息。

2.2 远程通讯:如果信息传输的目标改为在系统B上的应用程序C,这种变化不会对应用程序A产生影响,应用程序A向队列2发送一条信息,系统A的MQ 发现队列2所指向的目的队列实际上位于系统B,它将信息放到本地的一个特殊队列-传输队列(Transmission Queue)。我们建立一条从系统A到系统B的消息通道,消息通道将从传输队列中读取消息,并传递这条信息到系统B,然后等待确认。只有MQ接到系统 B成功收到信息的确认之后,它才从传输队列中真正将该信息删除。如果通讯线路不通,或系统B不在运行,信息会留在传输队列中,直到被成功地传送到目的地。 这是MQ最基本而最重要的技术--确保信息传输,并且是一次且仅一次(once-and-only-once)的传递。

3 MQ在民航气象数据库中的应用

3.1 MQ在民航气象数据库系统中的总体架构

如图2所示气象数据库系统是一套分级式的数据交换网络,通过ATM高速交换网实现了气象数据共享。以北京为主中心、地区中心为分中心构成了核心的数据交换网络。在进行数据交换时MQ起到了桥梁的作用,各航站只能与所属地区中心进行数据交换,各地区分中心与北京主中心进行进一步的数据交换。

3.2 MQ在航站级民航气象数据库系统中的架构

下面以本航站(ZYTL)为例,对MQ在民航气象数据库系统中的应用进行介绍。

(1)以图3的数据流程来对民航气象数据库系统中航站与中心之间MQ的通讯原则进行说明:

①每个分中心所管理的航站通信分系统通过网络方式将本航站生成的数据资料(包括报文和产品)传送到分中心的交换服务器通信系统,交换服务器通信系统将这些数据(除了请求报)全部上传到二期主业务通信分系统;②每个分中心二期主业务通信分系统将收到的所有数据分别传送到本分中心的所有数据库系统(包括交换服务器上的数据库系统);③每个分中心二期主业务通信分系统收到数据后,根据用户的指定,将需要分发的数据发送到交换服务器通信系统;④交换服务器通信系统收到二期主业务通信系统发来的数据,根据用户事先的指定进行分发;⑤交换服务器通信系统收到请求报,将检索交换服务器上的数据库系统进行应答。

(2)由图3可知MQ在航站与中心通讯过程中数据流有三个单向、二个双向。

单向: 预报平台 双向:(即发又收) 航站通信服务器

航站通信服务器 DB00 中心交换服务器

DB01 中心二期主业务

4 MQ常见故障分析与处理

任何一种软件都会存在一定的系统管理工作,MQ当然也不例外,下面我就对日常维护工作中常见的故障进行分析阐述。其实MQ为我们提供了丰富的故障分析手段,MQ错误日志即是一种简单易行、快速有效的手段,另外MQ还提供了其它方式方法,如:MQ的系统管理命令、MQ的TRACE、FFST等途径,都是用来对错误信息进行追踪和记录,从而帮助解决问题。

4.1 错误日志分析

当MQ运行过程中出现问题时,第一个应该采取的行动便是查看MQ的错误日志。MQ在各种层次上,为用户提供了丰富的日志文件,这些日志文件包含了所有被启动的队列管理器、有关对MQ的队列管理器操作、以及被启动的通道的相关信息,当队列管理器和通道等运行时,有关信息包括出现异常情况时的信息都将在日志文件中有所体现。

日志文件:当系统建立了队列管理器以后,该队列管理器所需的日志文件随之即在/var/mqm/qmgr/QmgrName/errors子目录下会产生三个日志文件:

AMQERR01.LOG、AMQERR02.LOG、AMQERR03.LOG。它们是以循环方式存储错误消息,因此,最新的错误信息总是存储在AMQERR01.LOG中,历史信息存储AMQERR02.LOG 和 AMQERR03.LOG中。我们应该按照该顺序查看错误信息,并从该文件中获取信息,根据它的提示采取相应的措施。

4.2 常见故障分析

如果查看错误日志经初步分析无法解决问题,则必须更近一步的查找原因,应对如下问题进行深入分析。

MQSeries的通道是MQ的重要组成部分,是MQ的难点和精华,它运行正常与否对MQ系统的正常运行起着致关重要的作用,并且在MQ的网络环境中,相当数量的异常问题与通道有关,因此,相比而言,对MQ通道的维护工作是MQ系统管理员系统管理工作的重点。

通道状态异常时应采取的措施:

(1)查看网络连接是否畅通MQ的通讯是建立在系统网络运行正常的基础之上的,当通道不通时,要首先检查网络连接是否正常。可以使用操作系统ping命令,也可以采用ftp方式,在两个主机之间尝试进行数据传输,以判断网络是否正常。(2)查看通道定义是否正确。通道所使用的传输队列定义是否正确,通道两端的定义是否匹配,如两条通道最大传输的消息长度,Message sequence number wrap是否一致。若不一致,要重新定义通道,可使用脚本命令DEFINE CHANNEL。(3)查看通道的状态。用以下命令来判断通道状态:dis chstatus(ChannelName)或dis chs(ChannelName) 其中,ChannelName代表通道的名称。(4)查看通道的当前消息序列号。用dis chstatus(ChannelName)或dis chs(ChannelName)查看通道的当前一些属性值,在通道的属性值中,current sequence number代表通道当前的消息序列号值,若消息序列号不一致,则可用MQSC命令RESET CHANNEL命令来将消息序列号重新置1。

5 结束语

过通实践验证在民航气象数据库系统中引用MQ技术,极大优化了系统的架构。系统在数据交换过程中选择基于队列等候的MQ 通信方式极大增强了信息的实时性,信息通过队列可以瞬时完成检索和发送;同时安全可靠性方面也很到了极大的保障,MQ 通讯不存在忽略或丢失信息的危险,只有证实信息已经从队列中取出并到达接收端之后,信息才会从发送系统中删除。一旦信息放到MQ Series 手中,那么交付任务便可保证绝对成功。如果通信过程发生中断,信息仍会安全存放在队列中,一旦连接恢复,信息便一次发送过去,对业务的集成不会产生任何影响;日常维护方面MQ日志文件提供较为全面的信息,使机务人员对系统的日常维护和排故工作更加容易开展。MQ所特具的这些先进性、安全性、可管理性和易于维护开发等优势,使民航气象数据库系统的运行效率得到了极大的提升。

参考文献:

[1]甘荃,娄丽军.《IBM WebSphere MQ 基础教程》[M].电子工业出版社,2004.

[2]陈宇翔.精通WebSphere MQ[M].合肥,安徽科学技术出版社.

上一篇:基于PowerBuilder和Oracle的应用软件开发探析 下一篇:浅谈政府门户网站建设的研究与实践