一种金融应用系统后台进程异常检测方法及装置转让专利

申请号 : CN201510237502.0

文献号 : CN104915289B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李春荣刘映镇曾美财朱小珍梁锦华

申请人 : 中国工商银行股份有限公司

摘要 :

本发明涉及一种金融应用系统后台进程异常检测方法及装置,其中,该方法包括:启动监视处理子系统,监视处理子系统启动监视进程;监视处理子系统从监视进程中读取监视进程控制表,获取检测时间间隔,并顺序读取应用后台进程控制表;监视处理子系统从应用后台进程控制表中读出应用后台进程信息;如果应用后台进程中没有未处理的应用后台进程,则监视处理子系统根据检测时间间隔对下一条应用后台进程检测;如果应用后台进程中存在未处理的应用后台进程,则对应用后台进程唯一资源非阻塞申请互斥锁,如果成功获取互斥锁,说明应用后台进程没有启动或已经下宕;否则,说明应用后台进程实例正在运行,监视处理子系统继续对下一条应用后台进程检测。

权利要求 :

1.一种金融应用系统后台进程异常检测方法,其特征在于,该方法基于至少两个监视处理子系统和至少两个业务处理子系统进行检测,包括:启动所述监视处理子系统,所述监视处理子系统启动监视进程;

所述监视处理子系统从监视进程中读取监视进程控制表,从所述监视进程控制表中获取检测时间间隔,并顺序读取应用后台进程控制表;

所述监视处理子系统从所述应用后台进程控制表中读出应用后台进程信息;如果应用后台进程中不存在未处理的应用后台进程,则所述监视处理子系统根据检测时间间隔对下一条应用后台进程进行检测;如果应用后台进程中存在未处理的应用后台进程,则对所述应用后台进程唯一资源非阻塞申请互斥锁,如果成功获取互斥锁,说明应用后台进程没有启动或已经下宕;否则,说明应用后台进程实例正在运行,所述监视处理子系统继续对下一条应用后台进程进行检测;

当成功获取互斥锁时,释放所述应用后台进程唯一资源互斥锁,并根据可用的业务处理子系统列表和负载均衡策略挑选目标业务处理子系统,启动所述应用后台进程到在可用的业务处理子系统上运行,所述监视处理子系统继续对下一条应用后台进程进行检测。

2.如权利要求1所述的方法,其特征在于,所述监视处理子系统启动监视进程的步骤还包括:

对监视进程唯一资源阻塞申请互斥锁;所述监视进程获得互斥锁,其他监视进程睡眠等待互斥锁。

3.如权利要求1所述的方法,其特征在于,所述启动所述应用后台进程到在可用的业务处理子系统上运行的步骤包括:所述业务处理子系统的应用后台进程初始化处理;

对所述业务处理子系统的应用后台唯一资源非阻塞申请互斥锁;如果申请互斥锁失败,则说明业务处理子系统的当前应用后台进程正在运行;如果成功申请互斥锁,则说明业务处理子系统的应用后台进程没有启动或已经下宕,业务处理子系统读取应用后台进程控制表,从应用后台进程控制表中读取业务程序的运行参数,调用业务接口对待处理业务数据进行处理。

4.一种金融应用系统后台进程异常检测装置,其特征在于,该装置基于至少两个监视处理子系统和至少两个业务处理子系统进行检测,包括:初始处理单元,用于启动所述监视处理子系统,所述监视处理子系统启动监视进程;

监视进程控制表获取单元,用于所述监视处理子系统从监视进程中读取监视进程控制表,从所述监视进程控制表中获取检测时间间隔,并顺序读取应用后台进程控制表;

检测单元,用于所述监视处理子系统从所述应用后台进程控制表中读出应用后台进程信息;如果应用后台进程中不存在未处理的应用后台进程,则所述监视处理子系统根据检测时间间隔对下一条应用后台进程进行检测;如果应用后台进程中存在未处理的应用后台进程,则对所述应用后台进程唯一资源非阻塞申请互斥锁,如果成功获取互斥锁,说明应用后台进程没有启动或已经下宕;否则,说明应用后台进程实例正在运行,所述监视处理子系统继续对下一条应用后台进程进行检测;

故障恢复单元,用于当成功获取互斥锁时,释放所述应用后台进程唯一资源互斥锁,并根据可用的业务处理子系统列表和负载均衡策略挑选目标业务处理子系统,启动所述应用后台进程到在可用的业务处理子系统上运行,所述监视处理子系统继续对下一条应用后台进程进行检测。

