基于客户端编程接口实现的事务异常处理方法及相关设备技术

技术编号:38154989 阅读:12 留言:0更新日期:2023-07-13 09:22
本发明专利技术提供了一种基于客户端编程接口实现的事务异常处理方法及相关设备。涉及数据库技术领域。本发明专利技术的客户端编程接口至少封装执行回滚逻辑的第一函数;以及事务异常处理方法包括:响应于应用层上语句执行完成,判断语句执行的结果是否成功,如是,则调用客户端编程接口,并更新第一函数的回滚点或退出第一函数;或者如否,则调用客户端编程接口,以执行第一函数。本发明专利技术的事务异常处理方法在需要对事务进行回滚时,可调用客户端编程接口执行第一函数,对事务进行回滚,使得数据库在客户端编程接口层表现为具有自动回滚的能力。降低了应用开发的开发难度和复杂性。用开发的开发难度和复杂性。用开发的开发难度和复杂性。

【技术实现步骤摘要】
基于客户端编程接口实现的事务异常处理方法及相关设备


[0001]本专利技术涉及数据库
,特别是涉及一种基于客户端编程接口实现的事务异常处理方法及相关设备。

技术介绍

[0002]在应用开发时,应用开发者需要创建使用函数调用来访问数据库,并控制SQL语句执行和数据访问的所有阶段。但是,在数据库服务不具备事务自动回滚能力的情况下,一旦语句执行出错或事务执行失败,应用开发者往往需要针对该问题单独处理事务,使应用开发的难度和复杂性大大增加,并带来许多不便和不可预知的错误。
[0003]目前,一些带有自动回滚事务能力的数据库中,其服务端提供了语句执行出错后自动回滚事务状态的能力,所以这些数据库的服务端编程接口不存在语句一旦执行出错后,就不能在当前事务中继续执行后续语句的问题。但是,更多类型的数据库尚不具备自动回滚事务能力,并仍然在应用开发中起到重要作用,从而引起一些应用开发仍然存在开发难度和复杂性较大的问题。

技术实现思路

