异常事务处理方法、系统及其设备转让专利

申请号 : CN201911088882.0

文献号 : CN111090658B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王鹏董俊峰强群力刘超千赵彤周欢陈瑛绮余星韦鹏程孟令银朱绍辉陈飞

申请人 : 网联清算有限公司

摘要 :

本申请提出一种异常事务处理方法、系统及其设备,其中,应用在事务处理应用中的方法包括:根据预设周期调用监测接口;若获取到监测接口反馈的第一异常事务信息,则读取事务处理应用对应的事务服务器的第二异常事务信息;将第一异常事务信息与第二异常事务信息匹配,判断是否包含匹配成功的目标异常事务信息;若包含目标异常事务信息,则调用清除接口清除目标异常事务信息对应的线程。由此,实现了异常事务的自动检测和处理,实现了异常事务的发现和处理自动化,解决了现有技术中,需要人工沟通导致的异常事务处理效率较低的技术问题。

权利要求 :

1.一种异常事务处理方法,其特征在于,所述方法应用在事务处理应用中,所述事务处理应用与事务处理数据库通信连接,所述事务处理数据库中包括预先设置的监测接口和清除接口,其中,所述方法包括以下步骤:根据预设周期调用所述监测接口;

若获取到所述监测接口反馈的第一异常事务信息,则读取所述事务处理应用对应的事务服务器的第二异常事务信息;

将所述第一异常事务信息中的异常事务标识与所述第二异常事务信息中的异常事务标识匹配,判断是否包含匹配成功的目标异常事务信息;

若包含所述目标异常事务信息,则调用所述清除接口清除所述目标异常事务信息对应的线程;

向事务处理数据库发送针对所述目标异常事务信息对应的目标账号的测试事务;

获取所述事务处理数据库针对所述测试事务反馈的响应信息;

若所述响应信息与所述测试事务对应的成功响应信息一致,则解除对所述目标账号的隔离以将针对所述目标账号的事务发送至所述目标账号对应的事务处理数据库。

2.如权利要求1所述的方法,其特征在于,所述将所述第一异常事务信息与所述第二异常事务信息匹配,判断是否包含匹配成功的目标异常事务信息,包括:提取所述第一异常事务信息中的第一异常事务标识,以及所述第二异常事务信息中的第二异常事务标识;

判断所述第一异常事务标识是否与所述第二异常事务标识一致。

3.如权利要求2所述的方法,其特征在于,所述第一异常事务标识和所述第二异常事务标识包括:事务处理数据库名称、异常事务发起事务处理应用标识、异常事务线程标识。

4.如权利要求1所述的方法,其特征在于,在所述则读取所述事务处理应用对应的事务服务器的第二异常事务信息之前,包括:获取所述事务处理应用针对每个账号的每个事务的处理时间;

根据所述处理时间确定满足预设异常条件的异常账号;

根据所述异常账号的事务信息生成所述第二异常事务信息。

5.如权利要求4所述的方法,其特征在于,所述根据所述处理时间确定满足预设异常条件的异常账号,包括:判断所述每个事务的处理时间是否大于预设时长;

若所述处理时间大于所述预设时长,则确定所述事务为异常事务;

判断所述每个账号连续出现异常事务的个数是否超过预设阈值;

若超过所述预设阈值,则确定对应的账号为所述异常账号。

6.如权利要求1所述的方法,在所述判断是否包含匹配成功的目标异常事务信息之后,还包括:若包含所述目标异常事务信息,则确定所述目标异常事务信息对应的目标账号;

当获取到针对所述目标账号的事务时,则隔离所述目标账号并获取所述目标账号关联的其他账号;

向所述其他账号对应的事务处理数据库发送针对所述目标账号的事务。

7.一种异常事务处理方法,其特征在于,所述方法应用在事务处理数据库中,其中,所述事务处理数据库与事务处理应用通信连接,所述事务处理数据库中包括预先设置的监测接口和清除接口,其中,所述方法包括以下步骤:获取所述事务处理应用根据预设周期对所述监测接口的第一调用请求;

