一种保证数据库内事务一致的方法及装置制造方法及图纸

技术编号:3763383 阅读:202 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种保证数据库内事务一致的方法及装置,所述方法包括:第一系统接收来自第二系统的业务调用请求,调用第一事务管理框架,由所述第一事务管理框架判断设置在第二系统的第二事务管理框架是否开启了事务,若是,则设置事务相关标识为相关,并设置第一事务管理框架自身的事务为开启状态;第一系统将第二系统所需要的事务交给第二系统进行处理,并且,第一系统对交给第二系统进行处理的事务进行相对应的逻辑事务处理;第一系统处理完毕后通知第一事务管理框架,由第一事务管理框架判断出不满足提交条件后,结束。应用本发明专利技术,在保证了数据库内事务一致的同时,降低了业务系统与支撑系统的耦合度,且提高了开发的灵活性。

【技术实现步骤摘要】

本专利技术涉及数据库事务管理
,特别涉及一种保证数据库内事务 一致的方法及装置。
技术介绍
现代企业信息化程度已经越来越高,业务也越来越多样化,往往是不同的 业务拥有不同的系统,而这些系统通常又需要相互交互,例如在某企业,需要 通过电子表单和工作流系统结合进行各种业务审批,在审批过程中甚至于还 需要使用第三方独立的业务系统,如财务或人力资源系统等,以便为决策提供参考。在这些系统之间进行操作时,数据的完整性就显得尤为重要.如:电子 表单采集的数据和工作流的状态数据,工作流的流程数据和财务系统之间的 数据,都需要保证完整才能进行后续处理。企业的信息化项目,多数都要求能够快速构建,越来越多的开发厂商都 使用 一些能够提高开发速度基础平台产品,如何保证基础平台与业务系统之 间的事务一致性,以及其他提供服务和使用服务的系统之间的事务一致性, 是需要解决的主要问题。当前用来解决系统集成时的事务一致性问题的解决方案是将两种系统的 事务框架统一为同一种事务管理框架,要求使用服务的一方必须使用提供服 务一方的事务管理框架。例如,基于java实现的流程业务处理框架(JBPM, Java Business Process Management)其是一个开源工作流,在用户4吏用JBPM 做业务开发时,必须使用JBPM提供的jbpmcontext对象,完成数据库操 作,并且结束时需要调用jbpmcontext.close()方法将处理完成的事务提交至 数据库,从而保证数据库内的事务一致性。图l是现有的保证数据库内事务一致的实现原理示意图。在图1中,假 设A系统是提供服务的系统或称为支撑系统,B系统是使用服务的系统或称 为业务系统,上述A系统、B系统以及A系统所提供的事务管理框架 (A-TM)都位于服务器端。当服务器端根据来自客户端的业务请求需要使用a系统提供的服务时,具体操作为,b系统通过a系统所提供的事务管理框架(a-tm)完成对数 据的处理操作,之后,通过a-tm完成对数据库持久化时的事务管理操作, 即b系统通过a-tm完成对数据库x、 y、 z的持久化操作。上述现有技术至少存在如下问题1、 业务系统与支撑系统的耦合度高,如图1中的b系统与a系统的耦 合度要求较高。2、 如果新开发的系统已经采用新的事物管理框架完成了部分开发,需 要对这部分代码进行修改。例如,如果图1中的b系统已使用了 c系统的事 务管理框架完成了部分开发,而该b系统运行时需使用a-tm,则需要对已 开发的代码进行修改以使其适应a-tm。3、 缺乏灵活性,要求待开发的业务系统必须与支撑系统所使用的事务 管理一医架相适应。
技术实现思路
本专利技术实施例的目的在于提供一种保证数据库内事务一致的方法及装 置,在保证了数据库内事务一致的同时,降低了业务系统与支撑系统的耦合 度,且提高了开发的灵活性。本专利技术提供了一种保证数据库内事务一致的方法,包括在第一系统设 置第一事务管理框架,在第二系统设置第二事务管理框架,所述方法还包括第 一 系统接收来自第二系统的业务调用请求,调用第 一事务管理框架, 由所述第一事务管理框架判断设置在第二系统的第二事务管理框架是否开启 了事务,若是,则设置事务相关标识为相关,并设置第一事务管理框架自身的事务为开启状态;第一系统将第二系统所需要的事务交给第二系统进行处理,并且,第一 系统对交给第二系统进行处理的事务进行相对应的逻辑事务处理;第一系统处理完毕后通知第一事务管理框架,由第一事务管理框架判断 出不满足提交条件后,结束。6其中,若第一事务管理框架判断出设置在第二系统的第二事务管理框架 未开启事务,则所述方法还包括第一事务管理框架设置事务相关标识为不相关,并设置自身的事务为开 启状态,之后,第一系统将第二系统所需要的事务交给第一系统自身进行处理;第一系统处理完毕后,再向第一事务管理框架发送通知,由第一事务管 理框架判断是否满足提交条件,若是,则将第一系统所处理的逻辑事务提交 至与第 一 系统对应的数据库。其中,所述设置第一事务管理框架自身的事务为开启状态后,还包括 将事务计数器的值加l。其中,所述判断是否满足提交条件的步骤包括第一事务管理框架判断自身的事务状态为开启,且事务相关标识为不相 关,若是,将所述事务计数器的值减1,否则,判定为不满足提交条件;判断所述事务计数器的值是否为0,若是,则判定为满足提交条件,否 则不满足提交条件。其中,所述将第一系统所处理的逻辑事务提交至与第一系统对应的数据 库的步骤包括01 )从第一事务管理框架所管理的连接映射对象中获取存在的一个连 接,提交所述连接后,关闭所述连接;02) 判断所述连接映射对象中是否还存在连接,若是,重复执行步骤 01),否则,执行步骤03);03) 第一事务管理框架设置自身的事务状态为关闭。 本专利技术还提供了一种保证数据库内事务一致的装置,包括 第一系统,所述第一系统包括调用模块,用于接收来自第二系统的业务调用请求,调用设置在第一系 统的第一事务管理框架;移交模块,用于根据通知模块提供的设置信息,将第二系统所需要的事 务交给第二系统进行处理,并且,将与交给第二系统进行处理的事务相对应 的逻辑事务交给第一系统的处理模块进行处理;处理模块,用于事务处理完毕后,通知提交模块; 第一事务管理框架,所述第一事务管理框架包括 第一判断模块,用于根据接收到的调用请求,判断出设置在第二系统的 第二事务管理框架开启了事务时,通知设置模块;设置模块,用于设置事务相关标识为相关,并设置第一事务管理框架自身的事务为开启状态;通知模块,用于将所述设置模块所设置的信息通知第一系统中的移交模块;提交模块,用于根据接收到的通知,判断出不满足提交条件时,结束。 其中,所述第一事务管理框架中的第一判断模块,还用于根据接收到的调用请求,判断出设置在第二系统的第二事务管理框架未开启事务时,通知设置模块;所述设置模块,还用于设置事务相关标识为不相关,并设置第一事务管 理框架自身的事务为开启状态;所述提交模块,还用于判断出满足提交条件时,将第一系统所处理的逻 辑事务提交至与第 一 系统对应的数据库;所述第一系统中的移交模块,还用于根据通知模块提供的设置信息,将 第二系统所需要的事务交给第 一 系统进行处理。其中,所述第一事务管理框架中所述通知模块,还用于将事务相关标 识设置为相关的信息通知给计数模块;所述第一事务管理框架中还包括计数模块,用于在事务相关标识为相关时,将事务计数器的值加l。 其中,所述第一系统中还包括第二判断模块,用于判断自身的事务处理操作是否正常,若正常,再向 第一事务管理框架发送通知,否则通知第一事务管理框架对所述第一系统所 对应的数据库进行回滚操作;所述第一事务管理框架中还包括回滚模块,用于根据接收到的通知,对所述第一系统所对应的数据库进 行回滚操作。其中,所述提交模块具体包括提交子模块,用于从连接映射对象中获取存在的一个连接,提交所述连接,关闭所述连接;判断子模块,用于判断所述连接映射对象中是否还存在连接,若是,则 返回提交子才莫块,否则,通知设置子模块;设置子模块,用于将第一事务管理框架的事务状态设置为关闭。 应用本专利技术实施例提供的方法和装置,在保证了数据库内事务一致的同 时,降低了业务系本文档来自技高网
...

【技术保护点】
一种保证数据库内事务一致的方法,其特征在于,包括:在第一系统设置第一事务管理框架,在第二系统设置第二事务管理框架,所述方法还包括:  第一系统接收来自第二系统的业务调用请求,调用第一事务管理框架,由所述第一事务管理框架判断设置在第二系统的第二事务管理框架是否开启了事务,若是,则设置事务相关标识为相关,并设置第一事务管理框架自身的事务为开启状态;  第一系统将第二系统所需要的事务交给第二系统进行处理,并且,第一系统对交给第二系统进行处理的事务进行相对应的逻辑事务处理;  第一系统处理完毕后通知第一事务管理框架,由第一事务管理框架判断出不满足提交条件后,结束。

【技术特征摘要】

【专利技术属性】
技术研发人员:张霞纪勇尚忠法胡士元
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:89[中国|沈阳]

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

1