一种检测服务器是否正常运行的方法与流程

文档序号:12363238阅读:2548来源:国知局

本发明涉及服务器领域,特别是涉及一种检测服务器是否正常运行的方法。



背景技术:

在现有的看门狗定时器技术中,看门狗定时器内部有一个递减计数器,当该计数器递减为0的时候,就会自动重启系统,如果拥有这样的程序,该程序在定时器计数器递减为0之前,将其递减计数器重新设置一下(喂狗),那么就会产生重启操作。假如机器设备出现异常情况下如死机,CPU执行出错,程序跑飞等情况,CPU就会陷入非正常的执行流程,就不会去执行重置计数器的操作,当计数器递减为0时,执行重启操作,服务器就会重启,恢复正常执行流程。

但是,该技术只能在程序已经明确崩溃的时候,无法执行看门狗技术中的“喂狗”机制(该技术为公知技术)时,才能发挥作用。在程序由于已知原因(如:内存泄漏)或未知原因不能正常工作,但程序中的“喂狗”机制仍在执行时,看门狗定时器技术就无法发挥作用了。

有鉴于此,本发明人专门设计了一种检测服务器是否正常运行的方法,本案由此产生。



技术实现要素:

本发明的目的在于提供一种检测服务器是否正常运行的方法,其解决了在程序由于已知原因或未知原因不能正常工作,但程序中的“喂狗”机制仍在执行时,看门狗定时器无法发挥作用的情况。

为了实现上述目的,本发明采用的技术方案为:

一种检测服务器是否正常运行的方法,所述方法提供一个判断模块、一个WinHTTP模块以及一服务器的服务程序lddsmMainApp,判断模块内嵌在Windows服务中,所述方法包括以下步骤:

S01:判断模块每隔一预设时间调用WinHTTP模块,WinHTTP模块访问服务器的服务程序lddsmMainApp,并从服务器的服务程序lddsmMainApp获取返回结果集;

S02:判断模块判断返回结果集是否为空,若返回结果集不为空,则执行步骤S03,若返回结果集为空,则执行步骤S04;

S03:判断模块获取返回结果集中的数据集合,并根据返回结果集中的数据集合是否包含预设关键字来确定服务器是否正常运行,若包含预设关键字,则说明服务器正常运行并返回执行步骤S01,若不包含预设关键字,则说明服务器没有正常运行并执行步骤S04;

S04:重启服务器的服务程序lddsmMainApp。

优选地,所述Windows服务在服务器端保持24小时不间断运行。

优选地,所述预设时间为5分钟。

优选地,所述预设关键字包括j_username和j_password。

优选地,所述服务器的服务程序lddsmMainApp对外提供URL访问功能。

本发明能够解决看门狗定时器能够解决的问题,如系统死机,程序跑飞等造成的程序不能正常运行的问题,也能解决在程序由于已知原因(如:内存泄漏)或未知原因不能正常工作,但程序中的“喂狗”机制仍在执行时,看门狗定时器无法发挥作用的情况。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明方法流程示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

如图1所示,本发明提供一种检测服务器是否正常运行的方法,所述方法提供一个判断模块、一个WinHTTP模块以及一服务器的服务程序lddsmMainApp,判断模块内嵌在Windows服务中,所述方法包括以下步骤:

S01:判断模块每隔一预设时间调用WinHTTP模块,WinHTTP模块访问服务器的服务程序lddsmMainApp,并从服务器的服务程序lddsmMainApp获取返回结果集,结果集从所调用函数的返回值或所调用函数的相关参数当中获取;

S02:判断模块判断返回结果集是否为空,若返回结果集不为空,则执行步骤S03,若返回结果集为空,则执行步骤S04;

S03:判断模块获取返回结果集中的数据集合,并根据返回结果集中的数据集合是否包含预设关键字来确定服务器是否正常运行,若包含预设关键字,则说明服务器正常运行并返回执行步骤S01,若不包含预设关键字,则说明服务器没有正常运行并执行步骤S04;

S04:重启服务器的服务程序lddsmMainApp。

具体的,在本发明一实施例中,提供一种检测服务器是否正常运行的方法,在Windows服务中内嵌判断模块,所述Windows服务在服务器端保持24小时不间断运行,所述判断模块每隔5分钟调用WinHTTP访问一次服务器的服务程序lddsmMainApp,其中调用方式有多种,具体为直接通过函数名进行调用,并从服务器的服务程序lddsmMainApp获取返回结果集,其中,结果集从所调用函数的返回值或所调用函数的相关参数当中获取,判断模块获取返回结果集中的数据集合,并根据返回结果集的中数据集合是否包含某些关键字来确定服务器是否正常运行,关键字可以有多种,具体可以是j_username和j_password,若包含j_username和j_password关键字则说明服务器正常运行并持续监控,若不包含j_username和j_password关键字则说明服务器没有正常运行并重启服务器的服务程序,所述服务器的服务程序对外提供URL访问服务器的功能。WinHTTP的全称是Microsoft Windows HTTP Services。

需要说明的是,预设时间可以自由定义,只要服务程序lddsmMainApp能够在该预设时间内启动完成即可。

本发明区别于看门狗技术,在看门狗技术中一般需要重启整个系统,而本发明提供的技术在不需要重启整个系统的情况下,只需重启服务器中的服务,即可让无法正常工作的系统恢复正常流程;而且看门狗技术一般会嵌入所监控的系统内部,本发明提供的技术并不嵌入所监控系统内部,而是以一个独立的部分进行运行。

上述说明示出并描述了本发明的优选实施例,如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1