5.如权利要求4所述的装置,其特征在于,所述初始处理单元进一步用于对监视进程唯一资源阻塞申请互斥锁;所述监视进程获得互斥锁,其他监视进程睡眠等待互斥锁。

6.如权利要求4所述的装置,其特征在于,所述故障恢复单元包括:

初始化模块,用于所述业务处理子系统的应用后台进程初始化处理;

执行模块,用于对所述业务处理子系统的应用后台唯一资源非阻塞申请互斥锁;如果申请互斥锁失败,则说明业务处理子系统的当前应用后台进程正在运行;如果成功申请互斥锁,则说明业务处理子系统的应用后台进程没有启动或已经下宕,业务处理子系统读取应用后台进程控制表,从应用后台进程控制表中读取业务程序的运行参数,调用业务接口对待处理业务数据进行处理。

说明书 :

一种金融应用系统后台进程异常检测方法及装置

技术领域

[0001] 本发明涉及计算机数据处理技术领域,特别涉及一种金融应用系统后台进程异常检测方法及装置。

背景技术

[0002] 目前,金融应用系统中存在大量应用后台进程,这些应用后台进程长时间运行,通过事件唤醒机制或按一定时间间隔(如5秒)定时扫描待处理数据源(如:数据库表)的方式,实现对业务数据的实时或准实时处理。可以说,这些应用后台进程对金融数据的正常处理起到了非常关键的作用,因此其本身的安全性、稳定性就变得十分重要。
[0003] 目前,由于缺乏对金融系统应用后台进程的检测与恢复手段,当应用后台进程或所附系统由于某种原因异常下宕时,必须通过手工操作来恢复应用后台进程,这样将导致应用后台进程恢复时间过长,从而大大降低系统对外服务水平。
[0004] 因此,当应用后台进程由于某种原因下宕时(正常系统升级下宕或异常下宕),如何能快速检测出应用后台进程的异常状况,并使其及时恢复正常,是金融系统所急需要解决问题。

发明内容

[0005] 为解决现有技术的问题,本发明提出一种金融应用系统后台进程异常检测方法及装置,以克服现有技术的不足,实现金融应用系统后台进程故障自动检测与恢复,从而提高应用后台进程的高可用性,保证系统对外服务水平。
[0006] 为实现上述目的,本发明提供了一种金融应用系统后台进程异常检测方法,该方法基于至少两个监视处理子系统和至少两个业务处理子系统进行检测,包括:
[0007] 启动所述监视处理子系统,所述监视处理子系统启动监视进程;
[0008] 所述监视处理子系统从监视进程中读取监视进程控制表,从所述监视进程控制表中获取检测时间间隔,并顺序读取应用后台进程控制表;
[0009] 所述监视处理子系统从所述应用后台进程控制表中读出应用后台进程信息;如果应用后台进程中不存在未处理的应用后台进程,则所述监视处理子系统根据检测时间间隔对下一条应用后台进程进行检测;如果应用后台进程中存在未处理的应用后台进程,则对所述应用后台进程唯一资源非阻塞申请互斥锁,如果成功获取互斥锁,说明应用后台进程没有启动或已经下宕;否则,说明应用后台进程实例正在运行,所述监视处理子系统继续对下一条应用后台进程进行检测。
[0010] 优选地,还包括:
[0011] 当成功获取互斥锁时,释放所述应用后台进程唯一资源互斥锁,并根据可用的业务处理子系统列表和负载均衡策略挑选目标业务处理子系统,启动所述应用后台进程到在可用的业务处理子系统上运行,所述监视处理子系统继续对下一条应用后台进程进行检测。
[0012] 优选地,所述监视处理子系统启动监视进程的步骤还包括:
[0013] 对监视进程唯一资源阻塞申请互斥锁;所述监视进程获得互斥锁,其他监视进程睡眠等待互斥锁。
[0014] 优选地,所述启动所述应用后台进程到在可用的业务处理子系统上运行的步骤包括:
[0015] 所述业务处理子系统的应用后台进程初始化处理;
[0016] 对所述业务处理子系统的应用后台唯一资源非阻塞申请互斥锁;如果申请互斥锁失败,则说明业务处理子系统的当前应用后台进程正在运行;如果成功申请互斥锁,则说明业务处理子系统的应用后台进程没有启动或已经下宕,业务处理子系统读取应用后台进程控制表,从应用后台进程控制表中读取业务程序的运行参数,调用业务接口对待处理业务数据进行处理。
[0017] 为实现上述目的,本发明还提供了一种金融应用系统后台进程异常检测装置,该装置基于至少两个监视处理子系统和至少两个业务处理子系统进行检测,包括:
[0018] 初始处理单元,用于启动所述监视处理子系统,所述监视处理子系统启动监视进程;
[0019] 监视进程控制表获取单元,用于所述监视处理子系统从监视进程中读取监视进程控制表,从所述监视进程控制表中获取检测时间间隔,并顺序读取应用后台进程控制表;
[0020] 检测单元,用于所述监视处理子系统从所述应用后台进程控制表中读出应用后台进程信息;如果应用后台进程中不存在未处理的应用后台进程,则所述监视处理子系统根据检测时间间隔对下一条应用后台进程进行检测;如果应用后台进程中存在未处理的应用后台进程,则对所述应用后台进程唯一资源非阻塞申请互斥锁,如果成功获取互斥锁,说明应用后台进程没有启动或已经下宕;否则,说明应用后台进程实例正在运行,所述监视处理子系统继续对下一条应用后台进程进行检测。
[0021] 优选地,所述装置还包括:
[0022] 故障恢复单元,用于当成功获取互斥锁时,释放所述应用后台进程唯一资源互斥锁,并根据可用的业务处理子系统列表和负载均衡策略挑选目标业务处理子系统,启动所述应用后台进程到在可用的业务处理子系统上运行,所述监视处理子系统继续对下一条应用后台进程进行检测。
[0023] 优选地,所述初始处理单元进一步用于对监视进程唯一资源阻塞申请互斥锁;所述监视进程获得互斥锁,其他监视进程睡眠等待互斥锁。
[0024] 优选地,所述故障恢复单元包括:
[0025] 初始化模块,用于所述业务处理子系统的应用后台进程初始化处理;
[0026] 执行模块,用于对所述业务处理子系统的应用后台唯一资源非阻塞申请互斥锁;如果申请互斥锁失败,则说明业务处理子系统的当前应用后台进程正在运行;如果成功申请互斥锁,则说明业务处理子系统的应用后台进程没有启动或已经下宕,业务处理子系统读取应用后台进程控制表,从应用后台进程控制表中读取业务程序的运行参数,调用业务接口对待处理业务数据进行处理。
[0027] 与现有技术方案相比,本发明有如下几点优势:通过装置物理上隔离的监视进程实现对应用后台进程的故障自动检测和恢复,使用全局锁的机制控制监视进程和应用后台进程的唯一性,使用锁等待技术和物理分开多备份系统装置实现监视进程的高可用性。

