掌桥专利:专业的专利平台
掌桥专利
首页

事务控制方法、事务控制装置和事务控制系统

文献发布时间:2023-06-19 18:46:07


事务控制方法、事务控制装置和事务控制系统

技术领域

本申请涉及计算机技术领域,具体而言,涉及一种事务控制方法、事务控制装置、计算机可读存储介质和事务控制系统。

背景技术

事务控制是业务系统开发的重要方面,典型便是转账操作分为转出账户扣款和转入账户入款两个步骤,这两个步骤必须保证同时成功或者同时失败。

现有的事务控制过程中,所有的业务逻辑(包含数据库操作以及跨系统的服务调用)在获取数据库连接,开启事务之后,以保证所有业务逻辑视为同一个事务,事务完成后释放数据库连接。

网络通讯可能出现缓慢的情况,一旦业务逻辑中的跨系统服务调用出现响应缓慢,事务执行的时间将显著增加,也即业务处理占用数据库连接的时间显著增加。如果正值业务高峰期,有大量请求获取数据库连接,超过数据库连接释放的速度,将可能导致数据库连接耗尽,业务堆积,同时也可能影响到公用数据库的其他关联业务。

发明内容

本申请的主要目的在于提供一种事务控制方法、事务控制装置、计算机可读存储介质和事务控制系统,以解决现有技术中数据库连接请求速度超过数据库连接释放速度导致数据库连接耗尽的问题。

根据本申请实施例的一个方面,提供了一种事务控制方法,事务为后端完成业务请求时对数据库进行的一组操作,所述事务与所述业务请求一一对应,所述后端分别与所述数据库、缓存区和前端通信连接,一个所述事务占用所述数据库的一个连接,所述事务控制方法应用于所述后端,所述方法包括:在接收到所述前端发送的待处理业务请求的情况下,从所述缓存区获取超时数量,所述超时数量为执行时长大于第一预设时长的在途事务的数量,所述在途事务为正在被执行的所述事务,所述执行时长为所述在途事务占用所述连接的时长,所述待处理业务请求用于请求执行待执行事务;确定所述超时数量是否大于预设数量;在所述超时数量大于所述预设数量的情况下,发送无法执行所述待执行事务的信息至所述前端。

可选地,在确定所述超时数量是否大于预设数量之后,所述方法还包括:在所述超时数量小于或者等于所述预设数量的情况下,开启一个所述连接以开始执行所述待执行事务,并将所述待执行事务对应的事务信息存储在所述缓存区,一个所述事务对应一个所述事务信息,所述事务信息至少包括所述事务的开启时间,所述开启时间为所述事务开始占用所述连接的时间;在所述待执行事务的执行过程中实时检测所述待执行事务是否执行完毕;在所述待执行事务执行完毕的情况下,删除所述缓存区中所述待执行事务对应的所述事务信息。

可选地,在从所述缓存区获取超时数量之前,所述方法还包括:获取当前开启时间,所述当前开启时间为当前时间的所述缓存区中的所述在途事务的所述开启时间;计算各所述当前开启时间与所述当前时间的差值,得到当前执行时长,所述当前执行时长与所述在途事务一一对应;根据所有的所述当前执行时长,确定当前超时数量,所述当前超时数量为所述当前执行时长中大于所述第一预设时长的所述当前执行时长的个数;确定所述当前超时数量与所述缓存区中的所述超时数量是否相同;在所述当前超时数量与所述缓存区中的所述超时数量不相同的情况下,采用所述当前超时数量更新所述缓存区中的所述超时数量。

可选地,在计算各所述当前开启时间与所述当前时间的差值,得到当前执行时长之后,所述方法还包括:确定所述当前执行时长是否大于第二预设时长,所述第二预设时长大于所述第一预设时长;在所述当前执行时长大于所述第二预设时长的情况下,删除所述缓存区中所述当前执行时长对应的所述在途事务的所述事务信息。

