本技术涉及大数据,尤其涉及一种异常处理系统、方法、电子设备、存储介质及程序产品。
背景技术:
1、spring框架是java服务端编程中广泛应用的开源框架,其事务管理组件已经成为事务管理领域的事实标准。spring事务管理组件功能强大,基于注解可配置,使用方便,且能够自动化地完成事务控制,包括事务的开启、提交以及基于异常捕获的回滚操作,这使得开发人员在编写业务逻辑时无需显式地管理事务的开启和回滚。尽管spring事务管理组件提供了强大的自动回滚机制,但在一些场景下,该自动回滚机制并不完美,特别是在多级嵌套的事务方法调用中。
2、相关技术中,当内层逻辑因某些原因触发异常时,该spring事务管理组件会标记当前事务为全局回滚状态,但如果该异常被外层逻辑非正常捕获,并且在外层逻辑中未抛出触发事务回滚的异常,spring事务管理组件会在提交事务时,因事务被标记为全局回滚状态而执行回滚操作,并抛出意外的回滚异常,即unexpectedrollbackexception异常。对于开发人员或维护人员来说,需要花费大量时间和精力来定位该异常的原因,因此,亟需提供一种高效的定位spring事务管理组件中异常的方案。
技术实现思路
1、本技术提供一种异常处理系统、方法、电子设备、存储介质及程序产品,用以解决相关技术中无法高效的定位spring事务管理组件中异常的问题。
2、第一方面,本技术提供一种异常处理系统,包括:事务回滚拦截器和事务回滚管理器,其中:
3、事务回滚拦截器,用于响应业务逻辑方法运行过程中捕获到事务管理组件抛出的异常时,检查当前的事务状态,记录事务执行状态和且事务回滚状态,并向事务回滚管理器报告事务状态和异常相关信息,其中,业务逻辑方法带有管理事务的注解;
4、事务回滚管理器,用于在事务状态为执行状态时,记录异常相关信息和事务状态;以及在事务状态为非执行状态且异常为意外的回滚异常时,基于记录的事务状态和异常相关信息,生成运行业务逻辑方法的异常回滚报告。
5、在一种可能的实施方式中,事务回滚拦截器还用于:记录线程是否处于事务执行状态,以及,发起对事务管理组件的调用;对应地,事务管理组件,还用于:检测线程是否已开启事务,在线程未开启事务时,开启事务,并发起对业务逻辑方法的调用;在线程已开启事务时,标记事务执行状态并发起对业务逻辑方法的调用。
6、在一种可能的实施方式中,事务回滚管理器还用于通过以下至少一种形式输出异常回滚报告:将异常回滚报告记录到本地日志文件;将异常回滚报告写入设定的存储介质;向远程目标接收装置发送异常回滚报告。
7、在一种可能的实施方式中,异常处理系统还包括类型判断组件和事务回滚监测切入点组件,类型判断组件和事务回滚拦截器为事务回滚监测切入点组件的内部组件;其中,类型判断组件用于提供过滤规则,过滤规则用于判断在调用业务逻辑方法之前是否调用事务回滚拦截器;事务回滚监测切入点组件用于根据类型判断组件提供的过滤规则向符合要求的业务逻辑方法提供事务回滚拦截器进行增强。
8、在一种可能的实施方式中,异常处理系统是通过如下方式构建的:响应于应用程序的启动指令,加载应用程序启动的引导类;基于应用程序的默认配置规则,解析预设的回滚监测器配置文件,得到回滚监测器配置组件、事务回滚监测切入点组件和事务回滚管理器的单例对象的定义;依据标准的包扫描和配置类加载规则结果,加载回滚监测器配置组件和事务回滚监测切入点组件的实例,其中,类型判断组件和事务回滚拦截器在事务回滚监测切入点组件的实例化过程中被实例化;事务回滚管理器在类型判断组件实例化过程中实例化;以及,在加载事务回滚监测切入点组件的实例时,引入解析注解式事务属性组件和事务方面支持组件,解析注解式事务属性组件用于将事务注解解析为事务属性,事务方面支持组件用于事务管理。
9、在一种可能的实施方式中,事务管理组件,具体用于:在捕获到业务逻辑方法运行过程中产生的异常时,确定当前是否处于开启事务对应的方法层;在未处于开启事务对应的方法层,且事务处于事务执行状态时,标记事务为回滚状态,并向上层方法抛出产生的异常并记录事务回滚状态;在处于开启事务对应的层时,发起事务提交操作,在事务提交过程中检测事务状态,若处于回滚状态,执行回滚操作,并向上层方法抛出产生的异常并记录事务回滚状态。
10、在一种可能的实施方式中,事务回滚拦截器还用于在业务逻辑方法被调用前插入额外的处理逻辑;对应地,事务管理组件还用于:在调用业务逻辑方法之前,依次调用事务回滚拦截器的反射机制方法和事务管理组件的反射机制方法对业务逻辑方法进行增强。
11、第二方面,本技术提供一种异常处理方法,应用于第一方面任一项所述的异常处理系统,异常处理方法包括:
12、监测带有管理事务注解的业务逻辑方法的运行过程;
13、记录业务逻辑方法的运行过程中的事务管理组件的事务状态;
14、若在业务逻辑方法的运行过程中捕获到事务管理组件抛出的异常,记录异常相关信息,异常相关信息包含异常发生的位置;
15、若事务状态为执行状态,记录事务状态和异常相关信息;以及若事务状态为非执行状态,且异常为意外的回滚异常,基于记录的事务状态和异常相关信息,生成运行业务逻辑方法的异常回滚报告。
16、第三方面,本技术提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;
17、存储器,用于存储计算机执行指令;
18、处理器,用于执行存储器存储的计算机执行指令,以实现第一方面任一项所述的方法。
19、第四方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,计算机执行指令被执行时用于实现第一方面任一项所述的方法。
20、第五方面,本技术提供一种计算机程序产品,包括计算机程序,该计算机程序被执行时实现第一方面任一项所述的方法。
21、本技术提供的异常处理系统、方法、电子设备、存储介质及程序产品,其中,事务回滚拦截器,用于响应业务逻辑方法运行过程中捕获到事务管理组件抛出的异常时,检查当前的事务状态,记录事务执行状态和事务回滚状态,并向事务回滚管理器报告事务状态和异常相关信息,业务逻辑方法带有管理事务的注解;事务回滚管理器,用于在事务状态为执行状态时,记录异常相关信息和事务状态;以及在事务状态为非执行状态且异常为意外的回滚异常时,基于记录的事务状态和异常相关信息,生成运行业务逻辑方法的异常回滚报告。通过事务回滚拦截器和事务回滚管理器的协同工作,实现对带有管理事务注解的业务逻辑方法运行过程中的事务状态和异常的实时监测和记录,捕获运行过程中的异常,当异常为意外的回滚异常时,根据记录的事务状态和异常相关信息生成异常回滚报告,使得开发人员或维护人员无需花费大量时间和精力来定位异常原因,基于异常回滚报告,即可以快速定位导致事务异常回滚的具体位置和根本原因,从而显著提高开发和维护的效率,进一步增强系统的稳定性和可靠性。
1.一种异常处理系统,其特征在于,包括:事务回滚拦截器和事务回滚管理器,其中:
2.根据权利要求1所述的异常处理系统,其特征在于,所述事务回滚拦截器还用于:
3.根据权利要求1或2所述的异常处理系统,其特征在于,所述事务回滚管理器还用于通过以下至少一种形式输出所述异常回滚报告:
4.根据权利要求1或2所述的异常处理系统,其特征在于,所述异常处理系统还包括类型判断组件和事务回滚监测切入点组件,所述类型判断组件和所述事务回滚拦截器为所述事务回滚监测切入点组件的内部组件;
5.根据权利要求4所述的异常处理系统,其特征在于,所述异常处理系统是通过如下方式构建的:
6.根据权利要求1或2所述的异常处理系统,其特征在于,所述事务管理组件,具体用于:
7.一种异常处理方法,其特征在于,应用于如权利要求1至6中任一项所述的异常处理系统,所述异常处理方法包括:
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被执行时用于实现如权利要求7所述的异常处理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求7所述的异常处理方法。