附图说明

[0028] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029] 图1为本技术方案的金融应用系统后台总体结构图;
[0030] 图2为本技术方案的业务处理子系统的应用后台进程故障恢复示意图;
[0031] 图3为本技术方案的监视处理子系统故障恢复意图;
[0032] 图4为本发明提供了一种金融应用系统后台进程异常检测方法流程图;
[0033] 图5为本发明提供的一种金融应用系统后台进程异常检测装置框图之一;
[0034] 图6为本发明提供的一种金融应用系统后台进程异常检测装置框图之二;
[0035] 图7为本实施例的检测装置的处理流程图。

具体实施方式

[0036] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037] 本技术方案的工作原理:如图1所示,为本技术方案的金融应用系统后台总体结构图;如图2所示,为本技术方案的业务处理子系统的应用后台进程故障恢复示意图;如图3所示,为本技术方案的监视处理子系统故障恢复意图。本技术方案建立在若干组实时事务处理系统基础之上。在图1、图2、图3中,监视处理子系统A、监视处理子系统B、业务处理子系统1、业务处理子系统2、业务处理子系统n都是某种实时事务处理系统。其中,监视处理子系统A和监视处理子系统B在功能上相同,用于运行监视进程,实现应用后台进程的自动检测和恢复,监视处理子系统A和监视处理子系统B是一主一备的关系,当一个发生异常下宕时,另外一个立刻接管。业务处理子系统1、2、n在功能上相同,用于运行应用后台进程,处理业务逻辑,出于负载均衡和高可用性的考虑,部署两个以上业务处理子系统,应用后台进程均衡部署到各业务处理子系统运行,当某个业务处理子系统出现故障时,监视处理子系统的监视进程将会检测到,并将其上的应用后台进程在其他业务处理子系统上恢复运行。
[0038] 基于上述工作原理,可知本技术方案具有的特点为:
[0039] 1)、在物理上,独立部署监视处理子系统来监视应用后台进程,用于检测应用后台进程是否出现故障,并且及时进行自动恢复;
[0040] 2)、通过全局锁管理技术及其锁申请命令,实现监视进程和应用后台进程对共享资源的互斥访问,从而获知对方是否正在运行;
[0041] 3)、监视进程部署运行在独立的实时事务处理子系统上,降低监视进程和应用后台进程同时发生灾难导致异常下宕的可能性。监视进程及其所附的实时事务处理系统冗余部署,以便实现互相备份;
[0042] 4)、监视进程控制表存放监视进程的控制信息,如自动检测时间间隔等信息;
[0043] 5)、应用后台进程控制表存放应用后台进程的控制信息。
[0044] 基于上述工作原理,本发明提供了一种金融应用系统后台进程异常检测方法。如图4所示。该方法基于至少两个监视处理子系统和至少两个业务处理子系统进行检测,包括:
[0045] 步骤401):启动所述监视处理子系统,所述监视处理子系统启动监视进程;
[0046] 步骤402):所述监视处理子系统从监视进程中读取监视进程控制表,从所述监视进程控制表中获取检测时间间隔,并顺序读取应用后台进程控制表;
[0047] 步骤403):所述监视处理子系统从所述应用后台进程控制表中读出应用后台进程信息;如果应用后台进程中不存在未处理的应用后台进程,则所述监视处理子系统根据检测时间间隔对下一条应用后台进程进行检测;如果应用后台进程中存在未处理的应用后台进程,则对所述应用后台进程唯一资源非阻塞申请互斥锁,如果成功获取互斥锁,说明应用后台进程没有启动或已经下宕;否则,说明应用后台进程实例正在运行,所述监视处理子系统继续对下一条应用后台进程进行检测。
[0048] 进一步地,在图4的基础上,该方法还包括:当成功获取互斥锁时,释放所述应用后台进程唯一资源互斥锁,并根据可用的业务处理子系统列表和负载均衡策略挑选目标业务处理子系统,启动所述应用后台进程到在可用的业务处理子系统上运行,所述监视处理子系统继续对下一条应用后台进程进行检测。
[0049] 优选地,所述监视处理子系统启动监视进程的步骤还包括:
[0050] 对监视进程唯一资源阻塞申请互斥锁;所述监视进程获得互斥锁,其他监视进程睡眠等待互斥锁。
[0051] 优选地,所述启动所述应用后台进程到在可用的业务处理子系统上运行的步骤包括:
[0052] 所述业务处理子系统的应用后台进程初始化处理;
[0053] 对所述业务处理子系统的应用后台唯一资源非阻塞申请互斥锁;如果申请互斥锁失败,则说明业务处理子系统的当前应用后台进程正在运行;如果成功申请互斥锁,则说明业务处理子系统的应用后台进程没有启动或已经下宕,业务处理子系统读取应用后台进程控制表,从应用后台进程控制表中读取业务程序的运行参数,调用业务接口对待处理业务数据进行处理。
[0054] 如图5所示,为本发明提供的一种金融应用系统后台进程异常检测装置框图之一。该装置基于至少两个监视处理子系统和至少两个业务处理子系统进行检测,包括:
[0055] 初始处理单元501,用于启动所述监视处理子系统,所述监视处理子系统启动监视进程;
[0056] 监视进程控制表获取单元502,用于所述监视处理子系统从监视进程中读取监视进程控制表,从所述监视进程控制表中获取检测时间间隔,并顺序读取应用后台进程控制表;
[0057] 检测单元503,用于所述监视处理子系统从所述应用后台进程控制表中读出应用后台进程信息;如果应用后台进程中不存在未处理的应用后台进程,则所述监视处理子系统根据检测时间间隔对下一条应用后台进程进行检测;如果应用后台进程中存在未处理的应用后台进程,则对所述应用后台进程唯一资源非阻塞申请互斥锁,如果成功获取互斥锁,说明应用后台进程没有启动或已经下宕;否则,说明应用后台进程实例正在运行,所述监视处理子系统继续对下一条应用后台进程进行检测。
[0058] 如图6所示,为本发明提供的一种金融应用系统后台进程异常检测装置框图之二。在图5的基础上,所述装置还包括:
[0059] 故障恢复单元504,用于当成功获取互斥锁时,释放所述应用后台进程唯一资源互斥锁,并根据可用的业务处理子系统列表和负载均衡策略挑选目标业务处理子系统,启动所述应用后台进程到在可用的业务处理子系统上运行,所述监视处理子系统继续对下一条应用后台进程进行检测。
[0060] 优选地,所述初始处理单元501进一步用于对监视进程唯一资源阻塞申请互斥锁;所述监视进程获得互斥锁,其他监视进程睡眠等待互斥锁。
[0061] 优选地,所述故障恢复单元504包括:
[0062] 初始化模块,用于所述业务处理子系统的应用后台进程初始化处理;
[0063] 执行模块,用于对所述业务处理子系统的应用后台唯一资源非阻塞申请互斥锁;如果申请互斥锁失败,则说明业务处理子系统的当前应用后台进程正在运行;如果成功申请互斥锁,则说明业务处理子系统的应用后台进程没有启动或已经下宕,业务处理子系统读取应用后台进程控制表,从应用后台进程控制表中读取业务程序的运行参数,调用业务接口对待处理业务数据进行处理。
[0064] 如图7所示,为本实施例的检测装置的处理流程图。金融应用系统后台进程异常检测装置搭建好以后,能实现金融应用系统后台进程的异常检测与自动恢复。对于监视处理子系统来说,具体处理过程如下:
[0065] 步骤101:启动监视进程所附的监视处理子系统;
[0066] 步骤102:通过参数设置让监视处理子系统启动监视进程;
[0067] 步骤103:监视处理子系统对监视进程唯一资源(如监视进程唯一标识码NMP1)阻塞申请互斥锁。假设其他监视处理子系统上的监视进程还没有进入监视处理逻辑,该监视进程将顺利获取监视进程唯一资源互斥锁,并进入监视处理逻辑。否则该监视进程将睡眠等待互斥锁;
[0068] 步骤104:监视进程读取监视进程控制表,从控制表中获取检测时间间隔(如20秒)等信息;
[0069] 步骤105:监视进程顺序读取应用后台进程控制表,从应用后台进程控制表中读出应用后台进程信息,包括应用后台进程的代码、业务处理子系统列表等信息。如果存在未处理的应用后台进程,执行步骤106;否则,则跳转步骤109执行;
[0070] 步骤106:对该应用后台进程唯一资源(如应用后台进程唯一标识码NBP1)非阻塞申请互斥锁。如果成功获取互斥锁,说明该应用后台进程没有启动或已经下宕(通过申请互斥锁的方法检测另外一个进程是否已经正在运行),执行步骤107;否则,说明该应用后台进程实例正在运行,返回步骤105继续处理下一个应用后台进程;
[0071] 步骤107:释放该应用后台进程唯一资源互斥锁,然后根据可用的业务处理子系统列表和负载均衡策略挑选目标业务处理子系统,并远程启动该应用后台进程转移至选定的目标业务处理子系统上运行;
[0072] 步骤108:返回“步骤105”继续处理下一个应用后台进程;
[0073] 步骤109:根据检测时间间隔(如20秒)睡眠一个时间间隔;
[0074] 步骤110:重置游标后,返回“步骤105”重新检测所有应用后台进程。
[0075] 对于步骤107来说,选定的目标业务处理子系统对转移过来的应用后台进程处理的具体流程包括:
[0076] 步骤201:业务处理子系统的应用后台进程初始化处理;
[0077] 步骤202:对该应用后台进程唯一资源(如应用后台进程唯一标识NBP1)非阻塞申请互斥锁。如果成功申请互斥锁,说明应用后台进程没有启动或已经下宕;继续执行下一步骤203。否则,说明该应用后台进程正在运行,此进程安静退出;
[0078] 步骤203:读取应用后台进程控制表,从控制表中读取业务程序的运行参数,如每次最大处理笔数、最大处理时间(如2分钟)、睡眠时间间隔等参数;
[0079] 步骤204:调用业务接口对待处理业务数据进行处理;
[0080] 步骤205:按照参数设置睡眠一个时间间隔(如20秒);
[0081] 步骤206:返回到“步骤204”继续处理新产生的待处理业务数据。
[0082] 经上述对本技术方案的全方位描述可知,当应用后台进程或所附系统由于某种原因异常下宕时,能够在短时间内自动在其他可用的业务处理子系统上恢复。大大减少服务不可用时间,提高服务水平。另外,本技术方案无需手工操作把应用后台进程切换到其他系统运行,减少手工操作带来的风险,减少切换时间。
[0083] 还有,本技术方案在物理上通过模块、系统实现,使得各功能分开,减少各系统同时出现异常的概率,达到互相备份以实现高可用性的目的。
[0084] 最后,本技术方案使用全局锁的方式实现唯一性控制,进程下宕后锁资源自动释放,解决传统采用数据库表纪录标志位方式存在的问题。
[0085] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。