System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据库领域,特别是涉及一种数据库事务中并发操作的处理方法、介质与程序产品。
技术介绍
1、关系数据库通常支持两种事务模式,自动提交模式和非自动提交模式。在非自动提交模式下,支持显示事务和隐式事务。显式事务,每个事务均以begin语句显式开始,以commit或rollback语句显式结束。隐式事务,在前一个事务完成时新事务隐式启动,但每个事务仍以commit或rollback语句显式完成。数据库支持的连接数受可用资源的限制,当连接数达到最大连接时,新的连接请求会被拒绝。为解决此问题,应用程序经常会采用复用连接的设计模式,即在应用程序中多个线程共用同一连接。数据库在一个连接中,同时只支持一个事务。由于应用程序的多个线程会发起不同的操作,这些操作共用同一连接,因此需要数据库支持在一个事务中支持并发操作。
技术实现思路
1、鉴于上述问题,本专利技术提出了一种克服上述问题或者至少部分地解决上述问题的数据库事务中并发操作的处理方法、介质与程序产品。
2、本专利技术的一个目的是使得同一事务中并发操作互不影响。
3、本专利技术一个进一步的目的是使得某一线程在提交或回滚事务后不影响同一连接中其他线程的正常操作。
4、特别地,本专利技术提供了一种数据库事务中并发操作的处理方法,其包括:
5、获取来自数据库客户端的操作报文,并根据操作报文生成操作执行体来执行操作;
6、在执行操作的过程中出现中断事件时,判断操作是否执行完毕;
>7、若否,则为操作执行体对应的操作状态设置暂停标识;
8、获取来自客户端的事务命令报文;
9、根据事务命令报文执行对应的事务操作,并缓存暂停标识对应的操作执行体。
10、可选地,根据事务命令报文执行对应的事务操作,并缓存暂停标识对应的操作执行体的步骤包括:
11、判断事务命令报文对应的事务状态;
12、在事务命令报文对应的事务状态为中止状态时,缓存暂停标识对应的操作执行体,并删除所有操作状态不带有暂停标识的操作执行体;
13、转换暂停标识对应的操作执行体的事务状态为事务无关状态;
14、回滚事务。
15、可选地,判断事务命令报文对应的事务状态的步骤之后还包括:
16、在事务命令报文对应的事务状态为提交状态时,缓存暂停标识对应的操作执行体,并删除所有操作状态不带有暂停标识的操作执行体;
17、转换暂停标识对应的操作执行体的事务状态为事务无关状态;
18、提交事务。
19、可选地,操作报文包括解析报文、绑定报文以及执行报文;
20、获取来自数据库客户端的操作报文,并根据操作报文生成操作执行体来执行操作的步骤包括:
21、获取客户端发送的解析报文,对解析报文进行解析得到执行计划;
22、获取客户端发送的绑定报文,并根据绑定报文对执行计划绑定参数,从而得到操作执行体;
23、获取客户端发送的执行报文,并根据执行报文控制操作执行体进行操作。
24、可选地,获取客户端发送的执行报文,并根据执行报文控制操作执行体进行操作的步骤包括:
25、获取客户端发送的执行报文;
26、判断执行报文是操作命令还是事务命令,操作命令用于对数据库中数据进行操作,事务命令用于对事务进行控制;
27、在执行报文是操作命令的情况下,控制操作执行体根据操作命令执行对应的操作。
28、可选地,判断执行报文是操作命令还是事务命令的步骤之后还包括:
29、在执行报文是事务命令的情况下,根据事务命令执行对应的操作;
30、向客户端发送结束报文,结束报文用于通知操作执行完毕。
31、可选地,中断事件包括:在执行操作的过程中切换至事务的同一连接中其他并发操作线程。
32、可选地,判断操作是否执行完毕的步骤之后还包括:
33、在操作执行完毕的情况下,向客户端发送结束报文,结束报文用于通知操作执行完毕。
34、根据本专利技术的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一种的数据库事务中并发操作的处理方法的步骤。
35、根据本专利技术的又一个方面,还提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上述任一种的数据库事务中并发操作的处理方法的步骤。
36、本专利技术的数据库事务中并发操作的处理方法,首先在获取来自数据库客户端的操作报文之后,根据操作报文生成操作执行体来执行操作;在执行操作的过程中出现中断事件时,判断操作是否执行完毕;若否,则为操作执行体对应的操作状态设置暂停标识;随后获取来自客户端的事务命令报文;根据事务命令报文执行对应的事务操作,并缓存暂停标识对应的操作执行体。通过此方法能够将在事务的同一连接中被其他线程打断时,为已经执行的操作执行体设置暂停标识,随后在事务进行提交或者回滚时,缓存暂停标识对应的操作执行体,使得其他线程在后续能够根据缓存的操作执行体继续执行对应的操作,进而实现同一事务中的并发操作互不影响。
37、根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
本文档来自技高网...【技术保护点】
1.一种数据库事务中并发操作的处理方法,包括:
2.根据权利要求1所述的数据库事务中并发操作的处理方法,其中,
3.根据权利要求2所述的数据库事务中并发操作的处理方法,其中,
4.根据权利要求1所述的数据库事务中并发操作的处理方法,其中,
5.根据权利要求4所述的数据库事务中并发操作的处理方法,其中,
6.根据权利要求5所述的数据库事务中并发操作的处理方法,其中,
7.根据权利要求1所述的数据库事务中并发操作的处理方法,其中,
8.根据权利要求1所述的数据库事务中并发操作的处理方法,其中,
9.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的数据库事务中并发操作的处理方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的数据库事务中并发操作的处理方法的步骤。
【技术特征摘要】
1.一种数据库事务中并发操作的处理方法,包括:
2.根据权利要求1所述的数据库事务中并发操作的处理方法,其中,
3.根据权利要求2所述的数据库事务中并发操作的处理方法,其中,
4.根据权利要求1所述的数据库事务中并发操作的处理方法,其中,
5.根据权利要求4所述的数据库事务中并发操作的处理方法,其中,
6.根据权利要求5所述的数据库事务中并发操作的处理方法,其中,
7.根据权利...
【专利技术属性】
技术研发人员:李国节,王伟,王建华,
申请(专利权)人:北京人大金仓信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。