一种计算机应用程序的监控及异常处理方法

文档序号:6560227阅读:283来源:国知局
专利名称:一种计算机应用程序的监控及异常处理方法
技术领域
本发明涉及一种计算机程序的监控方法。
背景技术
计算机应用程序由于内部或外部的原因,出现缺陷很难避免的。当缺陷出现时,常常使应用程序发生不可预测的异常,比如程序退出或无响应。如果应用程序是一个有界面的应用程序,当程序异常时,用户可以通过手工重启程序来保证应用程序正常运行;如果应用程序是一个无界面的应用程序,只有在用户无法使用应用程序提供的应用服务时,才能得知程序异常。对于一般的应用程序,程序的异常可能并不存在太大的问题,但对于某些特殊的应用场合,比如不能中断太长时间的应用,程序的异常就会造成比较大的影响。
中国专利申请“计算机应用软件自纠错自重启方法”(CN03100776.7)提供了一种计算机应用软件自纠错自重启方法,它可以使应用程序在不可预测的情况出错退出或无响应时,能自动关闭已出错进程,并重新开启新的进程副本,保证系统长时间正常运行。该方法包括创建一个外部进程,系统启动时,外部进程先启动,并由外部进程来创建和启动应用程序软件的内部进程,外部进程定期地对内部进程发送状态报告请求,在内部进程正常的情况下,内部进程的异常处理模块对外部进程所发出的状态报告请求做出正确和及时的反馈;当内部进程出现非正常退出或停止响应时,如果外部进程在一段时间内一直收不到反馈信息,则外部进程对内部进程发送终止消息或直接终止内部进程,并自动建立一个新的内部进程。
但是,由于一般应用程序都是由多模块组成,如果某一个模块异常,有可能导致整个应用程序崩溃,也有可能仅仅导致某项功能无法实现。“计算机应用软件自纠错自重启方法”只能对应用程序整体是否异常进行监控,无法对应用程序的各个模块是否异常进行监控。如果应用程序的内部进程中的某个模块出现异常,但异常处理模块正常,仍然能够处理外部进程的状态报告请求,则该方法就不能完全保证应用程序的正常工作。