根据所述第一调用请求启动所述监测接口中预设的探测功能函数,获取所述事务处理数据库中的第一异常事务信息;

向所述事务处理应用反馈所述第一异常事务信息;

接收所述事务处理应用对所述清除接口的第二调用请求,其中,所述第二调用请求中携带目标异常事务信息;

通过所述清除接口调用预设的清除函数清除所述目标异常事务信息对应的线程;

响应于所述事务处理应用发送的针对所述目标异常事务信息对应的目标账号的测试事务,针对所述测试事务反馈的响应信息,并将所述响应消息发送至所述事务处理应用,以便于所述事务处理应用在确定所述响应信息与所述测试事务对应的成功响应信息一致时,解除对所述目标账号的隔离以将针对所述目标账号的事务发送至所述目标账号对应的事务处理数据库

8.一种事务处理应用,其特征在于,所述事务处理应用与事务处理数据库通信连接,所述事务处理数据库中包括预先设置的监测接口和清除接口,其中,所述事务处理应用,包括:调用模块,用于根据预设周期调用所述监测接口;

第一获取模块,用于在获取到所述监测接口反馈的第一异常事务信息时,读取所述事务处理应用对应的事务服务器的第二异常事务信息;

判断模块,用于将所述第一异常事务信息中的异常事务标识与所述第二异常事务信息中的异常事务标识匹配,判断是否包含匹配成功的目标异常事务信息;

所述调用模块,还用于在包含所述目标异常事务信息时,调用所述清除接口清除所述目标异常事务信息对应的线程,向事务处理数据库发送针对所述目标异常事务信息对应的目标账号的测试事务,获取所述事务处理数据库针对所述测试事务反馈的响应信息,并在所述响应信息与所述测试事务对应的成功响应信息一致时,解除对所述目标账号的隔离以将针对所述目标账号的事务发送至所述目标账号对应的事务处理数据库。

9.一种事务处理数据库,其特征在于,所述事务处理数据库与事务处理应用通信连接,所述事务处理数据库中包括预先设置的监测接口和清除接口,其中,所述事务处理数据库,包括:第二获取模块,用于获取所述事务处理应用根据预设周期对所述监测接口的第一调用请求;

第三获取模块,用于根据所述第一调用请求启动所述监测接口中预设的探测功能函数,获取所述事务处理数据库中的第一异常事务信息;

反馈模块,用于向所述事务处理应用反馈所述第一异常事务信息;

接收模块,用于接收所述事务处理应用对所述清除接口的第二调用请求,其中,所述第二调用请求中携带目标异常事务信息;

清除模块,用于通过所述清除接口调用预设的清除函数清除所述目标异常事务信息对应的线程,响应于所述事务处理应用发送的针对所述目标异常事务信息对应的目标账号的测试事务,针对所述测试事务反馈的响应信息,并将所述响应消息发送至所述事务处理应用,以便于所述事务处理应用在确定所述响应信息与所述测试事务对应的成功响应信息一致时,解除对所述目标账号的隔离以将针对所述目标账号的事务发送至所述目标账号对应的事务处理数据库。

10.一种异常事务处理系统,其特征在于,包括事务处理应用、所述事务处理应用对应的事务服务器和事务处理数据库,其中,所述事务处理应用与事务处理数据库通信连接,其中,所述事务处理应用用于执行如权利要求1-7任一所述的异常事务处理方法;

所述事务处理数据库用于执行如权利要求8所述的异常事务处理方法。

11.一种电子设备,其特征在于,包括:

至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述权利要求1-6任一项所述的异常事务处理方法。

12.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1-6任一项所述的异常事务处理方法。

说明书 :

异常事务处理方法、系统及其设备

技术领域