可选地,在开启一个所述连接以开始执行所述待执行事务,并将所述待执行事务对应的事务信息存储在所述缓存区之后,所述方法还包括:在所述待执行事务的所述执行过程中实时检测是否存在异常情况;在存在所述异常情况的情况下,执行事务回滚操作,并删除所述缓存区中所述待执行事务对应的所述事务信息,所述事务回滚操作为撤销对所述数据库进行的所有操作。

可选地,在开启一个所述连接以开始执行所述待执行事务,并将所述待执行事务对应的事务信息存储在所述缓存区之后,所述方法还包括:确定是否存在重启请求指令或者关机请求指令;在存在所述重启请求指令或者所述关机请求指令的情况下,删除所述缓存区中的所有的所述在途事务对应的所述事务信息。

可选地,在执行事务回滚操作,并删除所述缓存区中所述待执行事务对应的所述事务信息之后,所述方法还包括:重新开启所述连接以开始执行所述待执行事务。

根据本申请实施例的另一个方面,还提供了一种事务控制装置,事务为后端完成业务请求时对数据库进行的一组操作,所述事务与所述业务请求一一对应,所述后端分别与所述数据库、缓存区和前端通信连接,一个所述事务占用所述数据库的一个连接,所述事务控制装置应用于所述后端,所述装置包括:获取单元,用于在接收到所述前端发送的待处理业务请求的情况下,从所述缓存区获取超时数量,所述超时数量为执行时长大于第一预设时长的在途事务的数量,所述在途事务为正在被执行的所述事务,所述执行时长为所述在途事务占用所述连接的时长,所述待处理业务请求用于请求执行待执行事务;确定单元,用于确定所述超时数量是否大于预设数量;发送单元,用于在所述超时数量大于所述预设数量的情况下,发送无法执行所述待执行事务的信息至所述前端。

根据本申请实施例的再一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序被处理器执行时,所述处理器执行任意一种所述的事务控制方法。

根据本申请实施例的又一个方面,还提供了一种事务控制系统,包括:一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的事务控制方法。

上述事务控制方法中,首先,在接收到上述前端发送的待处理业务请求的情况下,从上述缓存区获取超时数量,上述超时数量为执行时长大于第一预设时长的在途事务的数量,上述在途事务为正在被执行的上述事务,上述执行时长为上述在途事务占用上述连接的时长,上述待处理业务请求用于请求执行待执行事务;然后,确定上述超时数量是否大于预设数量;最后,在上述超时数量大于上述预设数量的情况下,发送无法执行上述待执行事务的信息至上述前端。该方法中的超时数量为执行时长过长的在途事务的数量,当超时数量大于预设数量时,可以确定数据库连接释放速度低于数据库连接请求速度,此时,再不断开启新的数据库连接可能导致数据库连接被耗尽,因此,在后端接收到待处理业务请求的情况下,先确定超时数量是否大于预设数量,以确定数据库连接释放速度是否低于数据库连接请求速度,在超时数量大于预设数量的情况下,确定数据库连接释放速度低于数据库连接请求速度,确定存在数据库连接被耗尽的风险,此时,拒绝开启新连接的请求,以避免数据库连接被耗尽,该方法解决了现有技术中数据库连接请求速度超过数据库连接释放速度导致数据库连接耗尽的问题。

附图说明

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

图1示出了根据本申请的一种的实施例的事务控制方法的流程图;

图2示出了根据本申请的一种具体实施例的事务控制方法的流程图;

图3示出了根据本申请的一种具体实施例的执行事务控制方法的组件的示意图;

图4示出了根据本申请的一种具体实施例的事务控制装置的示意图。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。

为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:

事务:特指后端对数据库进行的一组操作,这些操作要么全部完成,要么全部失败。

正如背景技术中所说的,现有技术中数据库连接请求速度超过数据库连接释放速度导致数据库连接耗尽,为了解决上述问题,本申请的一种典型的实施方式中,提供了一种事务控制方法、事务控制装置、计算机可读存储介质和事务控制系统。

根据本申请的实施例,提供了一种事务控制方法。