[0004]鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的基于客户端编程接口实现的事务异常处理方法及相关设备,能够解决现有技术中部分数据库无自动回滚事务能力引起的应用开发难度大的问题,达到使应用开发简便的目的。
[0005]具体地,本专利技术提供了一种基于客户端编程接口实现的事务异常处理方法,其中,所述客户端编程接口至少封装执行回滚逻辑的第一函数;以及,所述事务异常处理方法包括:响应于应用层上语句执行完成,判断所述语句执行的结果是否成功,如是,则调用所述客户端编程接口,并更新所述第一函数的回滚点或退出所述第一函数;或者,如否,则调用所述客户端编程接口,以执行所述第一函数。
[0006]可选地,所述客户端编程接口还至少封装设置所述回滚逻辑的第二函数;以及所述事务异常处理方法还包括:调用所述客户端编程接口,以所述应用层为条件,设置所述回滚逻辑。
[0007]可选地,所述事务异常处理方法还包括:响应于所述回滚逻辑被设置为事务回滚逻辑,获取当前事务状态;响应于所述当前事务状态不在事务中,开启下一事务,并在所述客户端编程接口进行语句执行动作;响应于所述下一事务中所述语句执行失败,根据所述事务回滚逻辑,执行所述第一函数。
[0008]可选地,所述事务异常处理方法还包括:响应于所述回滚逻辑被设置为语句回滚逻辑,根据当前事务状态,更新所述第一函数的回滚点;响应于所述回滚点更新后语句执行失败,根据所述语句回滚逻辑,执行所述第一函数。
[0009]可选地,所述的根据当前事务状态,更新所述第一函数的回滚点,包括:获取当前
事务状态;响应于所述当前事务状态在事务中且已设置回滚点,将回滚点更新至当前位置。
[0010]可选地,所述客户端编程接口至少封装开启新事务的第三函数;所述事务异常处理方法还包括:响应于所述下一事务中所述语句执行成功,调用所述客户端编程接口执行所述第三函数。
[0011]可选地,所述事务异常处理方法还包括:响应于所述回滚点更新至当前位置,执行下一语句。
[0012]可选地,所述客户端编程接口至少还封装记录设置的所述回滚逻辑和事务的归档日志;所述事务异常处理方法还包括:响应于所述回滚逻辑为事务回滚逻辑且当前事务执行完成,调用所述客户端编程接口记录所述当前事务的所述回滚逻辑和所述当前事务;响应于所述回滚逻辑为语句回滚逻辑且语句执行完成,记录所述回滚逻辑和所述语句。
[0013]具体地,本专利技术还提供了一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现上述任一种所述的事务异常处理方法。
[0014]具体地,本专利技术还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现上述任一种所述的事务异常处理方法。
[0015]本专利技术的基于客户端编程接口实现的事务异常处理方法及相关设备中,通过在不具备自动回滚事务能力的数据库的客户端编程接口封装用于执行回滚逻辑的第一函数。在需要对事务进行回滚时,可调用客户端编程接口执行第一函数,对事务进行回滚,使得数据库在客户端编程接口层表现为具有自动回滚的能力。降低了应用开发的开发难度和复杂性。
[0016]进一步地,本专利技术的基于客户端编程接口实现的事务异常处理方法及相关设备中,通过在客户端编程接口封装用于设置回滚逻辑的第二函数,使得数据库在客户端编程接口具有设置回滚逻辑为事务回滚逻辑和语句回滚逻辑的能力。在事务中语句执行失败时,可选择按照事务回滚逻辑进行回滚或者按照语句回滚逻辑进行回滚,更加人性化、智能化。
[0017]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
附图说明
[0018]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
[0019]图1是根据本专利技术一个实施例的数据库设置并执行回滚逻辑的流程图;
[0020]图2是根据本专利技术一个实施例的数据库执行事务回滚逻辑的流程图;
[0021]图3是根据本专利技术一个实施例的数据库执行语句回滚逻辑的流程图;
[0022]图4是根据本专利技术一个实施例的数据库设置回滚点的流程图;
[0023]图5是根据本专利技术一个实施例的机器可读存储介质的示意图;
[0024]图6是根据本专利技术一个实施例的计算机设备的示意图。
具体实施方式
[0025]下面参照图1至图6来描述本专利技术实施例的基于客户端编程接口实现的事务异常处理方法及相关设备。在本实施例的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征,也即包括一个或者更多个该特征。在本专利技术的描述中,“多个”的含义是至少两个,例如两个、三个等,除非另有明确具体的限定。当某个特征“包括或者包含”某个或某些其涵盖的特征时,除非另外特别地描述,这指示不排除其它特征和可以进一步包括其它特征。
[0026]除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”、“固定”“耦合”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。本领域的普通技术人员,应该可以根据具体情况理解上述术语在本专利技术中的具体含义。
[0027]此外,在本实施例的描述中,第一特征在第二特征“之上”或“之下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于客户端编程接口实现的事务异常处理方法,其中,所述客户端编程接口至少封装执行回滚逻辑的第一函数;以及所述事务异常处理方法包括:响应于应用层上语句执行完成,判断所述语句执行的结果是否成功,如是,则调用所述客户端编程接口,并更新所述第一函数的回滚点或退出所述第一函数;或者如否,则调用所述客户端编程接口,以执行所述第一函数。2.根据权利要求1所述的事务异常处理方法,其中,所述客户端编程接口还至少封装设置所述回滚逻辑的第二函数;以及所述事务异常处理方法还包括:调用所述客户端编程接口,以所述应用层为条件,设置所述回滚逻辑。3.根据权利要求2所述的事务异常处理方法,其中,所述事务异常处理方法还包括:响应于所述回滚逻辑被设置为事务回滚逻辑,获取当前事务状态;响应于所述当前事务状态不在事务中,开启下一事务,并在所述客户端编程接口进行语句执行动作;响应于所述下一事务中所述语句执行失败,根据所述事务回滚逻辑,执行所述第一函数。4.根据权利要求2所述的事务异常处理方法,其中,所述事务异常处理方法还包括:响应于所述回滚逻辑被设置为语句回滚逻辑,根据当前事务状态,更新所述第一函数的回滚点;响应于所述回滚点更新后语句执行失败,根据所述语句回滚逻辑,执行所述第一函数。5.根据权利要求4所述的事务异常处理方法,其中,所述的根据当前事务状态,更...

【专利技术属性】
技术研发人员:郝龙云李楠
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1