System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及大数据,尤其涉及一种业务处理方法、装置及存储介质。
技术介绍
1、在spring框架下,使用注解的方式标记控制事务已经成为java开发领域最重要的事务管理办法。spring提供了简单的@transactional标记来记录当下事务。但是,由于其全部事务控制是基于线程私有缓存(threadlocal)来实现跨方法的事务同步的,因此很难在一个线程中同时控制多个连接,例如网络连接或数据库连接中。而在一个线程中同时控制多个连接是一个较为常见的需求,例如在业务开发过程中,进行业务操作的同时还要记录操作日志,业务操作的结果最终会伴随执行过程的各项条件最终提交或者回滚,而操作日志则都要提交。
2、在上述场景下,由于spring事务管理器并没有提供同时启用两个连接的方法,目前可以通过将spring的事务的传播类型设置为requires_new,在存在日志操作时开启连接,日志操作完成后关闭连接,以保证单一方法的请求与事务整体进行隔离。但在具体实施时,频繁的日志操作会导致大量的性能消耗。
技术实现思路
1、本申请提供一种业务处理方法、装置及存储介质,用以解决现有技术中频繁的日志操作导致大量性能消耗的问题。
2、第一方面,本申请提供一种业务处理方法,应用于部署有spring aop的服务器,业务处理方法包括:在应用执行过程中,若拦截到日志标志注解,变更事务操作的连接标识为日志连接(logconnection),并发起针对日志数据库的日志类型操作;
3、在操作
4、在一种可能的设计中,变更事务操作的连接标识为日志连接,包括:
5、在日志数据库键保持器(dblogkeyholder)中执行静态注入日志(enterlog)操作,日志数据库键保持器在线程私有缓存属性中增加整型键标志,静态注入日志操作用于对整型键标志执行加1操作;
6、对应地,发起针对日志数据库的日志类型操作,包括:调用日志数据库接口(dblogconnection)针对日志数据库执行日志类型操作,日志数据库接口用于检测日志数据库键保持器中整型键标志的取值,若取值表示日志数据库键保持器处于日志激活状态,采用日志连接发起针对日志数据库的日志类型操作。
7、在一种可能的设计中,变更事务操作的连接标识为业务连接,包括:
8、在日志数据库键保持器中执行对整型键标志的减1操作;
9、对应地,发起针对业务数据库的业务类型操作,包括:调用日志数据库接口针对业务数据库执行业务类型操作,日志数据库接口还用于检测日志数据库键保持器中整型键标志的取值,若取值表示日志数据库键保持器未处于日志激活状态,采用业务连接发起针对业务数据库的业务类型操作。
10、在一种可能的设计中,还包括:在当前业务调用请求对应的全部业务类型操作执行完成后,调用日志数据库接口针对业务连接和日志连接分别执行提交操作;
11、或者,在存在异常时,调用日志数据库接口针对业务连接执行回滚操作,以及针对日志连接执行提交操作。
12、在一种可能的设计中,还包括:在提交操作和/或回滚操作执行完成后,调用日志数据库接口的关闭方法和属性配置还原方法,关闭方法用于关闭业务连接和日志连接,属性配置还原方法用于还原业务连接配置和日志连接配置,以回收系统资源。
13、在一种可能的设计中,还包括:响应针对应用的业务调用请求,启动事务管理器,事务管理器通过日志数据库数据源(dblogdatasource)获取日志数据库接口以及对日志数据库接口进行初始化配置。
14、在一种可能的设计中,日志数据库接口是通过以下方式构建的:
15、通过基础数据源获取两个数据库连接,两个数据库连接中一个数据库连接用于业务类型操作,另一个数据库连接用于日志类型操作;
16、设置事务操作的初始连接标识为业务连接。
17、第二方面,本申请提供一种业务处理装置,包括:
18、日志类型操作模块,用于在应用执行过程中,若拦截到日志标志注解,变更事务操作的连接标识为日志连接,并发起针对日志数据库的日志类型操作;
19、业务类型操作模块,用于在操作日志记录完成后,变更事务操作的连接标识为业务连接,并发起针对业务数据库的业务类型操作。
20、在一些实施例中,日志类型操作模块具体用于:在日志数据库键保持器中执行静态注入日志操作,日志数据库键保持器在线程私有缓存属性中增加整型键标志,静态注入日志操作用于对整型键标志执行加1操作;
21、对应地,发起针对日志数据库的日志类型操作,包括:调用日志数据库接口针对日志数据库执行日志类型操作,日志数据库接口用于检测日志数据库键保持器中整型键标志的取值,若取值表示日志数据库键保持器处于日志激活状态,采用日志连接发起针对日志数据库的日志类型操作。
22、在一些实施例中,业务类型操作模块具体用于:在日志数据库键保持器中执行对整型键标志的减1操作;
23、对应地,发起针对业务数据库的业务类型操作,包括:调用日志数据库接口针对业务数据库执行业务类型操作,日志数据库接口还用于检测日志数据库键保持器中整型键标志的取值,若取值表示日志数据库键保持器未处于日志激活状态,采用业务连接发起针对业务数据库的业务类型操作。
24、在一些实施例中,业务处理方法装置还包括提交回滚模块(未示出),提交回滚模块具体用于:在当前业务调用请求对应的全部业务类型操作执行完成后,调用日志数据库接口针对业务连接和日志连接分别执行提交操作;
25、或者,在存在异常时,调用日志数据库接口针对业务连接执行回滚操作,以及针对日志连接执行提交操作。
26、在一些实施例中,业务处理方法装置还包括关闭还原模块,关闭还原模块具体用于:在提交操作和/或回滚操作执行完成后,调用日志数据库接口的关闭方法和属性配置还原方法,关闭方法用于关闭业务连接和日志连接,属性配置还原方法用于还原业务连接配置和日志连接配置,以回收系统资源。
27、在一些实施例中,业务处理方法装置还包括启动模块,启动模块具体用于:响应针对应用的业务调用请求,启动事务管理器,事务管理器通过日志数据库数据源获取日志数据库接口以及对所述日志数据库接口进行初始化配置。
28、在一些实施例中,日志数据库接口是通过以下方式构建的:
29、通过基础数据源获取两个数据库连接,两个数据库连接中一个数据库连接用于业务类型操作,另一个数据库连接用于日志类型操作;
30、设置事务操作的初始连接标识为业务连接。
31、第三方面,本申请实施例提供一种服务器,该服务器部署有spring aop。该服务器包括:至少一个处理器和存储器;存储器存储计算机执行指令;至少一个处理器执行存储器存储的计本文档来自技高网...
【技术保护点】
1.一种业务处理方法,其特征在于,应用于部署有Spring AOP的服务器,所述业务处理方法包括:
2.根据权利要求1所述的业务处理方法,其特征在于,所述变更事务操作的连接标识为日志连接,包括:
3.根据权利要求2所述的业务处理方法,其特征在于,所述变更事务操作的连接标识为业务连接,包括:
4.根据权利要求3所述的业务处理方法,其特征在于,还包括:
5.根据权利要求4所述的业务处理方法,其特征在于,还包括:
6.根据权利要求2至5中任一项所述的业务处理方法,其特征在于,还包括:
7.根据权利要求2至5中任一项所述的业务处理方法,其特征在于,所述日志数据库接口是通过以下方式构建的:
8.一种业务处理装置,其特征在于,应用于部署有Spring AOP的服务器,所述业务处理装置包括:
9.一种服务器,其特征在于,所述服务器部署有Spring AOP,所述服务器包括:处理器,以及与所述处理器通信连接的存储器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有
11.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被执行时实现权利要求1-7中任一项所述的方法。
...【技术特征摘要】
1.一种业务处理方法,其特征在于,应用于部署有spring aop的服务器,所述业务处理方法包括:
2.根据权利要求1所述的业务处理方法,其特征在于,所述变更事务操作的连接标识为日志连接,包括:
3.根据权利要求2所述的业务处理方法,其特征在于,所述变更事务操作的连接标识为业务连接,包括:
4.根据权利要求3所述的业务处理方法,其特征在于,还包括:
5.根据权利要求4所述的业务处理方法,其特征在于,还包括:
6.根据权利要求2至5中任一项所述的业务处理方法,其特征在于,还包括:
7.根据权利要求2至5中任一项所述的业务处理方法...
【专利技术属性】
技术研发人员:刘健,杨艳光,张同虎,
申请(专利权)人:建信金融科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。