发明内容
本发明目的是提供一种计算机应用程序的监控及异常处理方法,其不仅能够对应用程序的工作状态进行监控,而且对各个模块进行监控,并能对程序异常进行处理,解决了现有监控方法不能对各个模块进行分别监控和异常处理的技术问题。
本发明的技术解决方案是一种计算机应用程序的监控及异常处理方法,包括以下步骤步骤1]启动监控进程为应用程序创建一个监控进程并在启动该应用程序前启动该监控进程;步骤2]启动应用进程监控进程启动后,查询应用进程是否启动,如果没有启动,监控进程首先启动应用进程;步骤3]查询应用进程的状态信息如果应用进程已经启动,则监控进程定期对应用进程发送状态查询请求,应用进程收到状态查询请求后,收集相应的状态信息,并将状态信息反馈给监控进程;步骤4]程序异常的处理如果在设定的时间内一直收不到应用进程反馈的信息,或信息反馈异常,则监控进程发出终止信息或直接终止该应用进程,并启动该应用进程。
上述步骤3]中监控进程对应用进程发送的状态查询请求包括应用程序收集各个模块的状态信息。
上述步骤3]中监控进程对应用进程发送的状态查询请求还可包括应用程序收集应用程序自身的状态信息以及各个模块的状态信息。
上述应用进程收到状态查询请求后收集应用程序自身的状态信息包括当前工作内容、网络连接是否通畅、数据库连接是否通畅、处理请求数、开始运行时间或更新时间。
上述步骤4]中设定的时间包括内启动时间和外启动时间,该内启动时间比外启动时间短;所述步骤4]中程序异常的处理步骤包括1]如果在设定的内启动时间内监控进程一直收不到应用进程的反馈信息,或者某个模块没有反馈信息或反馈信息异常,则监控进程发出终止信息或直接终止该应用进程;
2]如果应用进程无法终止,则在设定的外启动时间内监控进程一直收不到应用进程的反馈信息,或者某个模块没有反馈信息或反馈信息异常时,监控进程直接启动该应用进程。
上述步骤1]启动监控进程步骤具体包括为应用程序创建一个监控进程并在启动该应用程序前启动该监控进程;该监控进程包括设置响应标志监控进程内部设置有应用进程各个模块和应用进程自身的响应标志,它判断应用进程中各个模块和应用进程本身的错误累计数值,监控进程发送一次状态查询请求,所有的响应标志就增加1;所述步骤3]监控进程定期向应用进程发送状态查询请求步骤具体包括监控进程每隔一定的时间向应用进程发送状态查询请求,在应用进程运行正常的情况下,应用进程及应用进程的各个模块都会对监控进程发送的状态查询请求做出正确和及时的反馈,监控进程将各个相应的响应标志置零;所述步骤4]中内启动时间为响应标志的内启动阈值,所述外启动时间为响应标志的外启动阈值;所述步骤4]程序异常的处理步骤具体包括如果监控进程中,某一个响应标志的错误累计数值超没有超过设定的外启动阈值,但是超过内启动阈值时,则监控进程发出终止信息或直接终止该应用进程,如果应用进程仍然无法终止,则该响应标志的错误累计数值超过设定的外启动阈值时监控进程强制终止应用进程运行,再启动一个新的该应用进程。
上述步骤3]中监控进程收到反馈的状态信息后显示相应状态信息。
上述监控进程包括通信机制和错误纠错机制通信机制是负责同应用进程发送请求和接收反馈信息,它可以通过消息传递、共享内存、写配置文件、写注册表、管道、套接字通信等方式实现监控进程和应用进程之间的通信;错误纠错机制负责对通信接收到的信息进行分析和处理。
本发明的优点是1、本方法中,监控进程不但对应用程序本身进行监控,而且能对应用程序的各个模块进行监控,在应用程序正常工作的情况下,能及时发现某个模块的崩溃或异常情况,并进行相应处理,可以使应用程序更好的长时间工作和运行。
2、如果应用程序中的一个特定模块具有重要的意义,本方法可在对应用程序进行监控的同时单独对该模块进行监控,以最大限度保证应用程序的正常运行。
3、本发明针对应用进程的不同工作情况进行了相应处理,当应用进程非正常退出或停止响应时,监控进程要求应用进程自我关闭并重启,相当于热启动或内启动;当应用进程无法进行自我关闭并重启时,监控进程强行关闭并重启应用进程,相当于冷启动或外启动。本发明增加了一个内启动的步骤,可最大限度减少外启动对应用程序带来的诸如数据丢失等不利影响,保证应用程序的正常运行。