[0001] 本申请涉及数据处理技术领域,尤其涉及一种异常事务处理方法、系统及其设备。

背景技术

[0002] 目前,依托于数据库处理事务的应用越发普及,比如,备付金应用依赖于数据库来执行退款、付款等事务的处理。相关技术中,可能会出现应用发起的事务得不到正常反馈,这种情况下,通常依赖于数据库管理员人工对未处理成功的事务进行监控,如果发现异常未正常提交的事务,通过短信报警,数据库管理员确认应用后,联系应用管理的技术人员进行核对应用的服务器的状态。如果确认应用服务器状态异常,应用管理的技术人员先做该对应异常账号的隔离处理,确保新的业务不再对该账户进行新的操作,然后数据库管理员人工清除掉异常事务,再和应用管理的技术人员沟通对应异常账号是否恢复事务处理等。
[0003] 然而,上述描述的现有技术中,对异常事务的监测和处理,都依赖于人工,且技术人员需要沟通的时间长,导致对应账号的故障时间加长,导致对异常事务的处理效率较低,影响事务处理服务。

发明内容

[0004] 本申请旨在至少在一定程度上解决上述相关技术中的技术问题之一。
[0005] 本申请提出了一种异常事务处理方法、系统及其设备,以解决现有技术中,需要人工沟通导致的异常事务处理效率较低的技术问题。
[0006] 本申请第一方面实施例提出一种异常事务处理方法,所述方法应用在事务处理应用中,所述事务处理应用与事务处理数据库通信连接,所述事务处理数据库中包括预先设置的监测接口和清除接口,其中,所述方法包括以下步骤:根据预设周期调用所述监测接口;若获取到所述监测接口反馈的第一异常事务信息,则读取所述事务处理应用对应的事务服务器的第二异常事务信息;将所述第一异常事务信息与所述第二异常事务信息匹配,判断是否包含匹配成功的目标异常事务信息;若包含所述目标异常事务信息,则调用所述清除接口清除所述目标异常事务信息对应的线程。
[0007] 另外,本申请实施例的异常事务处理方法,还包括如下附加的技术特征:
[0008] 在本申请的一个实施例中,所述将所述第一异常事务信息与所述第二异常事务信息匹配,判断是否包含匹配成功的目标异常事务信息,包括:提取所述第一异常事务信息中的第一异常事务标识,以及所述第二异常事务信息中的第二异常事务标识;判断所述第一异常事务标识是否与所述第二异常事务标识一致。
[0009] 在本申请的一个实施例中,所述第一异常事务标识和所述第二异常事务标识包括:事务处理数据库名称、异常事务发起事务处理应用标识、异常事务线程标识。
[0010] 在本申请的一个实施例中,在所述则读取所述事务处理应用对应的事务服务器的第二异常事务信息之前,包括:获取所述事务处理应用针对每个账号的每个事务的处理时间;根据所述处理时间确定满足预设异常条件的异常账号;根据所述异常账号的事务信息生成所述第二异常事务信息。
[0011] 在本申请的一个实施例中,所述根据所述处理时间确定满足预设异常条件的异常账号,包括:判断所述每个事务的处理时间是否大于预设时长;若所述处理时间大于所述预设时长,则确定所述事务为异常事务;判断所述每个账号连续出现异常事务的个数是否超过预设阈值;若超过所述预设阈值,则确定对应的账号为所述异常账号。
[0012] 在本申请的一个实施例中,在所述判断是否包含匹配成功的目标异常事务信息之后,还包括:若包含所述目标异常事务信息,则确定所述目标异常事务信息对应的目标账号;当获取到针对所述目标账号的事务时,则隔离所述目标账号并获取所述目标账号关联的其他账号;向所述其他账号对应的事务处理数据库发送针对所述目标账号的事务。
[0013] 在本申请的一个实施例中,在所述若包含所述目标异常事务信息,则调用所述清除接口清除所述目标异常事务信息对应的进程之后,还包括:向所述事务处理数据库发送针对所述目标账号的测试事务;获取所述事务处理数据库针对所述测试事务反馈的响应信息;若所述响应信息与所述测试事务对应的成功响应信息一致,则解除对所述目标账号的隔离以将针对所述目标账号的事务发送至所述目标账号对应的事务处理数据库。
[0014] 本申请第二方面实施例提出一种异常事务处理方法,所述方法应用在事务处理数据库中,其中,所述事务处理数据库与事务处理应用通信连接,所述事务处理数据库中包括预先设置的监测接口和清除接口,其中,所述方法包括以下步骤:获取所述事务处理应用根据预设周期对所述监测接口的第一调用请求;根据所述第一调用请求启动所述监测接口中预设的探测功能函数,获取所述事务处理数据库中的第一异常事务信息;向所述事务处理应用反馈所述第一异常事务信息;接收所述事务处理应用对所述清除接口的第二调用请求,其中,所述第二调用请求中携带目标异常事务信息;通过所述清除接口调用预设的清除函数清除所述目标异常事务信息对应的线程。
[0015] 本申请第三方面实施例提出一种事务处理应用,所述事务处理应用与事务处理数据库通信连接,所述事务处理数据库中包括预先设置的监测接口和清除接口,其中,所述事务处理应用,包括:调用模块,用于根据预设周期调用所述监测接口;第一获取模块,用于在获取到所述监测接口反馈的第一异常事务信息时,读取所述事务处理应用对应的事务服务器的第二异常事务信息;判断模块,用于将所述第一异常事务信息与所述第二异常事务信息匹配,判断是否包含匹配成功的目标异常事务信息;所述调用模块,还用于在包含所述目标异常事务信息时,调用所述清除接口清除所述目标异常事务信息对应的线程。
[0016] 本申请第四方面实施例提出一种事务处理数据库,所述事务处理数据库与事务处理应用通信连接,所述事务处理数据库中包括预先设置的监测接口和清除接口,其中,所述事务处理数据库,包括:第二获取模块,用于获取所述事务处理应用根据预设周期对所述监测接口的第一调用请求;第三获取模块,用于根据所述第一调用请求启动所述监测接口中预设的探测功能函数,获取所述事务处理数据库中的第一异常事务信息;反馈模块,用于向所述事务处理应用反馈所述第一异常事务信息;接收模块,用于接收所述事务处理应用对所述清除接口的第二调用请求,其中,所述第二调用请求中携带目标异常事务信息;清除模块,用于通过所述清除接口调用预设的清除函数清除所述目标异常事务信息对应的线程。
[0017] 本申请第五方面实施例提出一种异常事务处理系统,包括事务处理应用、所述事务处理应用对应的事务服务器和事务处理数据库,其中,所述事务处理应用与事务处理数据库通信连接,其中,所述事务处理应用用于执行如上述第一方面实施例所述的异常事务处理方法;所述事务处理数据库用于执行如上述第二方面实施例所述的异常事务处理方法。
[0018] 本申请第六方面实施例提出一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述第一方面实施例描述的异常事务处理方法。
[0019] 本申请第七方面实施例提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述第一方面实施例描述的异常事务处理方法。
[0020] 本申请提供的技术方案,至少包括以下技术效果:
[0021] 实现应用服务器故障导致数据库中异常事务锁住账号的自动化处理,不需要人工干预,快速恢复业务,全部自动化处理,主动封装查询数据库信息的异常事务,封装为对应的接口,供事务处理应用来主动探测,规避监控系统人工探测的问题,缩减故障发现时间,并且主动隔离针对异常账号的隔离业务,减少后续的业务损失,且恢复业务采用主动探测的方式来进行,确保可用性,总的来说,避免了单方面人工核对,形成事务处理应用和事务处理数据库之间的全链路的自动判断和处理,方便进行后续的智能化处理。
[0022] 本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

