CN101673275A - 一种保证数据库内事务一致的方法及装置 - Google Patents

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

Info

Publication number
CN101673275A
CN101673275A CN200910013200A CN200910013200A CN101673275A CN 101673275 A CN101673275 A CN 101673275A CN 200910013200 A CN200910013200 A CN 200910013200A CN 200910013200 A CN200910013200 A CN 200910013200A CN 101673275 A CN101673275 A CN 101673275A
Authority
CN
China
Prior art keywords
affairs
management framework
transaction management
module
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910013200A
Other languages
English (en)
Other versions
CN101673275B (zh
Inventor
张霞
纪勇
尚忠法
胡士元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neusoft Corp
Original Assignee
Neusoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Neusoft Corp filed Critical Neusoft Corp
Priority to CN200910013200XA priority Critical patent/CN101673275B/zh
Publication of CN101673275A publication Critical patent/CN101673275A/zh
Application granted granted Critical
Publication of CN101673275B publication Critical patent/CN101673275B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

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

Description

一种保证数据库内事务一致的方法及装置
技术领域
本发明涉及数据库事务管理技术领域,特别涉及一种保证数据库内事务一致的方法及装置。
背景技术
现代企业信息化程度已经越来越高,业务也越来越多样化,往往是不同的业务拥有不同的系统,而这些系统通常又需要相互交互,例如在某企业,需要通过电子表单和工作流系统结合进行各种业务审批,在审批过程中甚至于还需要使用第三方独立的业务系统,如财务或人力资源系统等,以便为决策提供参考。在这些系统之间进行操作时,数据的完整性就显得尤为重要.如:电子表单采集的数据和工作流的状态数据,工作流的流程数据和财务系统之间的数据,都需要保证完整才能进行后续处理。
企业的信息化项目,多数都要求能够快速构建,越来越多的开发厂商都使用一些能够提高开发速度基础平台产品,如何保证基础平台与业务系统之间的事务一致性,以及其他提供服务和使用服务的系统之间的事务一致性,是需要解决的主要问题。
当前用来解决系统集成时的事务一致性问题的解决方案是将两种系统的事务框架统一为同一种事务管理框架,要求使用服务的一方必须使用提供服务一方的事务管理框架。例如,基于java实现的流程业务处理框架(JBPM,Java Business Process Management)其是一个开源工作流,在用户使用JBPM做业务开发时,必须使用JBPM提供的jbpmcontext对象,完成数据库操作,并且结束时需要调用jbpmcontext.close()方法将处理完成的事务提交至数据库,从而保证数据库内的事务一致性。
图1是现有的保证数据库内事务一致的实现原理示意图。在图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、缺乏灵活性,要求待开发的业务系统必须与支撑系统所使用的事务管理框架相适应。
发明内容
本发明实施例的目的在于提供一种保证数据库内事务一致的方法及装置,在保证了数据库内事务一致的同时,降低了业务系统与支撑系统的耦合度,且提高了开发的灵活性。
本发明提供了一种保证数据库内事务一致的方法,包括:在第一系统设置第一事务管理框架,在第二系统设置第二事务管理框架,所述方法还包括:
第一系统接收来自第二系统的业务调用请求,调用第一事务管理框架,由所述第一事务管理框架判断设置在第二系统的第二事务管理框架是否开启了事务,若是,则设置事务相关标识为相关,并设置第一事务管理框架自身的事务为开启状态;
第一系统将第二系统所需要的事务交给第二系统进行处理,并且,第一系统对交给第二系统进行处理的事务进行相对应的逻辑事务处理;
第一系统处理完毕后通知第一事务管理框架,由第一事务管理框架判断出不满足提交条件后,结束。
其中,若第一事务管理框架判断出设置在第二系统的第二事务管理框架未开启事务,则所述方法还包括:
第一事务管理框架设置事务相关标识为不相关,并设置自身的事务为开启状态,之后,第一系统将第二系统所需要的事务交给第一系统自身进行处理;
第一系统处理完毕后,再向第一事务管理框架发送通知,由第一事务管理框架判断是否满足提交条件,若是,则将第一系统所处理的逻辑事务提交至与第一系统对应的数据库。
其中,所述设置第一事务管理框架自身的事务为开启状态后,还包括:将事务计数器的值加1。
其中,所述判断是否满足提交条件的步骤包括:
第一事务管理框架判断自身的事务状态为开启,且事务相关标识为不相关,若是,将所述事务计数器的值减1,否则,判定为不满足提交条件;
判断所述事务计数器的值是否为0,若是,则判定为满足提交条件,否则不满足提交条件。
其中,所述将第一系统所处理的逻辑事务提交至与第一系统对应的数据库的步骤包括:
01)从第一事务管理框架所管理的连接映射对象中获取存在的一个连接,提交所述连接后,关闭所述连接;
02)判断所述连接映射对象中是否还存在连接,若是,重复执行步骤01),否则,执行步骤03);
03)第一事务管理框架设置自身的事务状态为关闭。
本发明还提供了一种保证数据库内事务一致的装置,包括:
第一系统,所述第一系统包括:
调用模块,用于接收来自第二系统的业务调用请求,调用设置在第一系统的第一事务管理框架;
移交模块,用于根据通知模块提供的设置信息,将第二系统所需要的事务交给第二系统进行处理,并且,将与交给第二系统进行处理的事务相对应的逻辑事务交给第一系统的处理模块进行处理;
处理模块,用于事务处理完毕后,通知提交模块;
第一事务管理框架,所述第一事务管理框架包括:
第一判断模块,用于根据接收到的调用请求,判断出设置在第二系统的第二事务管理框架开启了事务时,通知设置模块;
设置模块,用于设置事务相关标识为相关,并设置第一事务管理框架自身的事务为开启状态;
通知模块,用于将所述设置模块所设置的信息通知第一系统中的移交模块;
提交模块,用于根据接收到的通知,判断出不满足提交条件时,结束。
其中,所述第一事务管理框架中的第一判断模块,还用于根据接收到的调用请求,判断出设置在第二系统的第二事务管理框架未开启事务时,通知设置模块;
所述设置模块,还用于设置事务相关标识为不相关,并设置第一事务管理框架自身的事务为开启状态;
所述提交模块,还用于判断出满足提交条件时,将第一系统所处理的逻辑事务提交至与第一系统对应的数据库;
所述第一系统中的移交模块,还用于根据通知模块提供的设置信息,将第二系统所需要的事务交给第一系统进行处理。
其中,所述第一事务管理框架中:所述通知模块,还用于将事务相关标识设置为相关的信息通知给计数模块;
所述第一事务管理框架中还包括:
计数模块,用于在事务相关标识为相关时,将事务计数器的值加1。
其中,所述第一系统中还包括:
第二判断模块,用于判断自身的事务处理操作是否正常,若正常,再向第一事务管理框架发送通知,否则通知第一事务管理框架对所述第一系统所对应的数据库进行回滚操作;
所述第一事务管理框架中还包括:
回滚模块,用于根据接收到的通知,对所述第一系统所对应的数据库进行回滚操作。
其中,所述提交模块具体包括:
提交子模块,用于从连接映射对象中获取存在的一个连接,提交所述连接,关闭所述连接;
判断子模块,用于判断所述连接映射对象中是否还存在连接,若是,则返回提交子模块,否则,通知设置子模块;
设置子模块,用于将第一事务管理框架的事务状态设置为关闭。
应用本发明实施例提供的方法和装置,在保证了数据库内事务一致的同时,降低了业务系统与支撑系统的耦合度,且提高了开发的灵活性。并且,由于业务系统与支持系统相对独立,且可以相互通信,因而,如果新开发的业务系统已经采用新的事物管理框架完成了部分开发,不需要对这部分代码再进行修改。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是保证数据库内事务一致的实现原理示意图;
图2是本发明实施例的一种保证数据库内事务一致的方法流程图;
图3是根据本发明实施例的数据库连接对象的关系示意图;
图4是根据本发明实施例的将所处理的事务提交至数据库处理流程图;
图5是根据本发明实施例的回滚操作的处理流程;
图6是根据本发明实施例的保证数据库内事务一致的通信过程示意图;
图7是本发明实施例的一种保证数据库内事务一致的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
解决上述A,B系统的问题需要A系统的事务框架提供一种机制能够与B系统的事务管理框架进行通信,从而了解到B系统的事务管理框架的状态,从而决定A系统是否做全部事务管理。
为此,本发明实施例提供了一种保证数据库内事务一致的方法,参见图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的将第一事务管理框架自身的事务设置为开启状态后,可以进一步包括:将事务计数器的值加1。
需要说明的是,上述判断是否满足提交条件的步骤包括:
a)第一事务管理框架判断自身的事务状态为开启,且事务相关标识为不相关,若是,将所述事务计数器的值减1,否则,判定为不满足提交条件;
b)判断所述事务计数器的值是否为0,若是,则判定为满足提交条件,否则不满足提交条件。
需要说明的是,由于事务计数器的存在,可以实现事务的嵌套管理,即当事务计数器的值减1后不为0时,说明一次事务处理还没有结束,需要继续等待。
应用本发明实施例提供的方法,在保证了数据库内事务一致的同时,降低了业务系统与支撑系统的耦合度,且提高了开发的灵活性。并且,由于支撑系统与业务系统相对独立,且支撑系统中的事务管理框架(如第一系统中的第一事务管理框架)和业务系统中的事务管理框架(如第二系统中的第二事务管理框架)可以相互通信,因而,如果新开发的业务系统已经采用新的事物管理框架完成了部分开发,不需要对这部分代码再进行修改。可见,应用本发明实施例提供的解决方案,通过良好的接口封装,在做系统集成时,能够自动调用接口设置事务相关标识的状态与业务系统所具有的事务框架的通信。满足系统集成时尤其是基础支撑平台与业务系统集成在事务一致性方面的需求。
需要说明的是,当第一系统向第一事务管理框架发送提交通知之前,还可以包括:第一系统判断自身的事务处理操作是否正常,若正常,再向第一事务管理框架发送提交通知,否则通知第一事务管理框架对所述第一系统所对应的数据库进行回滚操作。这里的回滚操作在后面详细说明。
需要说明的是,当第一事务管理框架设置自身的事务为开启状态后,第一事务管理框架中的事务管理器会将第一事务管理框架中所包含的事务对象放到线程相关的映射(MAP)中。
数据库操作是通过与数据库的连接(connection)对象完成操作的,关于数据库连接和事务对象的关系如下所述:事务管理框架中的事务管理器(transactionManager)通过线程相关的事务映射(transactionMap)维护多个线程中的多个事务对象,每个事务对象使用连接映射(connMap)维护着自身使用的多个连接对象。它们的关系如图3所示:
transactionManager为全局唯一的对象,通过调用transactionManager的当前事务(currentTransaction())方法可以获取当前线程相关的事务对象,通过事务对象获取数据库连接,然后根据连接执行数据库操作。具体到图3,其表示为每个TrsactionManager类型的对象包含一个到多个Transaction类型的对象,每个Transaction类型的对象包含一个到多个连接对象。
应用上述连接方式可知,用数据源名称作为关键(key)值,通过map来维护数据中的多个连接,通过线程相关的Map维护多个线程中的多个事务,可以保证数据库中事务的一致性。
参见图4,其是根据本发明实施例的将所处理的事务提交至数据库处理流程图。当满足提交条件时,即第一事务管理框架判断自身的事务状态为开启,事务相关标识为不相关,且事务计数器的值减1后等于0的情况下,图4所示流程具体包括:
步骤401,从连接映射(connMap)对象中获取存在的一个连接;
步骤402,提交所述连接;
步骤403,关闭所述连接;
步骤404,判断所述连接映射对象中是否还存在连接,若是,返回步骤401,否则,执行步骤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数据库。
这样,可以始终保持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、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1、一种保证数据库内事务一致的方法,其特征在于,包括:在第一系统设置第一事务管理框架,在第二系统设置第二事务管理框架,所述方法还包括:
第一系统接收来自第二系统的业务调用请求,调用第一事务管理框架,由所述第一事务管理框架判断设置在第二系统的第二事务管理框架是否开启了事务,若是,则设置事务相关标识为相关,并设置第一事务管理框架自身的事务为开启状态;
第一系统将第二系统所需要的事务交给第二系统进行处理,并且,第一系统对交给第二系统进行处理的事务进行相对应的逻辑事务处理;
第一系统处理完毕后通知第一事务管理框架,由第一事务管理框架判断出不满足提交条件后,结束。
2、根据权利要求1所述的方法,其特征在于,若第一事务管理框架判断出设置在第二系统的第二事务管理框架未开启事务,则所述方法还包括:
第一事务管理框架设置事务相关标识为不相关,并设置自身的事务为开启状态,之后,第一系统将第二系统所需要的事务交给第一系统自身进行处理;
第一系统处理完毕后,再向第一事务管理框架发送通知,由第一事务管理框架判断是否满足提交条件,若是,则将第一系统所处理的逻辑事务提交至与第一系统对应的数据库。
3、根据权利要求1或2所述的方法,其特征在于,所述设置第一事务管理框架自身的事务为开启状态后,还包括:将事务计数器的值加1。
4、根据权利要求3所述的方法,其特征在于,所述判断是否满足提交条件的步骤包括:
第一事务管理框架判断自身的事务状态为开启,且事务相关标识为不相关,若是,将所述事务计数器的值减1,否则,判定为不满足提交条件;
判断所述事务计数器的值是否为0,若是,则判定为满足提交条件,否则不满足提交条件。
5、根据权利要求1所述的方法,其特征在于,所述将第一系统所处理的逻辑事务提交至与第一系统对应的数据库的步骤包括:
01)从第一事务管理框架所管理的连接映射对象中获取存在的一个连接,提交所述连接后,关闭所述连接;
02)判断所述连接映射对象中是否还存在连接,若是,重复执行步骤01),否则,执行步骤03);
03)第一事务管理框架设置自身的事务状态为关闭。
6、一种保证数据库内事务一致的装置,其特征在于,包括:
第一系统,所述第一系统包括:
调用模块,用于接收来自第二系统的业务调用请求,调用设置在第一系统的第一事务管理框架;
移交模块,用于根据通知模块提供的设置信息,将第二系统所需要的事务交给第二系统进行处理,并且,将与交给第二系统进行处理的事务相对应的逻辑事务交给第一系统的处理模块进行处理;
处理模块,用于事务处理完毕后,通知提交模块;
第一事务管理框架,所述第一事务管理框架包括:
第一判断模块,用于根据接收到的调用请求,判断出设置在第二系统的第二事务管理框架开启了事务时,通知设置模块;
设置模块,用于设置事务相关标识为相关,并设置第一事务管理框架自身的事务为开启状态;
通知模块,用于将所述设置模块所设置的信息通知第一系统中的移交模块;
提交模块,用于根据接收到的通知,判断出不满足提交条件时,结束。
7、根据权利要求6所述的装置,其特征在于,
所述第一事务管理框架中的第一判断模块,还用于根据接收到的调用请求,判断出设置在第二系统的第二事务管理框架未开启事务时,通知设置模块;
所述设置模块,还用于设置事务相关标识为不相关,并设置第一事务管理框架自身的事务为开启状态;
所述提交模块,还用于判断出满足提交条件时,将第一系统所处理的逻辑事务提交至与第一系统对应的数据库;
所述第一系统中的移交模块,还用于根据通知模块提供的设置信息,将第二系统所需要的事务交给第一系统进行处理。
8、根据权利要求6或7所述的装置,其特征在于,
所述第一事务管理框架中:所述通知模块,还用于将事务相关标识设置为相关的信息通知给计数模块;
所述第一事务管理框架中还包括:
计数模块,用于在事务相关标识为相关时,将事务计数器的值加1。
9、根据权利要求7所述的装置,其特征在于,
所述第一系统中还包括:
第二判断模块,用于判断自身的事务处理操作是否正常,若正常,再向第一事务管理框架发送通知,否则通知第一事务管理框架对所述第一系统所对应的数据库进行回滚操作;
所述第一事务管理框架中还包括:
回滚模块,用于根据接收到的通知,对所述第一系统所对应的数据库进行回滚操作。
10、根据权利要求6所述的装置,其特征在于,所述提交模块具体包括:
提交子模块,用于从连接映射对象中获取存在的一个连接,提交所述连接,关闭所述连接;
判断子模块,用于判断所述连接映射对象中是否还存在连接,若是,则返回提交子模块,否则,通知设置子模块;
设置子模块,用于将第一事务管理框架的事务状态设置为关闭。
CN200910013200XA 2009-08-11 2009-08-11 一种保证数据库内事务一致的方法及装置 Expired - Fee Related CN101673275B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910013200XA CN101673275B (zh) 2009-08-11 2009-08-11 一种保证数据库内事务一致的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910013200XA CN101673275B (zh) 2009-08-11 2009-08-11 一种保证数据库内事务一致的方法及装置