图1是根据本申请实施例的事务控制方法的流程图。如图1所示,该方法包括以下步骤:

步骤S101,在接收到上述前端发送的待处理业务请求的情况下,从上述缓存区获取超时数量,上述超时数量为执行时长大于第一预设时长的在途事务的数量,上述在途事务为正在被执行的上述事务,上述执行时长为上述在途事务占用上述连接的时长,上述待处理业务请求用于请求执行待执行事务;

为了实时确定是否存在数据库连接被耗尽的风险,在一种可选的实施方式中,在步骤S101之前,上述方法还包括:

步骤S201,获取当前开启时间,上述当前开启时间为当前时间的上述缓存区中的上述在途事务的上述开启时间;

步骤S202,计算各上述当前开启时间与上述当前时间的差值,得到当前执行时长,上述当前执行时长与上述在途事务一一对应;

步骤S203,根据所有的上述当前执行时长,确定当前超时数量,上述当前超时数量为上述当前执行时长中大于上述第一预设时长的上述当前执行时长的个数;

步骤S204,确定上述当前超时数量与上述缓存区中的上述超时数量是否相同;

步骤S205,在上述当前超时数量与上述缓存区中的上述超时数量不相同的情况下,采用上述当前超时数量更新上述缓存区中的上述超时数量。

上述实施方式中,后端实时根据缓存区中各在途事务的开启时间统计超时数量,实时更新缓存区中的超时数量,以实现实时根据超时数量确定数据库连接释放速度是否低于数据库连接请求速度,从而实现实时确定是否存在数据库连接被耗尽的风险。

为了进一步实时确定是否存在数据库连接被耗尽的风险,在另一种可选的实施方式中,在步骤S203之后,上述方法还包括:

步骤S301,确定上述当前执行时长是否大于第二预设时长,上述第二预设时长大于上述第一预设时长;

步骤S302,在上述当前执行时长大于上述第二预设时长的情况下,删除上述缓存区中上述当前执行时长对应的上述在途事务的上述事务信息。

上述实施方式中,后端定时统计超时数量的同时,还会确定各在途事务的执行时长是否大于第二预设时长,其中,第二预设时长为在途事务最大存活时长,在途事务的执行时长大于在途事务最大存活时长时该在途事务占用的数据库连接将会被释放,在途事务的执行时长大于大于第二预设时长时,确定该在途事务超过了在途事务最大存活时长,此时,将该在途事务的事务信息从缓存区中删除,以及时删除缓存区中存储的没有占用数据库连接的在途事务的事务信息,实时更新缓存区中在途事务的开启时间,进而保证后端根据实时更新的缓存区中在途事务的开启时间确定超时数量,进而实现实时确定数据库连接释放速度是否低于数据库连接请求速度,从而实现实时确定是否存在数据库连接被耗尽的风险。

步骤S102,确定上述超时数量是否大于预设数量;

其中,为了更加直观反馈是否可以开启新的数据库连接,可以通过断路开关标识来表示是否可以开启新的数据库连接,断路开关标识为断路开关开启时表示超时数量大于预设数量,即表示数据库连接释放速度低于数据库连接请求速度,此时,禁止开启新的数据库连接,断路开关标识为断路开关关闭时表示超时数量小于或者等于预设数量,即数据库连接释放速度高于数据库连接请求速度,此时,可以开启新的数据库连接,后端实时确定断路开关标识,并将断路开关标识存储在缓存区中。

为了进一步实时确定是否存在数据库连接被耗尽的风险,在再一种可选的实施方式中,在步骤S102之后,上述方法还包括:

步骤S401,在上述超时数量小于或者等于上述预设数量的情况下,开启一个上述连接以开始执行上述待执行事务,并将上述待执行事务对应的事务信息存储在上述缓存区,一个上述事务对应一个上述事务信息,上述事务信息至少包括上述事务的开启时间,上述开启时间为上述事务开始占用上述连接的时间;

步骤S402,在上述待执行事务的执行过程中实时检测上述待执行事务是否执行完毕;

