【摘 要】自2012年4月正式运行至今3年多来,水情信息交换系统充分利了计算机网络优势,使信息报送方式和效率得到改善和提高,为防汛抗旱提供了及时、科学的依据,在防汛抗旱中发挥了重要作用。本文介绍水情信息交换系统的结构,分析了报汛数据收发流程,对日常工作中出现的交换异常问题进行分析,提出水情信息交换系统的故障处理方法。
【关键词】水情信息交换 原理 故障 处理
1 概述
水情信息收集传输是水文情报预报工作重要环节,要充分研究和利用数据库和网络技术,努力采用信息交换方式实现各级水情部门数据与数据库之间水情信息传输和共享,提高水情信息收集传输技术整体水平,为进一步推进水文情报预报工作奠定坚实基础。
以往报汛时人员投入大、占用时间多、解决问题慢,错报、漏报、迟报现象,没有充分利用计算机网络优势,无法实时报送基本信息、预报信息、统计信息,没有统一译电软件等报汛问题。水利部水文局于2010年开发研制水情信息交换系统。菏泽水文局于2011年12月1日至2012年3月31日试运行水情信息交换系统,水情信息交换系统不再采用《水情信息编码标准》(SL330-2005)进行数据交换,而是直接基于数据库进行水情数据交换。省去了编码、译电过程,交换效率明显提升,故障率大为减少。
自2012年4月正式运行至今3年多来,水情信息交换系统充分利了计算机网络优势,使信息报送方式和效率得到改善和提高,为防汛抗旱提供了及时、科学的依据,在防汛抗旱中发挥了重要作用。
2 水情信息交换系统介绍
2.1系统结构
水情信息交换系统基于DotNet Framework技术框架,采用Web Service技术,实现 “实时雨水情数据库表结构与标识符标准”(SL323-2011)中基本信息类、实时信息类、预报信息类、统计信息类表单中数据的实时交换功能。利用Ajax技术,实现良好的界面交互效果。
由于系统没有采用第三方软件,避免了实施过程中的额外支出。软件系统架构采用了MVC三层结构设计,层次和逻辑清晰,降低了系统开发和维护的成本,同时提高了系统的可扩展性(见图1)。
2.2 系统特点
2.2.1 部署简便易行
系统需要在分中心、省(市、区)中心、流域、中央多级部署,在推广实施过程中做到低成本、易安装、易维护。
2.2.2 业务覆盖全面
当前全国范围实时雨水情数据库存在Oracle、SQL Server、Sybase三种不同类型的数据库,所以系统具备在三种不同数据库之间进行数据交互的功能。系统具有实时监控、统计分析的功能,同时能够应对网络故障、大数据量传输等特殊情况。
2.2.3 画面直观,操作简单
系统需要在全国范围内部署,系统尽可能简化操作步骤,做到简单易行。
2.2.4 运行稳定可靠
系统保证7*24小时不间断运行,确保数据的正常发送。采用统一面向方面的框架,统一的异常处理、错误隔离、报警、容错和恢复机制,尽可能地保证一个进程故障都不会引起系统的瘫痪,同时也允许系统对部分服务做升级和维护而不影响系统继续提供核心的服务。
2.3 数据交换处理过程
外部系统对发送节点实时雨水情数据库中基本信息类、实时信息类、预报信息类、统计信息类的数据进行插入(修改、删除)操作时,启动数据库表的触发器;触发器将发生变动的数据记录保存到待交换信息记录表中;系统定时对待交换信息记录表进行轮询检查,发现有待发送数据后,根据系统设置的转发关系,为各接收单位生成相应的数据文件,并启动发送模块;发送模块负责把数据文件,分别发送给各接收节点;接收节点通过Web Service接口,接收上传的文件,并启动入库模块;入库模块负责解读数据文件,并把数据记录插入到已接收信息记录表中,同时插入(修改、删除)相应的基本类、实时类、预报类和统计类信息(如图2)。
2.4网络拓扑结构
水情信息交换系统运行环境的网络设备主要由水情信息交换系统应用服务器、数据库服务器、监控终端组成。系统应用服务器在运行数据轮询程序时,可同时通过IIS提供数据接收Web服务。通过软件的配置,信息交换节点可以同时作为发送节点和接收节点(见图3)。
3常见错误分析
3.1系统不能相连
正常网络相通的情况下,系统不能相连的原因多数是因为没有将对方的IP地址写进自己的路由信息里面去。有时也会因为信息接受单位的服务器故障、更换了IP地址等未进行告知而导致与信息接受单位无法进行联通。
3.2文件不能正常发送
如遇到交换系统不对外发送文件的情况,请按照以下步骤检查:
(1)查看交换系统监控页面是否有待处理信息,可进一步从数据库中查看待发送信息记录表中是否有数据(ST_SENWAIT_E)(select * from st_sendwait_e)。
①若没有待发送信息,首先检查交换站点和表单是否发生变动,再检查触发器是否被禁用;②若有待发送信息,但监控页面显示为0,系统统计待发送信息线程可能停止,重启IIS服务(服务中World Wide Web Publishing Service)。
(2)监控页面显示有待处理信息时,可检查数据库表单中的待发送信息记录表(ST_SENWAIT_E)中的发送流水号是否和已处理信息记录表(ST_SENDO_E)、信息配发记录表(ST_SENTO_E)中的发送流水号重复,查到有流水号相同的记录数,直接删除即可。(数据库异常会导致待发送信息记录表中的发送流水号字段的序列异常(oracle)或者发送流水号字增停止(SQL server),生成相同的流水号)
查看是否有流水号相同的记录数:
select * from st_senddo_e where slsh in (select slsh from st_sendwait_e)
select * from st_sendto_e where slsh in (select slsh from st_sendwait_e)
删除记录数:
delete from st_senddo_e where slsh in (select slsh from st_sendwait_e)
delete from st_sendto_e where slsh in (select slsh from st_sendwait_e)
(3 )数据库故障。这种故障一般是服务器崩溃导致数据库丢失,或因数据库空间爆满、硬盘损坏、核心配置参数被误操作等造成,这就要求管理人员应做好数据库日常备份和维护。不仅要本机备份,而且为了防止本服务器崩溃,同时进行异地备份。
3.3 IIS 故障
(1)文件过多过大导致磁盘空间溢出。在C:\Windows\sys32\LogFiles\W3svc1 目录下每天都会产生大量日志文件,如不及时作删除处理,会占用大量有磁盘空间导致C盘空间暴满,IIS无法正常运转。
(2)Asp.net损坏导致交换系统无法启动。Asp.net损坏会导致交换系统出现“无法连接到Web Service,请重新连接测试”等报错信息。处理办法:重新安装Asp.net,并通“Aspnet_regiis”命令进行重新注册。
3.4 数据告警处理
交换系统每日会统计前一日发送/接收信息,并根据系统设置时间(保留7天详细信息)自动删除已处理信息记录表(ST_SENDO_E)、信息配发记录表(ST_SENTO_E)、接收信息记录表(ST_RECVINF_E)三张表中已统计的详细信息,因为数据库中会出现一些无法统计的垃圾数据,累计过多会影响入库效率。当出现数据警告后,需要从数据库中手工删除该表单中的垃圾数据(统计涉及ST_SENDO_E和ST_RECVINF_E 2张表单),或者数据库入库较慢时,删除一些已统计的数据,减少表单的数据量。
3.5 密码遗忘问题
长时间没登录交换系统,忘记数据库密码事情常有发生。通过操作系统超级用户登录后,解除密码锁定,然后重新设置密码。也可进入数库据,找到保存密码的表单进行修改。
4 结语
该系统自投入运行以来,改善了菏泽水情分中心与省中心的水情信息传输效率,能够准确及时的交换、入库各报汛站的水情信息,为水情人员及时了解实时水、雨情提供了技术保障,为防汛抗旱决策提供了及时、科学的依据,在防汛抗旱中发挥了重要作用。
但作为水情信息交换系统的管理人员,必须熟悉交换系统的原理和数据流程及重要控制的表结构内容,才能有效地分析故障,查找问题、解决问题。要加强日常管理,自动清除主要控制表项过大的记录;制作系统脚本,通过计划任务删除过期的收发文件,以保障系统支行运行足够的空间,并定期进行数据库性能优化。另外,要做好应急备份交换系统,在复杂故障短时间内不能解决时,可启用备份交换系统,以保证报汛数据的时效性和完整性。
参考文献:
[1]水利部水文局.水情信息交换系统使用手册[S].北京:水利部水文局,2011:70-77
[2]水利部水文局.SL323-2011实时雨水情数据库表结构和标识符标准[S].北京:水利部水文局,2011;28-69
作者简介:王捷音(1978—),女,汉族,山东菏泽人,本科,工程师,研究方向:水文水资源。