图1是本发明的系统示意图;图2是本发明的监控进程和应用进程启动流程图;图3是本发明的正常工作流程图;图4是本发明的应用进程异常时的流程图;图5是本发明的应用进程某一模块异常时的流程图。
具体实施例方式
本发明的系统示意图见图1,应用程序包括监控进程和应用进程,应用进程包括模块1、模块2……模块n,监控进程和应用进程之间的通信包括状态查询请求和状态反馈,应用进程和各模块之间的通信包括查询模块状态请求和模块状态反馈。为了对应用程序中的一个或多个具有重要的意义特定模块进行监控,监控进程和各模块之间也可以直接进行查询模块状态请求和模块状态反馈的通信过程。
本发明的监控程序和应用进程启动流程见图2,包括创建一个监控进程,监控进程启动后,查询应用进程是否启动,如果没有启动,先启动应用进程,进行初始化系统状态。启动应用进程的同时设置定时器(定时器根据用户设置将定期被触发)。
本发明的正常工作流程见图3,监控进程启动后,首先启动应用进程。监控进程设有定时器,以判断应用进程的响应;定时器每次被触发,都会查询应用进程是否启动,如果没有启动,则启动应用进程。定时器被触发后,向应用进程发送状态查询请求,监控进程内部设置有应用进程各个模块和应用进程本身的响应标志,它用于判断应用进程中各个模块和应用进程本身的错误累计数值,监控进程发送一次状态查询请求,所有的响应标志就增加1。应用进程收到状态查询请求后,收集自身的状态信息和各个模块的状态信息,包括当前工作内容、网络连接是否通畅、数据库连接是否通畅、处理请求数、开始运行时间或更新时间等,并将这些信息反馈给监控进程,监控进程将这些信息显示出来。在应用进程运行正常的情况下,应用进程及应用进程的各个模块都会对监控进程发送的状态查询请求作出正确和及时的反馈,监控进程将各个相应的响应标志的置零。
当应用进程异常时的流程见图4,如果监控进程一直收不到应用进程反馈的监控信息,或者应用进程的监控信息异常,比如响应标志的错误累积计数值大于10,则监控进程发出终止信息或直接终止应用进程,并自动建立一个新的应用进程。
当应用进程某一模块异常时的流程见图5,如果监控进程一直收不到某个模块的监控信息,或者某个模块的监控信息异常,比如响应标志的错误累积计数值大于10,则监控进程发出终止信息或直接终止应用进程,或自动建立一个新的应用进程。
本发明原理本发明的应用进程完成应用程序主要功能、任务。
本发明的监控进程负责监控应用进程的正常运行包括通信机制和错误纠错机制。通信机制是负责同应用进程发送请求和接收反馈信息。它可以通过消息传递、共享内存、写配置文件、写注册表、管道、套接字通信等方式实现监控进程和应用进程之间的通信。错误纠错机制负责对通信接收到的信息进行分析和处理。
错误纠错机制进一步包括判断是否能按时收到应用进程的发过来的反馈消息1、如果在设定的时间内没有收到应用进程发来的反馈消息,则检查应用进程是否存在,如果应用进程已存在,则认为应用进程异常或进入死锁,便发送终止应用进程消息,关闭应用进程,并重新启动一个应用进程,如果应用进程不存在,则直接启动一个应用进程;2、虽然收到应用进程发过来的反馈消息,但反馈消息中,某一个模块没有反馈信息,则向应用进程发送终止进程消息,关闭应用进程,并重新启动一个应用进程。
设定的时间包括内启动时间和外启动时间,该内启动时间比外启动时间短;内启动时间为响应标志的内启动阈值,外启动时间为响应标志的外启动阈值。
通信机制进一步包括向应用进程发送状态查询请求,在应用进程运行正常的情况下,内部进程及内部进程的各个模块都会对监控进程发送的状态查询请求作出正确和及时的反馈,监控进程将各个相应的响应标志置零。纠错机制进一步包括如果某一个响应标志的错误累计数值没有超过外启动阈值(比如10),但是超过内启动阈值时(比如5),则让应用进程自我关闭,如果应用进程无法自我关闭自己,则响应标志的错误累计数值超过外启动阈值(比如10)时强制终止应用进程运行,再启动一个新的应用进程的步骤。
本方法中,不但对应用程序本身进行监控,而且对应用程序的各个模块进行监控,很大程度上解决了应用程序由于某个模块崩溃或异常时,整个应用程序也不能正常工作的问题,可以使应用程序更健壮的长时间工作和运行。
权利要求
1.一种计算机应用程序的监控及异常处理方法,其特征在于包括以下步骤步骤1]启动监控进程为应用程序创建一个监控进程并在启动该应用程序前启动该监控进程;步骤2]启动应用进程监控进程启动后,查询应用进程是否启动,如果没有启动,监控进程首先启动应用进程;步骤3]查询应用进程的状态信息如果应用进程已经启动,则监控进程定期对应用进程发送状态查询请求,应用进程收到状态查询请求后,收集相应的状态信息,并将状态信息反馈给监控进程;步骤4]程序异常的处理如果在设定的时间内一直收不到应用进程反馈的信息,或信息反馈异常,则监控进程发出终止信息或直接终止该应用进程,并启动该应用进程。
2.根据权利要求1所述的计算机应用程序的监控及异常处理方法,其特征在于所述步骤3]中监控进程对应用进程发送的状态查询请求包括应用程序收集各个模块的状态信息。
3.根据权利要求1所述的计算机应用程序的监控及异常处理方法,其特征在于所述步骤3]中监控进程对应用进程发送的状态查询请求包括应用程序收集应用程序自身的状态信息以及各个模块的状态信息。
4.根据权利要求3所述的计算机应用程序的监控及异常处理方法,其特征在于所述应用进程收到状态查询请求后收集应用程序自身的状态信息包括当前工作内容、网络连接是否通畅、数据库连接是否通畅、处理请求数、开始运行时间或更新时间。
5.根据权利要求1或2或3或4所述的计算机应用程序的监控及异常处理方法,其特征在于所述步骤4]中设定的时间包括内启动时间和外启动时间,该内启动时间比外启动时间短;所述步骤4]中程序异常的处理步骤包括1]如果在设定的内启动时间内监控进程一直收不到应用进程的反馈信息,或者某个模块没有反馈信息或反馈信息异常,则监控进程发出终止信息或直接终止该应用进程;2]如果应用进程无法终止,则在设定的外启动时间内监控进程一直收不到应用进程的反馈信息,或者某个模块没有反馈信息或反馈信息异常时,监控进程直接启动该应用进程。
6.根据权利要求5所述的计算机应用程序的监控及异常处理方法,其特征在于所述步骤1]启动监控进程步骤具体包括为应用程序创建一个监控进程并在启动该应用程序前启动该监控进程;该监控进程包括设置响应标志监控进程内部设置有应用进程各个模块和应用进程自身的响应标志,它判断应用进程中各个模块和应用进程本身的错误累计数值,监控进程发送一次状态查询请求,所有的响应标志就增加1;所述步骤3]监控进程定期向应用进程发送状态查询请求步骤具体包括监控进程每隔一定的时间向应用进程发送状态查询请求,在应用进程运行正常的情况下,应用进程及应用进程的各个模块都会对监控进程发送的状态查询请求做出正确和及时的反馈,监控进程将各个相应的响应标志置零;所述步骤4]中内启动时间为响应标志的内启动阈值,所述外启动时间为响应标志的外启动阈值;所述步骤4]程序异常的处理步骤具体包括如果监控进程中,某一个响应标志的错误累计数值超没有超过设定的外启动阈值,但是超过内启动阈值时,则监控进程发出终止信息或直接终止该应用进程,如果应用进程仍然无法终止,则该响应标志的错误累计数值超过设定的外启动阈值时监控进程强制终止应用进程运行,再启动一个新的该应用进程。
7.根据权利要求6所述的计算机应用程序的监控及异常处理方法,其特征在于所述步骤3]中监控进程收到反馈的状态信息后显示相应状态信息。
8.根据权利要求1或2或3或4所述的计算机应用程序的监控及异常处理方法,其特征在于所述监控进程包括通信机制和错误纠错机制通信机制是负责同应用进程发送请求和接收反馈信息,它可以通过消息传递、共享内存、写配置文件、写注册表、管道、套接字通信等方式实现监控进程和应用进程之间的通信;错误纠错机制负责对通信接收到的信息进行分析和处理。
全文摘要
一种计算机应用程序的监控及异常处理方法,包括1]启动监控进程;2]启动应用进程;3]监控进程定期查询应用进程的状态信息,应用进程将状态信息反馈给监控进程;4]如果在设定的时间内收不到反馈信息,或信息反馈异常,则监控进程发出终止信息或直接终止该应用进程,并启动该应用进程。其不仅能够对应用程序的工作状态进行监控,而且能对各个模块进行监控,并能对程序异常进行处理,解决了现有监控方法不能对各个模块进行分别监控和异常处理的技术问题。本发明还增加了一个内启动的步骤,可最大限度减少外启动对应用程序带来的诸如数据丢失等不利影响,保证应用程序的正常运行。
文档编号G06F9/46GK1904852SQ20061010444
公开日2007年1月31日 申请日期2006年8月1日 优先权日2006年8月1日
发明者关福俊, 曹军, 王佳玮, 李轶军 申请人:西安西电捷通无线网络通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1