步骤S403,在上述待执行事务执行完毕的情况下,删除上述缓存区中上述待执行事务对应的上述事务信息。

上述实施方式中,如图2所示,在后端接收到待处理业务请求时,后端检测缓存区中的断路开关标识,当检测到断路开关标识为断路开关开启时,事务处理失败,当检测到断路开关标识为断路开关关闭时,开启新的数据库连接执行待执行事务,并记录事务信息,即将待执行事务的事务信息存储在缓存区中,进行业务处理,在待执行事务执行完毕后,且没有出现异常情况,提交事务并将数据库连接释放,及时将待执行事务的事务信息从缓存区中删除,以及时删除缓存区中存储的没有占用数据库连接的事务的事务信息,实时更新缓存区中在途事务的开启时间,进而保证后端根据实时更新的缓存区中在途事务的开启时间确定超时数量,进而实现实时确定数据库连接释放速度是否低于数据库连接请求速度,从而实现实时确定是否存在数据库连接被耗尽的风险。

需要说明的是,上述事务信息还包括事务标识、主机标识、线程号等。

为了进一步实时确定是否存在数据库连接被耗尽的风险,在又一种可选的实施方式中,在步骤S401之后,上述方法还包括:

步骤S501,在上述待执行事务的上述执行过程中实时检测是否存在异常情况;

步骤S502,在存在上述异常情况的情况下,执行事务回滚操作,并删除上述缓存区中上述待执行事务对应的上述事务信息,上述事务回滚操作为撤销对上述数据库进行的所有操作。

上述实施方式中,如图2所示,在待执行事务执行过程中,后端实时检测是否存在异常情况,在存在异常情况时,执行事务回滚操作,即撤销执行待执行事务过程中对数据库进行的所有操作,释放数据库连接,及时将待执行事务的事务信息从缓存区中删除,以及时删除缓存区中存储的没有占用数据库连接的事务的事务信息,实时更新缓存区中在途事务的开启时间,进而保证后端根据实时更新的缓存区中在途事务的开启时间确定超时数量,进而实现实时确定数据库连接释放速度是否低于数据库连接请求速度,从而实现实时确定是否存在数据库连接被耗尽的风险。

为了完成待处理业务请求,在一种可选的实施方式中,在步骤S502之后,上述方法还包括:

步骤S601,重新开启上述连接以开始执行上述待执行事务。

上述实施方式中,在出现异常情况,执行事务回滚操作,将数据库连接释放后,后端重新开启该连接,以执行待执行任务,完成待处理业务请求。

为了进一步实时确定是否存在数据库连接被耗尽的风险,在一种可选的实施方式中,在步骤S401之后,上述方法还包括:

步骤S701,确定是否存在重启请求指令或者关机请求指令;

步骤S702,在存在上述重启请求指令或者上述关机请求指令的情况下,删除上述缓存区中的所有的上述在途事务对应的上述事务信息。

上述实施方式中,在待执行事务执行过程中,后端实时检测是否存在重启请求指令或者关机请求指令,后端重启或者关机,数据库连接会被全部释放,因此,在存在重启请求指令或者关机请求指令时,后端将缓存区中的在途事务的事务信息全部删除,实时更新缓存区中在途事务的开启时间,进而保证后端根据实时更新的缓存区中在途事务的开启时间确定超时数量,进而实现实时确定数据库连接释放速度是否低于数据库连接请求速度,从而实现实时确定是否存在数据库连接被耗尽的风险。

步骤S103,在上述超时数量大于上述预设数量的情况下,发送无法执行上述待执行事务的信息至上述前端。

其中,后端发送无法执行待执行事务的信息至前端。

为了提高执行上述事务控制方法的速度,在一种可选的实施方式中,如图3所示,后端通过调用事务控制组件、事务断路开关控制组件和事物控制信息存储组件执行上述事务控制方法,具体的,事务控制组件用于开启和释放数据库连接、检测断路开关标识、提交事务和执行事务回滚操作,事务断路开关控制组件用于统计超时数量、删除缓存区中的执行时长大于第二预设时长的在途事务的事务信息和确定断路开关标识,事物控制信息存储组件用于将在途事务的事务信息和断路开关标识存储到缓存区中。