[0023] 本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0024] 图1是根据本申请一个实施例的异常事务处理系统的结构示意图;
[0025] 图2为本申请实施例所提供的一种异常事务处理方法的流程示意图;
[0026] 图3为本申请实施例所提供的另一种异常事务处理方法的流程示意图;
[0027] 图4为本申请实施例所提供的一种异常事务处理的应用场景示意图;
[0028] 图5为本申请实施例所提供的一种事务处理应用的结构示意图;以及
[0029] 图6为本申请实施例所提供的一种事务处理数据库的结构示意图。

具体实施方式

[0030] 下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
[0031] 下面参考附图描述本申请实施例的异常事务处理方法、系统及其设备。其中,本申请实施例中的异常事务可以为任意符合与数据库交互处理的事务,比如,可以是备付金应用对付款交易的各种处理事务(包括付款、退款)等。
[0032] 为了解决上述背景技术中提到的,当前现有技术中对异常事务处理中,依赖于人工干预和处理,导致处理时间耗时较长,影响服务质量的问题,本申请提出了一种自动异常事务处理并恢复有关账号的处理业务能力的方式。
[0033] 为了使得本领域的技术人员,更加清楚的了解本申请的异常事务处理的应用场景,首先对本申请实施例的异常事务处理系统进行说明。
[0034] 图1是根据本申请一个实施例的异常事务处理系统的结构示意图。如图1所示,该异常事务处理系统包括:事务处理应用100、事务处理应用对应的事务服务器300和事务处理数据库200,其中,参照图1,事务处理应用100与事务处理数据库200通信连接,在本实施例中,事务处理数据库200用于处理发送给事务处理应用100中的事务,其中,事务处理应用100可以为备付金应用等,事务处理应用100可以对应于一个或多个事务处理数据库200(图中仅示出一个),针对事务处理应用100发送的事务可以对应于多个账号,比如,针对备付金应用的事务可以为支付宝账号发送的,也可以为财付通账号发送的等。
[0035] 具体而言,事务处理应用100可以通过事务处理数据库200中包括的预先设置的监测接口和清除接口来实现与事务处理数据库200的自动通信,基于自动通信解放了人工交互,提高了异常事务的处理效率,另外,本申请的实施例中所提到的异常事务指的是没有得到及时处理的事务,可能导致数据卡顿从而导致事务处理应用100回滚的事务。
[0036] 在本实施例中,若是发现事务处理应用100中出现的异常事务同时也在事务处理数据库200中存在,则表明确实出现了事务层面的处理卡顿,比如,备付金出金应用服务器发起对账号的新的事务后,由于硬件故障,应用服务器突然宕机,应用服务器失去响应,该事务不能正常提交或者回滚,账号被未提交的事务锁住,导致其他应用服务器对该账户的新的操作事务进入等待状态,数据库出现了事务卡顿,从而导致出金失败,此时这种障碍可以直接清除对应的异常事务,以保证故障的快速清理,实现了事务的正常处理。
[0037] 为了说明的方便,下面其次集中在应用在事务处理应用中的方法侧说明。其中,正如上述实施例提到的,事务处理应用与事务处理数据库通信连接,事务处理数据库中包括预先设置的监测接口和清除接口。
[0038] 具体而言,图2为本申请实施例所提供的一种异常事务处理方法的流程示意图。
[0039] 如图2所示,该异常事务处理方法包括以下步骤:
[0040] 步骤101,根据预设周期调用监测接口。
[0041] 具体的,在本实施例中,事务处理应用根据预设周期主动监测数据库中是否存在异常事务,即通过调用监测接口来探测事务处理数据库的异常事务信息。
[0042] 由于事务处理应用对应的事务处理数据库可能为多个,因此,可以每隔一段时间判断其对应的多个事务处理数据库中是否存在异常事务信息,比如,可以检测事务处理应用对应的机房内所有的事务处理数据库中是否存在异常事务信息。
[0043] 其中,上述预设周期可以根据实际需要设置,作为一种可能的实现方式,该预设周期可以为5秒。
[0044] 步骤102,若获取到监测接口反馈的第一异常事务信息,则读取事务处理应用对应的事务服务器的第二异常事务信息。
[0045] 需要说明的是,第一异常事务信息是针对事务处理数据库中的异常信息,事务处理数据库判断第一异常事务信息的方式可以为,确定针对事务的操作时间是否超过预设时长,若是超过预设时长则认为该事务异常,第二异常事务信息指的是事务处理应用中的异常,该异常可以为业务异常比如用户输入密码3次错误等,该异常也可以包括响应超时异常,即获取事务处理应用针对每个账号的每个事务的处理时间,根据处理时间确定满足预设异常条件的异常账号,根据异常账号的事务信息生成第二异常事务信息,其中,异常账号的事务信息与第二异常事务信息对应,可包括异常账号对应的事务处理数据库名称、异常事务发起事务处理应用标识、异常事务线程标识等。
[0046] 其中,在实际应用中,存在一个中心控制节点,该中心控制节点监控所有应用服务器的日志,能够获取账号的操作状态异常统计,如果有台应用服务器故障,并且对于锁住账号的失败交易,最终操作的事务处理数据库能够通过中心控制节点检测到,其中,单台应用服务器操作对于账号操作失败是根据时间来判断,当操作失败时,将有关异常事务信息输出到日志中,中心控制节点可以监控到日志中的异常事务信息,因而,可以基于中心控制节点读取事务服务器的第二异常事务信息。需要说明的是,在不同的应用场景中,根据处理时间确定满足预设异常条件的异常账号的方式不同,示例如下:
[0047] 示例一:
[0048] 在本示例中,判断每个事务的处理时间是否大于预设时长,其中,预设时长可以根据每个事务的事务类型确定,若处理时间大于预设时长,则确定事务为异常事务,进而,判断每个账号连续出现异常事务的个数是否超过预设阈值,比如,连续异常事务出现五次,若超过预设阈值,则确定对应的账号为异常账号。
[0049] 示例二:
[0050] 在本示例中,获取每个事务的事务类型,判断每个事务的处理时间是否大于预设时长,其中,预设时长可以根据每个事务的事务类型确定,若处理时间大于预设时长,则确定事务为异常事务,进而,确定在预设时间段内,预设事务类型对应的异常事务的数量是否大与预设数量,若是大于预设数量,则确定对应的账号为异常账号。
[0051] 步骤103,将第一异常事务信息与第二异常事务信息匹配,判断是否包含匹配成功的目标异常事务信息。
[0052] 具体的,监测接口获取事务处理数据库中的第一异常事务信息,若是获取到对应的第一异常事务信息,则判断该第一异常事务信息是否有在事务服务器中同时存在,以便于基于是否同时存在来判断是否出现需要清除的异常事务。
[0053] 即将第一异常事务信息与第二异常事务信息匹配,判断是否包含匹配成功的目标异常事务信息,作为一种可能的实现方式,第一异常事务信息和第二异常事务信息中都包含异常事务标识,该异常事务标识可以包括任何可以定位异常事务唯一性的信息,比如,异常事务标识包括事务处理数据库名称、异常事务发起事务处理应用标识(事务处理应用IP等)、异常事务线程标识(线程编号等)。
[0054] 当然,为了获取更加全面的异常会务信息,第一异常事务信息还可以包括其他信息,比如,异常事务的事务持有的时间、所执行事务的SQL文本等,这些信息的获取依赖于监测接口中有关参数的定义。
[0055] 步骤104,若包含目标异常事务信息,则调用清除接口清除目标异常事务信息对应的线程。
[0056] 具体的,若包含目标异常事务信息,即认为包含同时在事务处理应用和在事务处理数据库异常的信息,则为了快速回复正常的事务处理,可以调用清除接口清除目标异常事务信息对应的线程。
[0057] 在本申请的一个实施例中,为了避免新的事项无法被执行,还可以对出现目标异常事务信息的目标账号进行业务隔离处理。
[0058] 具体而言,若包含异常事务信息,则确定目标异常事务信息对应的目标账号,此时可以理解,异常事务信息是针对某个账号的,因而,可以提取账号标识信息获取目标账号,进而,当获取到针对目标账号的新的事务时,隔离目标账号并获取目标账号关联的其他账号,比如,通常一个较大的机构会有3-5个账号,因而,可以将针对同一个机构的所有账号关联,从而,向其他账号中没有出现异常事务信息的账号的事务处理数据库发送针对目标账号的事务。
[0059] 在本实施例中,为了进一步验证目标账号有没有恢复事务处理功能,在调用清除接口清除目标异常事务信息对应的进程之后,还可以向事务处理数据库发送针对目标账号的测试事务,获取事务处理数据库针对测试事务反馈的响应信息若响应信息与测试事务对应的成功响应信息一致,则解除对目标账号的隔离以将针对目标账号的事务发送至目标账号对应的事务处理数据库。
[0060] 基于上述实施例,为了便于对异常事务的处理过程优化,可以将上述异常事务处理的整个流程发送到日志文件中记录,以便于及时发现不足之处优化。
[0061] 由此,本实施例中的异常事务处理方法,实现应用服务器故障导致数据库中异常事务锁住账号的自动化处理,不需要人工干预,快速恢复业务,全部自动化处理,且主动隔离业务,减少后续的业务损失。
[0062] 下面最后集中在事务处理数据库侧描述本申请实施例的异常事务处理方法。
[0063] 其中,事务处理数据库中的监测接口和清除接口可通过python来进行封装,提供给HTTP的方式对外提供访问,为了避免其他应用的滥用,可以设置每秒限制单个应用IP最多可以访问1次,超过次数将返回异常警告,防止接口被大量调用,对数据库造成影响。并设置应用IP对接口的访问,防止其他应用IP也调用此接口,加强安全性。比如,设置白名单应用IP,当访问的事务处理应用的IP属于名单应用IP时,则允许对应的事务处理应用调用事务处理数据库。
[0064] 图3为本申请实施例所提供的另一种异常事务处理方法的流程示意图。
[0065] 如图3所示,该异常事务处理方法包括:
[0066] 步骤201,获取事务处理应用根据预设周期对监测接口的第一调用请求。
[0067] 步骤202,根据第一调用请求启动监测接口中预设的探测功能函数,获取事务处理数据库中的第一异常事务信息。
[0068] 其中,事务处理数据库中的监测接口中的探测功能函数,在被执行时,可以获取事务处理数据库中的第一异常事务信息,其中,第一异常事务信息包含的具体内容,可以根据探测功能函数中的参数定义来实现,作为一种可能的实现方式,探测功能函数中的参数如下:clientIp:事务处理应用的IP,db:所在的事务处理数据库,threadId:异常事务的线程号,locktime:异常事务的时间,sql_text:异常事务执行的SQL。
[0069] 步骤203,向事务处理应用反馈第一异常事务信息。
[0070] 作为一种可能的实现方式,监测接口向通过以json的方式进行第一异常事务信息的返回。
[0071] 步骤204,接收事务处理应用对清除接口的第二调用请求,其中,第二调用请求中携带目标异常事务信息。
[0072] 其中,当事务处理应用发现应用服务器端存在与异常事务信息匹配的目标异常事务信息时,则调用清除接口。
[0073] 步骤205,通过清除接口调用预设的清除函数清除目标异常事务信息对应的线程。
[0074] 其中,清除接口用于清除目标异常事务信息对应的线程,即通过清除接口调用预设的清除函数清除目标异常事务信息对应的线程,作为一种可能的实现方式,清除函数可以获取如下事务处理数据中的异常事务信息:clientIp:异常事务对应的事务处理应用的IP,db:所在的事务处理数据库,threadId:异常事务的线程号等,将获取到的异常事务信息与目标异常事务信息再次比对后,若是一致,则清除对应的进程。
[0075] 为了使得本领域的技术人员,更加清楚的了解异常事务处理方法的整个过程,下面结合具体的应用场景说明,在该应用场景中,事务处理数据库提供的检测接口和清除接口定位为DBA,事务处理应用为RCMP,即如图4所示,RCMP地那时候触发主动探测功能,使得DBA执行探测功能函数对应的探测脚本,继而,DBA反馈第一异常事务信息,若是RCMP中包含与第一异常事务信息匹配的目标异常事务信息,则执行DBA中的清除接口,执行KILL功能函数,并将处理结果反馈给RCMP。
[0076] 综上,本申请实施例的异常事务处理方法,实现应用服务器故障导致数据库中异常事务锁住账号的自动化处理,不需要人工干预,快速恢复业务,全部自动化处理,主动封装查询数据库信息的异常事务,封装为对应的接口,供事务处理应用来主动探测,规避监控系统人工探测的问题,缩减故障发现时间,并且主动隔离针对异常账号的隔离业务,减少后续的业务损失,且恢复业务采用主动探测的方式来进行,确保可用性,总的来说,避免了单方面人工核对,形成事务处理应用和事务处理数据库之间的全链路的自动判断和处理,方便进行后续的智能化处理。
[0077] 为了实现上述实施例,本申请还提出了一种事务处理应用。事务处理应用与事务处理数据库通信连接,事务处理数据库中包括预先设置的监测接口和清除接口,其中,如图5所示,所述事务处理应用包括:调用模块110、第一获取模块120和判断模块130,其中,[0078] 调用模块110,用于根据预设周期调用监测接口。
[0079] 第一获取模块120,用于在获取到监测接口反馈的第一异常事务信息时,读取事务处理应用对应的事务服务器的第二异常事务信息。
[0080] 判断模块130,用于将第一异常事务信息与第二异常事务信息匹配,判断是否包含匹配成功的目标异常事务信息;
[0081] 在本实施例中,调用模块110,还用于在包含目标异常事务信息时,调用清除接口清除目标异常事务信息对应的线程。
[0082] 为了实现上述实施例,本申请还提出了一种事务处理数据库,事务处理数据库与事务处理应用通信连接,所述事务处理数据库中包括预先设置的监测接口和清除接口,其中,如图6所示,事务处理数据库包括:第二获取模块210、第三获取模块220、反馈模块230、接收模块240和清除模块250,其中,
[0083] 第二获取模块210,用于获取事务处理应用根据预设周期对监测接口的第一调用请求。
[0084] 第三获取模块220,用于根据第一调用请求启动监测接口中预设的探测功能函数,获取事务处理数据库中的第一异常事务信息。
[0085] 反馈模块230,用于向事务处理应用反馈第一异常事务信息。
[0086] 接收模块240,用于接收事务处理应用对清除接口的第二调用请求,其中,第二调用请求中携带目标异常事务信息。
[0087] 清除模块250,用于通过清除接口调用预设的清除函数清除目标异常事务信息对应的线程。
[0088] 需要说明的是,前述对异常事务处理方法的解释说明,也适用于本申请实施例的有关设备,其实现原理类似,在此不再赘述。
[0089] 为了实现上述实施例,本申请还提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行程序时,实现如上述实施例中集中在事务处理应用侧描述的异常事务处理方法。
[0090] 为了实现上述实施例,本申请还提出一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例中集中在事务处理应用侧描述的异常事务处理方法。
[0091] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0092] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0093] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
[0094] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0095] 应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0096] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0097] 此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0098] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。