一种监视远程数据库运行状态的方法及系统
技术领域
本发明涉及计算机通讯领域,尤其涉及一种监视远程数据库运行状态的方法及系统。
背景技术
如今,计算机的数据库技术得到了越来越广泛的应用,国内外已经开发建设了成千上万个数据库,它给人们带来了很大的便利,已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着现代网络通信技术的发展,数据库技术的应用已经突破了地理限制,实现了异地用户对数据库的数据与信息的共享。但计算机系统是一个复杂的软硬件相结合的系统,由于具体的网络环境会因某些突发事件发生变化,常常会影响到正常使用远程数据库,所以有必要对使用中的远程数据库运行状态进行监视,以便及时发现并处理故障问题。
中国专利文献“用来监视数据库环境的微监视器”(专利申请号:200410063992.9)描述了一种用于监视数据库环境的方法及装置。所述方法包括提供一微监视器及通信装置,所述微监视器包括具有图形用户接口的应用程序。所述微监视器与数据库环境通信以获取数据库环境的操作信息,所述微监视器处理接收到的数据库环境的操作信息以产生监视信息并在所述微监视器显示所述监视信息。所述方法虽然可以监视数据库环境,但是需要在监视端设置一个专用的数据库监视装置,还要安装好监视应用程序以及周围一系列的硬件配置,其方法及装置较复杂、成本较高,在未安装所述监视应用程序及相关硬件配置情况下所述方法无法实现对数据库的监视,即其移植性较差。
发明内容
本发明所要解决的技术问题是监视数据库环境的方法较复杂、成本较高且移植性较差的问题,提出一种简单可行、成本较低且移植性较好监视远程数据库运行状态的方法及系统。
为了解决上述技术问题,本发明提供一种监视远程数据库运行状态的方法,包括:
在应用程序的主线程中设置用于连接远程数据库的触发条件,同时在所述主线程中创建并启动监视线程,所述监视线程根据所述触发条件连接所述远程数据库并获取其运行状态的信息。
进一步地,在上述方法中,所述在主线程中创建并启动监视线程包括:在所述主线程中创建监视线程,并在所述监视线程中建立死循环,使所述监视线程不断运行。
进一步地,在上述方法中,所述设置连接远程数据库的触发条件包括:在所述主线程中设置定时器,以预定的时间间隔周期性地触发所述监视线程连接所述远程数据库。
进一步地,在上述方法中,所述监视线程根据所述触发条件连接所述远程数据库并获取其运行状态的信息包括:
所述监视线程以所述定时器预定的时间间隔周期性地连接所述远程数据库,若所述监视线程连接所述远程数据库成功,所述监视线程释放所述远程数据库;若所述监视线程连接所述远程数据库失败,所述监视线程分析并打印出所述远程数据库的异常运行状态。
进一步地,在上述方法中,所述监视线程通过标准编程接口ODBC开放式数据库连接方式进行对所述远程数据库的连接。
一种监视远程数据库运行状态的系统,所述系统包括触发控制模块及监视模块,所述触发控制模块用于以设定的触发条件触发所述监视模块连接远程数据库,所述监视模块用于根据所述触发控制模块的触发条件连接所述远程数据库并获取其运行状态的信息。
进一步地,在上述系统中,所述触发控制模块为定时器。
进一步地,在上述系统中,所述监视模块用于以所述定时器预定的时间间隔周期性地连接所述远程数据库,若所述监视模块连接所述远程数据库成功,所述监视模块释放所述远程数据库;若所述监视模块连接所述远程数据库失败,所述监视模块分析并打印出所述远程数据库的异常运行状态。
采用本发明所述的监视远程数据库运行状态的方法及系统,只需在主线程中设置定时器及创建监视线程,不需要另外专门配置相应的硬件,故其操作简单方便,成本较低;而且本发明的所述方法及系统不需要在监视端安装相应的监视应用程序,所述监视线程可根据需要在监视端临时创建且在应用程序退出时释放,故其操作灵活,移植性较好。
附图说明
图1是本发明监视远程数据库运行状态的系统示意图;
图2是本发明监视远程数据库运行状态的方法流程示意图;
图3是本发明监视远程数据库运行状态的方法中监视线程的流程示意图。
具体实施方式
下面结合附图对本发明监视远程数据库运行状态的方法及系统进行说明。
请参阅图1,本发明的监视远程数据库运行状态的系统包括触发控制模块及监视模块,所述触发控制模块用于以设定的触发条件触发所述监视模块连接远程数据库,所述监视模块用于根据所述触发控制模块的触发条件连接所述远程数据库并获取其运行状态的信息。
本发明的所述方法在应用程序的主线程中设置定时器,用于以预定的时间间隔周期性地触发连接远程数据库。其中,定时器的预定时间间隔取决于所述远程数据库所处的网络环境。本发明还在所述主线程中创建一子线程,用于监视所述远程数据库运行状态,定义为监视线程。启动所述定时器和所述监视线程后,所述主线程执行其他任务,所述监视线程以所述定时器预定的时间间隔周期性地连接所述远程数据库。其中,若某次所述监视线程连接所述远程数据库失败,所述监视线程分析并打印出所述远程数据库的异常运行状态;若某次所述监视线程连接所述远程数据库成功,所述监视线程释放所述远程数据库。当所述主线程完成所有任务,关闭整个应用程序时,所述应用程序释放所述监视线程。
请参阅图2,其是本发明监视远程数据库运行状态的方法流程示意图,包括以下步骤:
步骤S1、在应用程序主线程中设置定时器,启动所述定时器;
步骤S2、在所述主线程中创建监视线程,启动所述监视线程,且在所述监视线程中建立死循环,使所述监视线程不断运行;
步骤S3、所述监视线程以所述定时器预定的时间间隔周期性地连接远程数据库,获取所述远程数据库的运行状态。本实施例中,所述定时器的预定时间间隔为3秒,所述监视线程根据用户输入的所述远程数据库的数据源名、用户名、密码等信息,通过标准编程接口ODBC(Open Database Connectivity开放式数据库连接)的方式对所述远程数据库进行连接;
步骤S4、所述主线程完成所有任务后,所述应用程序退出时释放所述监视线程,即所述监视线程退出。
请参阅图3,其是本发明监视远程数据库运行状态的方法中监视线程的流程示意图。
所述监视线程启动后,所述监视线程判断所述定时器的时间事件(定时器计时到所设置的时间)是否发生,若所述时间事件未发生,则所述监视线程继续等待。
当所述时间事件发生时,所述监视线程连接所述远程数据库。所述监视线程连接所述远程数据库后,所述远程数据库会返回一结果值,所述结果值用于判断所述远程数据库的运行状态。若所述监视线程连接所述远程数据库失败,则表明所述远程数据库出现了异常,所述监视线程根据所述远程数据库返回的结果值分析得出所述远程数据库的异常运行状态,并打印出所述远程数据库的运行状态;若所述监视线程连接所述远程数据库成功,则表明所述远程数据库运行正常,所述监视线程释放连接上的所述远程数据库,其目的在于防止因连接所述远程数据库的数量过多而降低其应用程序的效率及造成所述远程数据系统崩溃的情况发生。所述监视线程连接所述远程数据库后,所述定时器将清零并重新计数,以使所述监视线程以每隔3秒的时间间隔周期性地连接所述远程数据库。
可以理解,本发明中的所述定时器的预定时间间隔可根据需要设定为其它值;所述定时器还可为根据实际需要设置其它触发控制模块,例如根据当前网络环境设置触发控制模块的触发条件,当网络比较拥堵时访问某服务器会需要较长的响应时间,根据所述响应时间设置上限值来作为触发条件,以保证满足触发条件时所述监视线程连接所述远程数据库。
相比于现有技术,本发明提供一种监视远程数据库运行状态的方法及系统,只需在主线程中设置定时器及创建监视线程,不需要另外专门配置相应的硬件,故其操作简单方便,成本较低;而且本发明的所述方法不需要在监视端安装相应的监视应用程序,所述监视线程可根据需要在监视端临时创建且在主线程完成任务后应用程序关闭时释放,故其操作灵活,移植性较好。
以上仅为本发明的优选实施案例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。