上述事务控制方法中,首先,在接收到上述前端发送的待处理业务请求的情况下,从上述缓存区获取超时数量,上述超时数量为执行时长大于第一预设时长的在途事务的数量,上述在途事务为正在被执行的上述事务,上述执行时长为上述在途事务占用上述连接的时长,上述待处理业务请求用于请求执行待执行事务;然后,确定上述超时数量是否大于预设数量;最后,在上述超时数量大于上述预设数量的情况下,发送无法执行上述待执行事务的信息至上述前端。该方法中的超时数量为执行时长过长的在途事务的数量,当超时数量大于预设数量时,可以确定数据库连接释放速度低于数据库连接请求速度,此时,再不断开启新的数据库连接可能导致数据库连接被耗尽,因此,在后端接收到待处理业务请求的情况下,先确定超时数量是否大于预设数量,以确定数据库连接释放速度是否低于数据库连接请求速度,在超时数量大于预设数量的情况下,确定数据库连接释放速度低于数据库连接请求速度,确定存在数据库连接被耗尽的风险,此时,拒绝开启新连接的请求,以避免数据库连接被耗尽,该方法解决了现有技术中数据库连接请求速度超过数据库连接释放速度导致数据库连接耗尽的问题。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例还提供了一种事务控制装置,需要说明的是,本申请实施例的事务控制装置可以用于执行本申请实施例所提供的用于事务控制方法。以下对本申请实施例提供的事务控制装置进行介绍。

图4是根据本申请实施例的事务控制装置的示意图。如图4所示,该装置包括:

获取单元10,用于在接收到上述前端发送的待处理业务请求的情况下,从上述缓存区获取超时数量,上述超时数量为执行时长大于第一预设时长的在途事务的数量,上述在途事务为正在被执行的上述事务,上述执行时长为上述在途事务占用上述连接的时长,上述待处理业务请求用于请求执行待执行事务;

为了实时确定是否存在数据库连接被耗尽的风险,在一种可选的实施方式中,上述装置还包括:

第一获取单元,用于获取当前开启时间,上述当前开启时间为当前时间的上述缓存区中的上述在途事务的上述开启时间;

计算单元,用于计算各上述当前开启时间与上述当前时间的差值,得到当前执行时长,上述当前执行时长与上述在途事务一一对应;

第一确定单元,用于根据所有的上述当前执行时长,确定当前超时数量,上述当前超时数量为上述当前执行时长中大于上述第一预设时长的上述当前执行时长的个数;

第二确定单元,用于确定上述当前超时数量与上述缓存区中的上述超时数量是否相同;

更新单元,用于在上述当前超时数量与上述缓存区中的上述超时数量不相同的情况下,采用上述当前超时数量更新上述缓存区中的上述超时数量。

上述实施方式中,后端实时根据缓存区中各在途事务的开启时间统计超时数量,实时更新缓存区中的超时数量,以实现实时根据超时数量确定数据库连接释放速度是否低于数据库连接请求速度,从而实现实时确定是否存在数据库连接被耗尽的风险。

为了进一步实时确定是否存在数据库连接被耗尽的风险,在另一种可选的实施方式中,上述装置还包括:

第三确定单元,用于确定上述当前执行时长是否大于第二预设时长,上述第二预设时长大于上述第一预设时长;

第一删除单元,用于在上述当前执行时长大于上述第二预设时长的情况下,删除上述缓存区中上述当前执行时长对应的上述在途事务的上述事务信息。

