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

文档序号:6481035阅读:187来源:国知局
专利名称:一种保证数据库内事务一致的方法及装置的制作方法
技术领域
本发明涉及数据库事务管理技术领域,特别涉及一种保证数据库内事务 一致的方法及装置。
背景技术
现代企业信息化程度已经越来越高,业务也越来越多样化,往往是不同的 业务拥有不同的系统,而这些系统通常又需要相互交互,例如在某企业,需要 通过电子表单和工作流系统结合进行各种业务审批,在审批过程中甚至于还 需要使用第三方独立的业务系统,如财务或人力资源系统等,以便为决策提
供参考。在这些系统之间进行操作时,数据的完整性就显得尤为重要.如:电子 表单采集的数据和工作流的状态数据,工作流的流程数据和财务系统之间的 数据,都需要保证完整才能进行后续处理。
企业的信息化项目,多数都要求能够快速构建,越来越多的开发厂商都 使用 一些能够提高开发速度基础平台产品,如何保证基础平台与业务系统之 间的事务一致性,以及其他提供服务和使用服务的系统之间的事务一致性, 是需要解决的主要问题。
当前用来解决系统集成时的事务一致性问题的解决方案是将两种系统的 事务框架统一为同一种事务管理框架,要求使用服务的一方必须使用提供服 务一方的事务管理框架。例如,基于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。 其中,所述第一系统中还包括
第二判断模块,用于判断自身的事务处理操作是否正常,若正常,再向 第一事务管理框架发送通知,否则通知第一事务管理框架对所述第一系统所 对应的数据库进行回滚操作;
所述第一事务管理框架中还包括
回滚模块,用于根据接收到的通知,对所述第一系统所对应的数据库进 行回滚操作。其中,所述提交模块具体包括
提交子模块,用于从连接映射对象中获取存在的一个连接,提交所述连
接,关闭所述连接;
判断子模块,用于判断所述连接映射对象中是否还存在连接,若是,则 返回提交子才莫块,否则,通知设置子模块;
设置子模块,用于将第一事务管理框架的事务状态设置为关闭。 应用本发明实施例提供的方法和装置,在保证了数据库内事务一致的同 时,降低了业务系统与支撑系统的耦合度,且提高了开发的灵活性。并且, 由于业务系统与支持系统相对独立,且可以相互通信,因而,如果新开发的 业务系统已经釆用新的事物管理框架完成了部分开发,不需要对这部分代码 再进行修改。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对 实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下 面描述中的附图仅仅是本发明的 一些实施例,对于本领域普通技术人员来 讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 图1是保证数据库内事务一致的实现原理示意图; 图2是本发明实施例的一种保证数据库内事务一致的方法流程图; 图3是根据本发明实施例的数据库连接对象的关系示意图; 图4是根据本发明实施例的将所处理的事务提交至数据库处理流程图; 图5是根据本发明实施例的回滚操作的处理流程; 图6是根据本发明实施例的保证数据库内事务一致的通信过程示意图; 图7是本发明实施例的 一种保证数据库内事务一致的装置结构示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作
9出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
解决上述A, B系统的问题需要A系统的事务框架提供一种机制能够与 B系统的事务管理框架进行通信,从而了解到B系统的事务管理框架的状 态,从而决定A系统是否^f故全部事务管理。
为此,本发明实施例提供了一种保证数据库内事务一致的方法,参见图 2,具体包括在图2所示流程实施前,包括在第一系统设置第一事务管 理框架,在第二系统设置第二事务管理框架,这里,第一系统为支撑系统, 第二系统为业务系统。图2所示流程具体包括
步骤201,第一系统接收来自第二系统的业务调用请求,调用第一事务 管理框架;
步骤202,第一事务管理框架接收到第一系统的调用后,根据 isReference接口方法判断第二事务管理框架是否开启了事务,若开启,则执 行步骤203,否则执行步骤207;
步骤203,第一事务管理框架设置事务相关标识(isReference )为相关 (true),并且,设置第一事务管理框架自身的事务为开启状态;
步骤204,第一系统将第二系统所需要的事务交给第二系统进行处理, 并且,第 一 系统对交给第二系统进行处理的事务进行相对应的逻辑事务处 理;
步骤205,第一系统处理完毕后通知第一事务管理框架; 步骤206,第一事务管理框架判断出不满足提交条件后,结束; 步骤207,第一事务管理框架设置事务相关标识(isReference )为不相关 (false),并且,设置第一事务管理框架自身的事务为开启状态;
步骤208,第一系统将第二系统所需要的事务交给第一系统自身进行处
理,
步骤209,第一系统处理完毕后,再向第一事务管理框架发送提交通 知;之后执行步骤206。
步骤210,第一事务管理框架判断是否满足提交条件,若是,执行步骤 211,否则结束;
步骤211,第一事务管理框架将第一系统所处理的事务提交至与第一系统对应的数据库,结束。
需要说明的是,上述步骤203和步骤207的将第一事务管理框架自身的 事务设置为开启状态后,可以进一步包括将事务计数器的值加l。 需要说明的是,上述判断是否满足提交条件的步骤包括
a) 第一事务管理框架判断自身的事务状态为开启,且事务相关标识为不 相关,若是,将所述事务计数器的值减1,否则,判定为不满足提交条件;
b) 判断所述事务计数器的值是否为0,若是,则判定为满足提交条件, 否则不满足提交条件。
需要说明的是,由于事务计数器的存在,可以实现事务的嵌套管理,即 当事务计数器的值减1后不为0时,说明一次事务处理还没有结束,需要继 续等待。
应用本发明实施例提供的方法,在保证了数据库内事务一致的同时,降 低了业务系统与支撑系统的耦合度,且提高了开发的灵活性。并且,由于支 撑系统与业务系统相对独立,且支撑系统中的事务管理框架(如第一系统中 的第一事务管理框架)和业务系统中的事务管理框架(如第二系统中的第二 事务管理框架)可以相互通信,因而,如果新开发的业务系统已经采用新的 事物管理框架完成了部分开发,不需要对这部分代码再进行修改。可见,应 用本发明实施例提供的解决方案,通过良好的接口封装,在做系统集成时, 能够自动调用接口设置事务相关标识的状态与业务系统所具有的事务框架的 通信。满足系统集成时尤其是基础支撑平台与业务系统集成在事务一致性方 面的需求。
需要说明的是,当第一系统向第一事务管理框架发送提交通知之前,还 可以包括第一系统判断自身的事务处理操作是否正常,若正常,再向第一 事务管理框架发送提交通知,否则通知第一事务管理框架对所述第一系统所 对应的数据库进行回滚操作。这里的回滚操作在后面详细说明。
需要说明的是,当第一事务管理框架设置自身的事务为开启状态后,第 一事务管理框架中的事务管理器会将第一事务管理框架中所包含的事务对象 放到线程相关的映射(MAP)中。
数据库操作是通过与数据库的连接(connection )对象完成操作的,关于
ii数据库连接和事务对象的关系如下所述事务管理框架中的事务管理器(transactionManager)通过线程相关的事务映射(transactionMap)维护多个线程中的多个事务对象,每个事务对象使用连接映射(connMap)维护着自身使用的多个连接对象。它们的关系如图3所示
transactionManager为全局 舉一的?于象,通过调用transactionManager的当前事务(currentTransaction())方法可以获取当前线程相关的事务对象,通过事务对象获取数据库连接,然后根据连接执行数据库操作。具体到图3,其表示为每个TrsactionManager类型的对象包含一个到多个Transaction类型的对象,每个Transaction类型的对象包含一个到多个连接对象。
应用上述连接方式可知,用数据源名称作为关键(key)值,通过map来维护数据中的多个连接,通过线程相关的Map维护多个线程中的多个事务,可以保证数据库中事务的一致性。
参见图4,其是根据本发明实施例的将所处理的事务提交至数据库处理流程图。当满足提交条件时,即第一事务管理框架判断自身的事务状态为开启,事务相关标识为不相关,且事务计数器的值减l后等于0的情况下,图4所示流程具体包括
步骤401,从连接映射(connMap)对象中获取存在的一个连接;
步骤402,提交所述连接;
步骤403,关闭所述连接;
步骤404,判断所述连接映射对象中是否还存在连接,若是,返回步骤401,否则,4丸行步骤405;
步骤405 ,第 一事务管理框架设置自身的事务状态为关闭即false状态,结束。
参见图5,其是根据本发明实施例的回滚操作的处理流程,具体包括
步骤501,第一事务管理框架判断自身的事务状态是否为开启,若是,则执行步骤502,否则结束;
步骤502,第一事务管理框架判断事务相关标识(isReference )是否为相关(true),若是,则执行步骤507,否则,执行步骤503;
步骤503,从连接映射(connMap)对象中获取存在的一个连接;步骤504,将该连接所涉及的一个或多个对数据库的若千操作进行回滚
操作;
步骤505,关闭该已回滚的连接;
步骤506,判断所述连接映射(connMap)对象中是否还存在连接,若是,返回步骤503,否则,执行步骤507;
步骤507,设置第一事务管理框架自身的事务状态为关闭,结束。参见图6,其是才艮据本发明实施例的保证数据库内事务一致的通信过程示意图,A系统和B系统集成到一起,均位于服务器端,B系统为业务系统,A系统为支持系统,且A、 B系统内均设置有事务管理框架,B系统负责控制X、 Y数据库,A系统负责控制Z数据库。为描述方便,在此,将A系统内的事务管理框架称为第 一事务管理框架,将B系统内的事务管理框架称为第二事务管理框架。
若B系统需要使用A系统提供的服务,则向A系统发送调用请求,A系统接收到调用请求后会首先调用第一事务管理框架,由该第一事务管理框架与第二事务管理框架进行通信,以确定是由A系统来处理B系统所需要的相关事务,还是由B系统来处理其需要的相关事务
若由B系统处理其需要的相关事务,则当B系统处理完毕后,通知A系统,A系统将其处理的与B系统所需要的相关事务对应的逻辑事务处理结果,通过第一事务管理框架提交至Z数据库,相应的,B系统通过第二事务管理框架将其处理的事务结果提交至X、 Y数据库;
若由A系统来处理B系统所需要的相关事务,则当A系统处理完毕后,通过第一事务管理框架将事务的处理结果^_交至Z凄t据库。
这样,可以始终保持X、 Y数据库内的事务与Z数据库内的事务一致,并且由于X、 Y数据库都由B系统控制,因而也保证了X、 Y数据库内的事务的一致性。
需要说明的是,本发明实施例中不再详细说明第二系统(即B系统)及第二系统中的第二事务管理框架是如何提交事务到第二系统所对应的数据库的,因为其具体实现过程与第一系统类似。本发明实施例还提供了一种保证数据库内事务一致的装置,参见图7,
包括第一系统701和第一事务管理框架702,其中 所述第一系统701包括
调用模块7011,用于接收来自第二系统的业务调用请求,调用设置在 第一系统的第一事务管理框架;
移交模块7012,用于根据通知模块提供的设置信息,将第二系统所需 要的事务交给第二系统进行处理,并且,将与交给第二系统进行处理的事务 相对应的逻辑事务交给第 一 系统的处理模块进行处理;
处理模块7013,用于事务处理完毕后,通知提交模块7024;
所述第 一事务管理框架包括
第一判断模块7021,用于根据接收到的调用请求,判断出设置在第二 系统的第二事务管理框架开启了事务时,通知设置模块;
设置模块7022,用于设置事务相关标识为相关,并设置第一事务管理 框架自身的事务为开启状态;
通知模块7023,用于将所述设置模块所设置的信息通知第一系统中的 移交模块;
提交模块7024,用于根据接收到的通知,判断出不满足提交条件时, 结束。
上述第一判断模块7021,还用于根据接收到的调用请求,判断出设置 在第二系统的第二事务管理框架未开启事务时,通知设置模块2022;
所述设置模块7022,还用于设置事务相关标识为不相关,并设置第一 事务管理框架自身的事务为开启状态,
上述提交模块7024,还用于判断出满足提交条件时,将第一系统所处 理的逻辑事务提交至与第 一 系统对应的数据库;
所述移交模块7012,还用于根据通知模块提供的设置信息,将第二系 统所需要的事务交给第 一 系统进行处理。
上述第一事务管理框架中所述通知模块7023,还用于将事务相关标 识设置为相关的信息通知给计数模块;
所述第一事务管理框架702中还包括计数模块7025,用于在事务相关标识为相关时,将事务计数器的值加1。
上述第一系统701中还包括
第二判断模块7014,用于判断自身的事务处理操作是否正常,若正 常,再向第一事务管理框架发送通知,否则通知第一事务管理框架对所述第 一系统所对应的数据库进行回滚操作;
所述第 一事务管理框架中还包括
回滚模块7015,用于根据接收到的通知,对所述第一系统所所对应的 数据库进行回滚操作。
上述提交模块7024可以具体包括
提交子模块,用于从连接映射对象中获取存在的一个连接,提交所述连 接,关闭所述连接;
判断子模块,用于判断所述连接映射对象中是否还存在连接,若是,则 返回提交子模块,否则,通知设置子模块;
设置子模块,用于将第一事务管理框架的事务状态设置为关闭。
应用本发明实施例提供的装置,在保证了数据库内事务一致的同时,降 低了业务系统与支撑系统的耦合度,且提高了开发的灵活性。并且,由于业 务系统与支持系统相对独立,且可以相互通信,因而,如果新开发的业务系 统已经采用新的事物管理框架完成了部分开发,不需要对这部分代码再进行 修改。
对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较 简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来 将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示 这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语"包 括"、"包含,,或者其任何其他变体意在涵盖非排他性的包含,从而使得包括 一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没 有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所 固有的要素。在没有更多限制的情况下,由语句"包括一个......"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的 相同要素。
骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机
可读取存储介质中,这里所称得的存储介质,如ROM/RAM、磁碟、光盘
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均 包含在本发明的保护范围内。
权利要求
1、一种保证数据库内事务一致的方法,其特征在于,包括在第一系统设置第一事务管理框架,在第二系统设置第二事务管理框架,所述方法还包括第一系统接收来自第二系统的业务调用请求,调用第一事务管理框架,由所述第一事务管理框架判断设置在第二系统的第二事务管理框架是否开启了事务,若是,则设置事务相关标识为相关,并设置第一事务管理框架自身的事务为开启状态;第一系统将第二系统所需要的事务交给第二系统进行处理,并且,第一系统对交给第二系统进行处理的事务进行相对应的逻辑事务处理;第一系统处理完毕后通知第一事务管理框架,由第一事务管理框架判断出不满足提交条件后,结束。
2、 根据权利要求1所述的方法,其特征在于,若第一事务管理框架判 断出设置在第二系统的第二事务管理框架未开启事务,则所述方法还包括第一事务管理框架设置事务相关标识为不相关,并设置自身的事务为开 启状态,之后,第一系统将第二系统所需要的事务交给第一系统自身进行处 理;第一系统处理完毕后,再向第一事务管理框架发送通知,由第一事务管 理框架判断是否满足提交条件,若是,则将第一系统所处理的逻辑事务提交 至与第 一 系统对应的数据库。
3、 根据权利要求1或2所述的方法,其特征在于,所述设置第一事务管 理框架自身的事务为开启状态后,还包括将事务计数器的值加l。
4、 根据权利要求3所述的方法,其特征在于,所述判断是否满足提交 条件的步骤包括第一事务管理框架判断自身的事务状态为开启,且事务相关标识为不相 关,若是,将所述事务计数器的值减1,否则,判定为不满足提交条件;判断所述事务计数器的值是否为0,若是,则判定为满足提交条件,否 则不满足提交条件。
5、 根据权利要求1所述的方法,其特征在于,所述将第一系统所处理 的逻辑事务提交至与第 一 系统对应的数据库的步骤包括01)从第一事务管理框架所管理的连接映射对象中获取存在的一个连接,提交所述连接后,关闭所述连接;02) 判断所述连接映射对象中是否还存在连接,若是,重复执行步骤 01),否则,#1行步骤03);03) 第一事务管理框架设置自身的事务状态为关闭。
6、 一种保证数据库内事务一致的装置,其特征在于,包括 第一系统,所述第一系统包括调用模块,用于接收来自第二系统的业务调用请求,调用设置在第一系 统的第一事务管理框架;移交模块,用于根据通知模块提供的设置信息,将第二系统所需要的事 务交给第二系统进行处理,并且,将与交给第二系统进行处理的事务相对应 的逻辑事务交给第 一 系统的处理模块进行处理;处理模块,用于事务处理完毕后,通知提交模块;第一事务管理框架,所述第一事务管理框架包括 第一判断模块,用于根据接收到的调用请求,判断出设置在第二系统的 第二事务管理框架开启了事务时,通知设置模块;设置模块,用于设置事务相关标识为相关,并设置第一事务管理框架自 身的事务为开启状态;通知模块,用于将所述设置模块所设置的信息通知第 一 系统中的移交模块;提交模块,用于根据接收到的通知,判断出不满足提交条件时,结束。
7、 根据权利要求6所述的装置,其特征在于,所述第 一事务管理框架中的第 一判断模块,还用于根据接收到的调用请 求,判断出设置在第二系统的第二事务管理框架未开启事务时,通知设置模 块;所述设置模块,还用于设置事务相关标识为不相关,并设置第一事务管 理框架自身的事务为开启状态;所述提交模块,还用于判断出满足提交条件时,将第一系统所处理的逻辑事务提交至与第 一 系统对应的数据库;所述第一系统中的移交模块,还用于根据通知模块提供的设置信息,将 第二系统所需要的事务交给第 一 系统进行处理。
8、 根据权利要求6或7所述的装置,其特征在于, 所述第一事务管理框架中所述通知^f莫块,还用于将事务相关标识设置为相关的信息通知给计数;漠块;所述第一事务管理框架中还包括计数;f莫块,用于在事务相关标识为相关时,将事务计数器的值加l。
9、 根据权利要求7所述的装置,其特征在于, 所述第一系统中还包括第二判断模块,用于判断自身的事务处理操作是否正常,若正常,再向 第一事务管理框架发送通知,否则通知第一事务管理框架对所述第一系统所 对应的数据库进行回滚操作;所述第一事务管理框架中还包括回滚模块,用于根据接收到的通知,对所述第一系统所对应的数据库进 行回滚操作。
10、 根据权利要求6所述的装置,其特征在于,所述提交模块具体包括提交子模块,用于从连接映射对象中获取存在的一个连接,提交所述连 接,关闭所述连接;判断子模块,用于判断所述连接映射对象中是否还存在连接,若是,则 返回提交子模块,否则,通知设置子模块;设置子模块,用于将第 一事务管理框架的事务状态设置为关闭。
全文摘要
本发明公开了一种保证数据库内事务一致的方法及装置,所述方法包括第一系统接收来自第二系统的业务调用请求,调用第一事务管理框架,由所述第一事务管理框架判断设置在第二系统的第二事务管理框架是否开启了事务,若是,则设置事务相关标识为相关,并设置第一事务管理框架自身的事务为开启状态;第一系统将第二系统所需要的事务交给第二系统进行处理,并且,第一系统对交给第二系统进行处理的事务进行相对应的逻辑事务处理;第一系统处理完毕后通知第一事务管理框架,由第一事务管理框架判断出不满足提交条件后,结束。应用本发明,在保证了数据库内事务一致的同时,降低了业务系统与支撑系统的耦合度,且提高了开发的灵活性。
文档编号G06F17/30GK101673275SQ200910013200
公开日2010年3月17日 申请日期2009年8月11日 优先权日2009年8月11日
发明者尚忠法, 霞 张, 勇 纪, 胡士元 申请人:东软集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1