Publications (2)

Publication Number Publication Date
CN101673275A true CN101673275A (zh) 2010-03-17
CN101673275B CN101673275B (zh) 2012-07-25

Family

ID=42020501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910013200XA Expired - Fee Related CN101673275B (zh) 2009-08-11 2009-08-11 一种保证数据库内事务一致的方法及装置

Country Status (1)

Country Link
CN (1) CN101673275B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306197A (zh) * 2011-09-22 2012-01-04 用友软件股份有限公司 保证跨数据源操作结果一致性的装置和方法
CN102521023A (zh) * 2011-11-21 2012-06-27 华为软件技术有限公司 一种多系统的事务集成处理方法及系统
CN102971711A (zh) * 2010-07-02 2013-03-13 国际商业机器公司 用于处理批工作单元的设备
CN104199976A (zh) * 2014-09-24 2014-12-10 浪潮通用软件有限公司 一种融合原生事务和逻辑事务的方法
CN105446993A (zh) * 2014-07-10 2016-03-30 阿里巴巴集团控股有限公司 跨库事务处理方法及装置
CN107016029A (zh) * 2016-12-13 2017-08-04 阿里巴巴集团控股有限公司 一种业务数据的处理方法、装置及系统
CN107436799A (zh) * 2016-05-26 2017-12-05 阿里巴巴集团控股有限公司 分布式事务一致性实现方法及装置
CN109918178A (zh) * 2019-03-06 2019-06-21 恒生电子股份有限公司 事务提交方法及相关装置
CN110008271A (zh) * 2019-04-04 2019-07-12 航天云网科技发展有限责任公司 基于单数据库的微服务事务提交方法
CN114510495A (zh) * 2022-04-21 2022-05-17 北京安华金和科技有限公司 一种数据库业务数据一致性处理方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1264106C (zh) * 2002-03-30 2006-07-12 中兴通讯股份有限公司 一种统一访问数据库系统的方法
CN101192228B (zh) * 2006-12-01 2011-11-09 阿里巴巴集团控股有限公司 一种数据库交互处理方法及系统
CN101408899B (zh) * 2008-11-21 2010-09-29 北京中企开源信息技术有限公司 一种网站多数据源切换方法和装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102971711A (zh) * 2010-07-02 2013-03-13 国际商业机器公司 用于处理批工作单元的设备
CN102971711B (zh) * 2010-07-02 2016-06-01 国际商业机器公司 用于处理批工作单元的设备及其方法
CN102306197A (zh) * 2011-09-22 2012-01-04 用友软件股份有限公司 保证跨数据源操作结果一致性的装置和方法
CN102521023A (zh) * 2011-11-21 2012-06-27 华为软件技术有限公司 一种多系统的事务集成处理方法及系统
CN105446993A (zh) * 2014-07-10 2016-03-30 阿里巴巴集团控股有限公司 跨库事务处理方法及装置
CN104199976A (zh) * 2014-09-24 2014-12-10 浪潮通用软件有限公司 一种融合原生事务和逻辑事务的方法
CN107436799B (zh) * 2016-05-26 2020-11-03 创新先进技术有限公司 分布式事务一致性实现方法及装置
CN107436799A (zh) * 2016-05-26 2017-12-05 阿里巴巴集团控股有限公司 分布式事务一致性实现方法及装置
CN107016029A (zh) * 2016-12-13 2017-08-04 阿里巴巴集团控股有限公司 一种业务数据的处理方法、装置及系统
CN107016029B (zh) * 2016-12-13 2020-11-06 创新先进技术有限公司 一种业务数据的处理方法、装置及系统
CN109918178A (zh) * 2019-03-06 2019-06-21 恒生电子股份有限公司 事务提交方法及相关装置
CN109918178B (zh) * 2019-03-06 2021-04-30 恒生电子股份有限公司 事务提交方法及相关装置
CN110008271A (zh) * 2019-04-04 2019-07-12 航天云网科技发展有限责任公司 基于单数据库的微服务事务提交方法
CN110008271B (zh) * 2019-04-04 2020-12-15 航天云网科技发展有限责任公司 基于单数据库的微服务事务提交方法
CN114510495A (zh) * 2022-04-21 2022-05-17 北京安华金和科技有限公司 一种数据库业务数据一致性处理方法和系统