上述实施方式中,后端定时统计超时数量的同时,还会确定各在途事务的执行时长是否大于第二预设时长,其中,第二预设时长为在途事务最大存活时长,在途事务的执行时长大于在途事务最大存活时长时该在途事务占用的数据库连接将会被释放,在途事务的执行时长大于大于第二预设时长时,确定该在途事务超过了在途事务最大存活时长,此时,将该在途事务的事务信息从缓存区中删除,以及时删除缓存区中存储的没有占用数据库连接的在途事务的事务信息,实时更新缓存区中在途事务的开启时间,进而保证后端根据实时更新的缓存区中在途事务的开启时间确定超时数量,进而实现实时确定数据库连接释放速度是否低于数据库连接请求速度,从而实现实时确定是否存在数据库连接被耗尽的风险。

确定单元20,用于确定上述超时数量是否大于预设数量;

其中,为了更加直观反馈是否可以开启新的数据库连接,可以通过断路开关标识来表示是否可以开启新的数据库连接,断路开关标识为断路开关开启时表示超时数量大于预设数量,即表示数据库连接释放速度低于数据库连接请求速度,此时,禁止开启新的数据库连接,断路开关标识为断路开关关闭时表示超时数量小于或者等于预设数量,即数据库连接释放速度高于数据库连接请求速度,此时,可以开启新的数据库连接,后端实时确定断路开关标识,并将断路开关标识存储在缓存区中。

为了进一步实时确定是否存在数据库连接被耗尽的风险,在再一种可选的实施方式中,上述装置还包括:

第一处理单元,用于在上述超时数量小于或者等于上述预设数量的情况下,开启一个上述连接以开始执行上述待执行事务,并将上述待执行事务对应的事务信息存储在上述缓存区,一个上述事务对应一个上述事务信息,上述事务信息至少包括上述事务的开启时间,上述开启时间为上述事务开始占用上述连接的时间;

第一检测单元,用于在上述待执行事务的执行过程中实时检测上述待执行事务是否执行完毕;

第二删除单元,用于在上述待执行事务执行完毕的情况下,删除上述缓存区中上述待执行事务对应的上述事务信息。

上述实施方式中,如图2所示,在后端接收到待处理业务请求时,后端检测缓存区中的断路开关标识,当检测到断路开关标识为断路开关开启时,事务处理失败,当检测到断路开关标识为断路开关关闭时,开启新的数据库连接执行待执行事务,并记录事务信息,即将待执行事务的事务信息存储在缓存区中,进行业务处理,在待执行事务执行完毕后,且没有出现异常情况,提交事务并将数据库连接释放,及时将待执行事务的事务信息从缓存区中删除,以及时删除缓存区中存储的没有占用数据库连接的事务的事务信息,实时更新缓存区中在途事务的开启时间,进而保证后端根据实时更新的缓存区中在途事务的开启时间确定超时数量,进而实现实时确定数据库连接释放速度是否低于数据库连接请求速度,从而实现实时确定是否存在数据库连接被耗尽的风险。

需要说明的是,上述事务信息还包括事务标识、主机标识、线程号等。

为了进一步实时确定是否存在数据库连接被耗尽的风险,在又一种可选的实施方式中,上述装置还包括:

第二检测单元,用于在上述待执行事务的上述执行过程中实时检测是否存在异常情况;

第三删除单元,用于在存在上述异常情况的情况下,执行事务回滚操作,并删除上述缓存区中上述待执行事务对应的上述事务信息,上述事务回滚操作为撤销对上述数据库进行的所有操作。

上述实施方式中,如图2所示,在待执行事务执行过程中,后端实时检测是否存在异常情况,在存在异常情况时,执行事务回滚操作,即撤销执行待执行事务过程中对数据库进行的所有操作,释放数据库连接,及时将待执行事务的事务信息从缓存区中删除,以及时删除缓存区中存储的没有占用数据库连接的事务的事务信息,实时更新缓存区中在途事务的开启时间,进而保证后端根据实时更新的缓存区中在途事务的开启时间确定超时数量,进而实现实时确定数据库连接释放速度是否低于数据库连接请求速度,从而实现实时确定是否存在数据库连接被耗尽的风险。

为了完成待处理业务请求,在一种可选的实施方式中,上述装置还包括:

第二处理单元,用于重新开启上述连接以开始执行上述待执行事务。

