利用无线MODEM实现HIS数据库的异常监测和远程处理

2012-11-16 09:41刘兴淮徐燕梅粱敏
中国医疗设备 2012年9期
关键词:控件语句指令

刘兴淮,徐燕梅,粱敏

南京医科大学附属淮安第一医院医学工程部,江苏 淮安 223300

利用无线MODEM实现HIS数据库的异常监测和远程处理

刘兴淮,徐燕梅,粱敏

南京医科大学附属淮安第一医院医学工程部,江苏 淮安 223300

本文介绍利用无线工业MODEM实现对医院信息系统(HIS)数据库的作业运行、数据阻塞及死锁等情况进行监测和报警,并通过手机短信控制杀掉已死锁或阻塞的数据库线程,从而实现远程恢复各系统的正常运行。

无线MODEM;HIS;数据库;SQL Server

0 前言

南京医科大学附属淮安第一医院是一所综合性三级甲等医院,年门诊量130万人次,核定床位2200张。医院信息系统(Hospital Information System,HIS)数据库采用SQL Server 2005,工作站近800台。在实际应用中,HIS性能稳定,但因多个用户同时对数据库进行访问,客户端发出的查询较多,加之程序和数据库的设计存在一定缺陷,时常发生数据阻塞、死锁,使CPU或内存消耗太大,造成作业自动执行失败等现象,给整个系统的可靠性带来较大影响,严重时可能使整个系统瘫痪,有时需要数据库管理员人工干预才能恢复系统正常运行[1]。为此,我们利用无线工业MODEM(调制解调器)实现了对数据库性能的监测,并用手机短信对远程数据库异常进行处理。

1 短信平台的实现

1.1 无线工业MODEM

我们选择惠通HT-S3101工业级无线MODEM,内置西门子TC35双频900/1800 MHz短信模块,可直接对AT指令控制;提供OCX控件和DLL动态链接库供二次开发;支持超长短信发送,发送长短信能将中文超过70字的短信自动分割成若干条发送出去;自动编码,提供AT Command接口。本文选用Delphi7.0作为二次开发工具,将提供的szhto.ocx、htcom.dll文件拷贝到C:windowssystem32目录下,在Delphi中,用Import Activex 完成开发控件的安装,并用Regsvr32完成注册。

1.2 短信伺服工具设计

1.2.1 MODEM安装初始化

本文用Delphi开发短信伺服器,常运行于HIS服务器上,用于短信的接收和处理,伺服器启动时,在窗体FormShow事件中完成对MODEM初始化。初始化语句如下:

1.2.2 短信处理

短信伺服器一直处于工作状态,当收到短信时,触发Szhtodll控件的NewSms事件,将收到的短信内容、发送短信的电话号码插入到表mess_items中。数据库后台通过调用存储过程mess_main,解析短信内容的含义,按照预定义的指令代码作出相应的处理,并将处理的结果写入表mess_items。短信伺服器通过Timer控件读取表mess_ items的内容,调用Szhtodll的YhSendSms方法将处理的结果返回发送给用户。YhSendSms方法的具体定义为:YhSendSms(CenterNo As String, sNo As String, sCon As String) As String参数CenterNo、sNo、sCon分别为短信中心号码、对方手机号和待发短信内容,根据YhSendSms方法的返回值判断短信的成功发送与否,并作出相应的异常处理。

1.2.3 来电处理

无线MODEM具有短信收发和语音通话功能,为保证短信的收发成功率,MODEM设备的语音通话功能被禁止使用,以防来电的干扰。在MODEM控件的NewRing事件中加入代码:Szhtodll.YhATCommand('ATH'),当有来电时,NewRing事件被触发,执行‘ATH’指令挂断来电,确保信道不会被长时间占用。

2 数据库性能监测

2.1 死锁和堵塞监测

HIS运行过程中,有时速度很慢,只有少数的用户可以正常使用,而其他用户的操作一直处于执行状态,没有返回结果,如同“死机”一样,这是一种常见的阻塞现象。大多数阻塞问题的发生是因为,进程控制和死锁时间过长,如提交执行长时间的查询,用户取消没有提交或回滚的查询等[2]。而当两个或多个线程之间有循环相关时,便产生死锁[3]。阻塞和死锁会给整个HIS的可靠性带来很大影响,需要对其进行及时的监测和处理。

在HIS数据库中,每5 min通过作业调度存储过程mess_main来监测死锁和阻塞的总数量,如数量超过设定的上限(本应用设定值为50),即将死锁和阻塞的数量写入表mess_item中,通过短信平台自动发送到数据库管理员的手机上。存储过程mess_main处理脚本主要内容如下:

2.2 作业计划任务监测

HIS经常利用SQL Server代理程序作业,使管理任务自动执行和定期运行,如床位费、每日固定费用的收取、数据库的备份、索引的重建、统计数据的汇总等。如果任务没有执行成功,就需要及时地进行处理,否则会给数据库的安全带来隐患,或影响第二天正常业务工作,数据库管理员需要及时准确地得知任务的完成情况[4]。在存储过程mess_main中通过读取msdb 数据库中表sysjobsteps的记录来获取作业失败的具体情况。方法如下:

2.3 CPU占用时间监测

在SQL Server使用一段时间后,会发现sqlserver.exe进程占用了超过60%的CPU,导致整个HIS响应速度非常缓慢,有时也会因为病毒的发作造成CPU占用率超高。监控数据库服务器CPU的活动情况是找出潜在CPU瓶颈的关键步骤,不仅能够及时发现SQL Server配置、存储、服务器的硬件等所存在的问题,而且可以及时找出最消耗I/O资源和CPU资源的SQL语句,不断持续的对SQL语句进行优化,使每个查询的响应时间最短,并最大限度地提高整个数据库服务器的吞吐量[5]。在存储过程

3 堵塞或死锁进程的远程处理

3.1 实现方法

数据的阻塞或死锁对数据库的性能影响极大,严重时可能造成整个系统的瘫痪,需要及时找到阻塞链源头SPID和对应的SQL语句,分析造成阻塞和死锁的原因,及时对其进行优化和处理。在上文的论述中实现对数据库死锁和堵塞进行监测,出现异常时自动发送短信进行报警。当数据库管理员收到异常报警时,通过手机发送指令“FIND”到短信平台获取当前造成阻塞时间最长的SPID和正在执行的SQL语句,分析原因后,发送指令“KILL”+SPID 到短信平台,短信平台即会对造成阻塞的进程进行KILL处理。

3.2 实现步骤

3.2.1 记录每分钟正在阻塞的信息

在HIS数据库中每分钟通过调度作业,将当前引起阻塞的SPID和SQL语句分别记录到表mess_lock和mess_ block中。执行的SQL语句如下:

3.2.2 获取阻塞的SPID和SQL

用户发送指令“FIND”到短信平台,触发短信伺服器Szhtodll控件的NewSms事件,将收到的短信指令、来短信的电话号码插入到表mess_rec 中,在表mess_rec中设计insert 触发器,来处理预定义的指令代码。短信平台收到“FIND”指令后,即从表mess_lock和mess_block中统计出近段时间内阻塞其他进程时间最长的SPID和相对应的SQL命令,将阻塞信息插入到表mess_item中,通过短信平台将阻塞信息发送到数据库管理员的手机上。

3.2.3 处理阻塞进程

发送指令“KILL”+SPID,短信平台会对指定SPID所造成阻塞的进程进行处理,并将处理的结果通过短信反馈给数据库管理员。处理过程如下:

4 结束语

本文采用无线工业MODEM实现对HIS数据库的监测,遇到异常情况时能通过短信及时通知数据库管理员。管理员通过发送短信指令处理数据库阻塞、死锁等异常情况,有效地远程监测数据库的实时状态,达到了很好地远程监控和处理效果[6-7]。经过一年多实际应用,发现多处监测程序或数据库设计存在的问题,都及时作了修改和完善,实现了HIS的持续优化运行,取得了良好的使用效果[8]。

[1] 魏涛.如何防止HIS中数据库的阻塞及死锁[J].医疗卫生装备, 2009,30(10):131.

[2] 肖桂东.SQL Server疑难解 析[M].北京:电子工业出版社,2004: 289-293.

[3] 骆正云,宋念东,俞国霖.医院HlS系统SQL Server数据库性能优化[J].医疗卫生装备,2005,26(2):33.

[4] 王明举,王霞,潘杰,等.利用手机短信实现HlS数据库后台任务的无人看守[J].中国医疗设备,2008,23(9):18.

[5] Michael Otey,Paul Conte. SQL Server 2000开发指南[M].北京:清华大学出版社,2002:68-96.

[6] 沈岜,杨松.医院信息系统的安全建设与管理[J].中国医疗设备,2011,26(6):67-69.

[7] 闫小萍,董一颍,卢沙.医院短信平台的构建与应用[J].中国医疗设备,2011,26(2):49-50.

[8] 杨栋,刘立辉,任志刚.医院信息安全管理与措施[J].中国医疗设备,2011,26(6):70-72.

Using Wireless MODEM to Realize HIS Database Abnormality Monitoring and Remote Treatment

LIU Xing-huai, XU Yan-mei, LIANG Min
Medical Engineering Department, First People’s Hospital of Huai’an Affiliated to Nanjing Medical University, Huai’an Jiangsu 223300, China

This paper describes how to realize working, blocking, deadlock monitoring and alarm of HIS database with the use of wireless industrial MODEM. Through SMS control to stop database threads deadlocked or blocking, thus to realize remote recovery of the normal operation of the system.

wireless MODEM; HIS; database; SQL Server

TP393.08

A

10.3969/j.issn.1674-1633.2012.09.012

1674-1633(2012)09-0056-03

2012-03-14

2012-05-21

作者邮箱:hayyxym1213@sina.com

猜你喜欢
控件语句指令
基于.net的用户定义验证控件的应用分析
重点:语句衔接
《单一形状固定循环指令G90车外圆仿真》教案设计
关于.net控件数组的探讨
中断与跳转操作对指令串的影响
一种基于滑窗的余度指令判别算法
我喜欢
MAC指令推动制冷剂行业发展
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
作文语句实录