Also Published As

Publication number Publication date
CN101673275B (zh) 2012-07-25

Similar Documents

Publication Publication Date Title
CN101673275B (zh) 一种保证数据库内事务一致的方法及装置
US20190213345A1 (en) Method and system for allowing access to developed applications via a multi-tenant on-demand database service
US6775658B1 (en) Notification by business rule trigger control
US6751657B1 (en) System and method for notification subscription filtering based on user role
US6205464B1 (en) System for building optimal commit trees in a distributed transaction processing system
US8555248B2 (en) Business object change management using release status codes
CN106127038B (zh) 一种黑名单的处理方法及系统
US7676831B2 (en) Role-based access control management for multiple heterogeneous application components
US20040176968A1 (en) Systems and methods for dynamically configuring business processes
US9128768B2 (en) Cloud based master data management
US20120198036A1 (en) Cloud based master data management architecture
JP2006528800A (ja) 自己記述型ビジネスオブジェクト
US6725445B1 (en) System for minimizing notifications in workflow management system
CN106354833A (zh) 一种基于b\s架构实现数据管理与共享交换的平台
CN101546311A (zh) 回收站的数据处理方法及数据处理装置
CN101174270A (zh) 访问不同种类的配置管理数据库储存库的方法和装置
CN111651738B (zh) 基于前后端分离架构的细粒度角色权限统一管理方法及电子装置
CN110175822A (zh) 一种设备台账管理方法和系统
US8756205B2 (en) System and method for rule-based data object matching
CN101278309A (zh) 自动管理异构环境中的it资源的系统与方法
US8856155B2 (en) Management of configuration data structures in multi-layer data models
CN1647040A (zh) 用于管理计算机系统的方法和系统
CN102572954B (zh) 一种漫游清算服务调度方法、中间件及系统
US9336257B2 (en) Systems and methods providing a soft exit state for secondary business objects locks
US8170530B2 (en) Managing wireless devices using access control

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20100317

Assignee: Shandong Neusoft System Integration Co.,Ltd.

Assignor: NEUSOFT Corp.

Contract record no.: 2014990000066

Denomination of invention: Method and device for ensuring consistent affairs inside database

Granted publication date: 20120725

License type: Exclusive License

Record date: 20140210

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120725

Termination date: 20210811