上述实施方式中,在出现异常情况,执行事务回滚操作,将数据库连接释放后,后端重新开启该连接,以执行待执行任务,完成待处理业务请求。

为了进一步实时确定是否存在数据库连接被耗尽的风险,在一种可选的实施方式中,上述装置还包括:

第四确定单元,用于确定是否存在重启请求指令或者关机请求指令;

第四删除单元,用于在存在上述重启请求指令或者上述关机请求指令的情况下,删除上述缓存区中的所有的上述在途事务对应的上述事务信息。

上述实施方式中,在待执行事务执行过程中,后端实时检测是否存在重启请求指令或者关机请求指令,后端重启或者关机,数据库连接会被全部释放,因此,在存在重启请求指令或者关机请求指令时,后端将缓存区中的在途事务的事务信息全部删除,实时更新缓存区中在途事务的开启时间,进而保证后端根据实时更新的缓存区中在途事务的开启时间确定超时数量,进而实现实时确定数据库连接释放速度是否低于数据库连接请求速度,从而实现实时确定是否存在数据库连接被耗尽的风险。

发送单元30,用于在上述超时数量大于上述预设数量的情况下,发送无法执行上述待执行事务的信息至上述前端。

其中,后端发送无法执行待执行事务的信息至前端。

为了提高执行上述事务控制方法的速度,在一种可选的实施方式中,如图3所示,后端通过调用事务控制组件、事务断路开关控制组件和事物控制信息存储组件执行上述事务控制方法,具体的,事务控制组件用于开启和释放数据库连接、检测断路开关标识、提交事务和执行事务回滚操作,事务断路开关控制组件用于统计超时数量、删除缓存区中的执行时长大于第二预设时长的在途事务的事务信息和确定断路开关标识,事物控制信息存储组件用于将在途事务的事务信息和断路开关标识存储到缓存区中。

上述事务控制装置中,获取单元,用于在接收到上述前端发送的待处理业务请求的情况下,从上述缓存区获取超时数量,上述超时数量为执行时长大于第一预设时长的在途事务的数量,上述在途事务为正在被执行的上述事务,上述执行时长为上述在途事务占用上述连接的时长,上述待处理业务请求用于请求执行待执行事务;确定单元,用于确定上述超时数量是否大于预设数量;发送单元,用于在上述超时数量大于上述预设数量的情况下,发送无法执行上述待执行事务的信息至上述前端。该装置中的超时数量为执行时长过长的在途事务的数量,当超时数量大于预设数量时,可以确定数据库连接释放速度低于数据库连接请求速度,此时,再不断开启新的数据库连接可能导致数据库连接被耗尽,因此,在后端接收到待处理业务请求的情况下,先确定超时数量是否大于预设数量,以确定数据库连接释放速度是否低于数据库连接请求速度,在超时数量大于预设数量的情况下,确定数据库连接释放速度低于数据库连接请求速度,确定存在数据库连接被耗尽的风险,此时,拒绝开启新连接的请求,以避免数据库连接被耗尽,该装置解决了现有技术中数据库连接请求速度超过数据库连接释放速度导致数据库连接耗尽的问题。

上述事务控制装置包括处理器和存储器,上述获取单元、确定单元和发送单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中数据库连接请求速度超过数据库连接释放速度导致数据库连接耗尽的问题。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本申请实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,上述程序被处理器执行时,上述处理器执行上述事务控制方法。

本申请实施例提供了一种事务控制系统,包括:一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行上述事务控制系统。

本申请实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:

步骤S101,在接收到上述前端发送的待处理业务请求的情况下,从上述缓存区获取超时数量,上述超时数量为执行时长大于第一预设时长的在途事务的数量,上述在途事务为正在被执行的上述事务,上述执行时长为上述在途事务占用上述连接的时长,上述待处理业务请求用于请求执行待执行事务;

步骤S102,确定上述超时数量是否大于预设数量;

步骤S103,在上述超时数量大于上述预设数量的情况下,发送无法执行上述待执行事务的信息至上述前端。

本文中的设备可以是服务器、PC、PAD、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:

步骤S101,在接收到上述前端发送的待处理业务请求的情况下,从上述缓存区获取超时数量,上述超时数量为执行时长大于第一预设时长的在途事务的数量,上述在途事务为正在被执行的上述事务,上述执行时长为上述在途事务占用上述连接的时长,上述待处理业务请求用于请求执行待执行事务;

步骤S102,确定上述超时数量是否大于预设数量;

步骤S103,在上述超时数量大于上述预设数量的情况下,发送无法执行上述待执行事务的信息至上述前端。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:

1)、本申请的事务控制方法中,首先,在接收到上述前端发送的待处理业务请求的情况下,从上述缓存区获取超时数量,上述超时数量为执行时长大于第一预设时长的在途事务的数量,上述在途事务为正在被执行的上述事务,上述执行时长为上述在途事务占用上述连接的时长,上述待处理业务请求用于请求执行待执行事务;然后,确定上述超时数量是否大于预设数量;最后,在上述超时数量大于上述预设数量的情况下,发送无法执行上述待执行事务的信息至上述前端。该方法中的超时数量为执行时长过长的在途事务的数量,当超时数量大于预设数量时,可以确定数据库连接释放速度低于数据库连接请求速度,此时,再不断开启新的数据库连接可能导致数据库连接被耗尽,因此,在后端接收到待处理业务请求的情况下,先确定超时数量是否大于预设数量,以确定数据库连接释放速度是否低于数据库连接请求速度,在超时数量大于预设数量的情况下,确定数据库连接释放速度低于数据库连接请求速度,确定存在数据库连接被耗尽的风险,此时,拒绝开启新连接的请求,以避免数据库连接被耗尽,该方法解决了现有技术中数据库连接请求速度超过数据库连接释放速度导致数据库连接耗尽的问题。

2)、本申请的事务控制装置中,获取单元,用于在接收到上述前端发送的待处理业务请求的情况下,从上述缓存区获取超时数量,上述超时数量为执行时长大于第一预设时长的在途事务的数量,上述在途事务为正在被执行的上述事务,上述执行时长为上述在途事务占用上述连接的时长,上述待处理业务请求用于请求执行待执行事务;确定单元,用于确定上述超时数量是否大于预设数量;发送单元,用于在上述超时数量大于上述预设数量的情况下,发送无法执行上述待执行事务的信息至上述前端。该装置中的超时数量为执行时长过长的在途事务的数量,当超时数量大于预设数量时,可以确定数据库连接释放速度低于数据库连接请求速度,此时,再不断开启新的数据库连接可能导致数据库连接被耗尽,因此,在后端接收到待处理业务请求的情况下,先确定超时数量是否大于预设数量,以确定数据库连接释放速度是否低于数据库连接请求速度,在超时数量大于预设数量的情况下,确定数据库连接释放速度低于数据库连接请求速度,确定存在数据库连接被耗尽的风险,此时,拒绝开启新连接的请求,以避免数据库连接被耗尽,该装置解决了现有技术中数据库连接请求速度超过数据库连接释放速度导致数据库连接耗尽的问题。

3)、本申请的事务控制系统,包括:一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行上述事务控制系统。该系统中的超时数量为执行时长过长的在途事务的数量,当超时数量大于预设数量时,可以确定数据库连接释放速度低于数据库连接请求速度,此时,再不断开启新的数据库连接可能导致数据库连接被耗尽,因此,在后端接收到待处理业务请求的情况下,先确定超时数量是否大于预设数量,以确定数据库连接释放速度是否低于数据库连接请求速度,在超时数量大于预设数量的情况下,确定数据库连接释放速度低于数据库连接请求速度,确定存在数据库连接被耗尽的风险,此时,拒绝开启新连接的请求,以避免数据库连接被耗尽,该系统解决了现有技术中数据库连接请求速度超过数据库连接释放速度导致数据库连接耗尽的问题。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术分类

06120115686691