CN104094228B - 用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法 - Google Patents
用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法 Download PDFInfo
- Publication number
- CN104094228B CN104094228B CN201380008052.7A CN201380008052A CN104094228B CN 104094228 B CN104094228 B CN 104094228B CN 201380008052 A CN201380008052 A CN 201380008052A CN 104094228 B CN104094228 B CN 104094228B
- Authority
- CN
- China
- Prior art keywords
- affairs
- explorer
- resource
- leave
- decisive
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提供用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法。为了在处理二阶段事务时支持消除中间层事务日志(TLOG),中间层事务型环境中的至少一个资源管理器可被指定为“决定性资源”。事务管理器可在决定性资源之前准备在中间层事务型系统中的所有其它的资源管理器。此外,事务管理器可依赖于由决定性资源为了恢复事务提供的要提交的未完成事务的列表。事务管理器可提交匹配从决定性资源返回的存疑事务的列表的、从资源管理器返回的存疑事务。否则,事务管理器可回滚存疑事务。
Description
版权声明:
本专利文件公开的一部分包含受到版权保护的材料。版权所有人不反对任何人传真复制专利文件或专利公开,只要它出现在专利和商标局的专利文件或记录中,但在其他方面无论如何保留所有版权权利。
技术领域
本发明一般涉及诸如中间件的计算机系统和软件,特别是涉及事务型中间件。
背景技术
事务型中间件系统或面向事务的中间件包括可处理组织内的各种事务的企业应用服务器。伴随诸如高性能网络和多处理器计算机的新技术的开发,需要进一步提高事务型中间件的性能。一般存在本发明的实施例意在针对的领域。
发明内容
提供用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法。为了在处理二阶段事务时支持消除中间层事务日志(TLOG),中间层事务型环境中的至少一个资源管理器可被指定为“决定性(determiner)资源”。事务管理器可在决定性资源之前准备在中间层事务型系统中的所有其它的资源管理器。此外,事务管理器可依赖于由决定性资源为了恢复事务而提供的要被提交的未完成事务的列表。事务管理器可提交匹配从决定性资源返回的存疑事务的列表的、从资源管理器返回的存疑事务。否则,事务管理器可回滚存疑事务。
对于本领域技术人员来说,当参照附图阅读各种实施例的以下详细描述时,本发明的其它目的和优点将变得十分明显。
附图说明
图1表示根据本发明的实施例的事务型环境的示图。
图2表示在事务型中间件机器环境中支持二阶段提交的示图。
图3表示在事务型中间件机器环境中恢复存疑事务的示图。
图4表示根据本发明的实施例的用于在事务型中间件机器环境中支持用于处理事务的二阶段提交(2PC)调用的严格定序的示图。
图5表示根据本发明的实施例的用于在不使用事务日志(TLOG)的情况下恢复全局事务的示图。
图6是根据本发明的实施例的在不使用事务日志(TLOG)的情况下恢复二阶段提交事务的示例性的流程图。
具体实施方式
在附图中作为例子而不是限制而图示本发明,在附图中,类似的附图标记表示类似的要素。应当注意,在本公开中提及的“一个”、“一种”或“一些”实施例未必指的是同一实施例,并且,这种提及意味着至少一个。
以下的本发明的描述使用Tuxedo环境作为事务型中间件机器环境的例子。对于本领域技术人员来说,很显然,可没有限制地使用其它类型的事务型中间件机器环境。
这里描述的是用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法。为了在处理二阶段事务时支持消除中间层事务日志(TLOG),中间层事务型环境中的至少一个资源管理器可被指定为“决定性资源”。事务管理器可在决定性资源之前准备在中间层事务型系统中的所有其它的资源管理器。此外,事务管理器可依赖于由决定性资源为了恢复事务提供的要被提交的未完成事务的列表。事务管理器可提交匹配从决定性资源返回的存疑事务的列表的、从资源管理器返回的存疑事务。否则,事务管理器可回滚(rollback)存疑事务。
事务型环境和全局事务
图1表示根据本发明的实施例的事务型环境的示图。如图1所示,事务型环境100可包含最终用户101、应用程序102、一个或更多个事务管理器(TM)103、多个资源管理器(RM)104~106以及一个或更多个持久性存储区,例如,数据库110。
根据本发明的一个实施例,应用程序102可规定构成事务的动作。如图所示,应用程序102与事务管理器103通信以开始、提交或中止事务,并且,事务管理器103可向应用程序102送回事务的开始、结束和部署。此外,应用程序102可为可与多个资源管理器(RM)104~106交换事务信息的事务管理器103限定事务边界。另外,应用程序102可经由嵌入结构化查询(SQL)与多个资源管理器104~106通信以完成有用的工作。
多个资源管理器104~106可提供对例如为数据库110的持久性存储区的访问。根据本发明的实施例,多个资源管理器104~106可实现XA接口,以对持久性存储区透明地处理数据库连接和断开。XA接口可基于描述事务协调、提交和恢复的协议的规范。参与事务的XA资源可包含XA资源管理器和后端持久性存储区。
根据本发明的各种实施例,事务型系统可支持可在多于一个的服务器上执行的全局事务,并且能够访问来自多于一个的资源管理器的数据。
全局事务可被视为由原子性、一致性、隔离性和持续性(ACID)这四种性能表征的特定的一系列的操作。全局事务可以是具有以下的特征的工作的逻辑单位:
·所有部分要么成功要么没有影响。
·执行正确地将资源从一个一致状态转换成另一个一致状态的操作。
·虽然同一事务中的其他处理可访问数据,但中间结果可能对于其他交易是不能访问的。
·任何类型的失败不能改变完成的序列的所有效果。
并且,全局事务可包含几个局部事务,每个局部事务访问单个资源管理器。局部事务可访问单个数据库或文件,并且可被负责执行该相异的数据库处的更新的同时控制和原子性的资源管理器控制。给定的局部事务可能在完成其访问上是成功的或者不成功的。
另外,事务管理器103可向事务型环境100中的不同的事务分配全局事务标识符(GTRID)。事务管理器103可监视它们的进程,并且负责确保事务完成并提供失败恢复。另外,事务管理器103可经由XA接口与多个资源管理器104~105通信,以交换事务信息,诸如向资源管理器104~105发送二阶段提交调用。
二阶段提交(2PC)
二阶段提交(2PC)协议可被用于执行诸如松散耦合的全局事务的事务。二阶段提交协议(2PC)可包含准备阶段和提交阶段。在准备阶段中,协调事务管理器(TM)指示参与资源管理器(RM)对提交或中止事务采取必要的步骤。在提交阶段中,事务管理器(TM)基于准备阶段的结果决定是提交还是中止事务。
图2表示在事务型中间件机器环境中支持二阶段提交的示图。如图2所示,事务型环境200可包括支持各种事务的执行的事务管理器201和管理一个或更多个例如为数据库205的数据源的一个或更多个资源管理器202~204。
例如,事务管理器201可执行包含事务分支A211、事务分支B212和事务分支C213的事务,每个事务分支可分别针对资源管理器202~204被执行。如果任何分支在事务中失败,那么事务管理器201可帮助资源管理器202~204决定是提交还是回滚事务。
如图2所示,事务管理器201可在所有三个分支上向资源管理器202~204发送准备指令(步骤1、2和3)。在资源管理器202~204返回“OK”表决(步骤4、5和6)之后,事务管理器201可将事务日志写入到数据库205(步骤7)。
事务日志(TLOG)可被写入到文件或数据库,使得事务管理器201可在任何分支在提交阶段期间失败的情况下具有足够的信息以恢复事务。
然后,事务管理器201可指示资源管理器202~204提交所有的三个分支(步骤8、9和10)。资源管理器202~204可在成功完成提交阶段之后通知事务管理器201(步骤11、12和13)。
基于事务日志(TLOG)的事务恢复
根据本发明的一个实施例,事务日志(TLOG)可保持用于通过事务管理器提交事务的决定。例如,TLOG可存储资源检查点记录,该资源检查点记录可被事务管理器持久保存,以使其能够跟踪不同的参与XA资源。
事务可在事务管理器在准备阶段之后从所有事务分支接收成功表决之后被写入TLOG。TLOG中的事务记录可至少包含事务标识符(XID),该事务标识符又包含由事务管理器分配的GTRID和执行事务的资源管理器分配的本地XID。
此外,TLOG可保持可被标记为要被提交的进行中事务的状态的记录。TLOG对于在系统崩溃之后恢复存疑事务是有益的,这些存疑事务是已被准备但还没有在中间层事务型系统中提交的事务。在不恢复存疑事务的情况下,系统可能在崩溃之后处于不正确和不一致的状态中。
例如,如果系统在二阶段提交事务期间失败,那么对一个后端数据存储区的更新可能已被提交,但是在同一事务中对另一数据存储区的更新还没有被指令提交,即,数据存储区的更新仍是未决的。一旦系统的失败部分被重新启动,保持未决的更新的数据存储区就可能不能获知更新是否应被提交还是回滚。
图3表示在事务型中间件机器环境中恢复存疑事务的示图。如图3所示,事务型中间件机器环境300包含事务管理器301和多个资源管理器302~304以及持久性存储区即数据库305。
事务管理器301可通过读取TLOG自动确定全局事务是否存疑(步骤1)。然后,事务管理器301可轮询参与资源管理器302~304的有关后端数据存储区。参与资源管理器302~304中的每一个可返回存疑事务的列表,这些存疑事务是事务管理器301不知道是要回滚它还是要提交的事务(步骤2、4和6)。
此外,事务管理器301可匹配每个存疑事务与TLOG,并且前进以在不同的资源管理器302~304上提交或回滚存疑事务(步骤3、5和7)。例如,当在TLOG中出现存疑事务时,XAResource.commit()可被调用,以向在TLOG中指定的资源管理器提交存疑事务。另一方面,当事务不处于TLOG中,即在崩溃之前还没有在事务上做出提交决定时,XAResource.rollback()可被调用,以基于事务标识符(XID)在资源管理器上回滚它。
如图3所示,事务可在资源管理器302被准备,并且系统在资源管理器302可向事务管理器301发送成功表决之前崩溃。然后,事务管理器301可能不能从所有的事务分支接收成功表决,并因此不在TLOG中记录事务。因此,事务管理器301可在它们的相应的资源管理器302~304上回滚所有的分支事务。因此,通过使用这种一致且可预测的事务恢复方法,事务管理器可避免一些分支被提交而一些分支被回滚的混合的启发式完成。
避免需要事务管理器恢复日志
在事务型环境中,为了进行恢复并且确保ACID性能是二阶段提交事务管理器的设计要求,恢复信息可持久保存在稳定存储设备中。
例如,(XA)二阶段记录算法可包括以下步骤:
1.应用在事务中使用多个XA资源并且对于事务发出提交。
2.事务管理器在所有XA资源参与方上发出XAResource.prepare。
3.事务管理器持久保存包含事务的格式id和全局事务id的事务日志。
4.事务管理器在所有XA资源参与方上发出XAResource.commit。
5.事务管理器(一般懒惰地、成批地,等等)清除/删除事务记录。
6.在失败的情况下,持久保存的事务记录被与从在所有涉及的资源管理器上做出的XAResource.recover调用返回的存疑Xid进行匹配,并因此进行通过提交或回滚的恢复。
需要将恢复信息连同对于资源管理器的实际协议网络调用持久保存在稳定存储设备中可能增加二阶段提交事务的执行成本。它还可承担由于高度可用稳定存储设备所需要的共享文件系统或数据库存储设备导致的资产成本以及由于该存储设备的管理导致的管理成本。这些成本在需要(同步)复制及其重新管理的站点大范围灾难恢复的情况下会升级。因此,避免需要事务管理器恢复日历与现有的系统相比可提供明显的改善。
根据本发明的一个实施例,通过使用以下的技术,通过基于二阶段提交调用的严格定序和一个资源参与方被分类作为恢复的决定性来提供事务恢复和ACID性能,能够避免对事务日志的需要:
1.应用在事务中使用多个XA资源,并且对事务发出提交。
2.某些资源可被配置为被指定为事务结果的“决定性”的。如果没有这种资源被配置,那么事务系统将提名一个并在配置中持久保存它。
3.无论什么时候在二阶段事务中首次使用资源或者首次使用资源的新组合,都通过事务处理子系统自动地捕获该组合并且将其持久保存在配置中。该配置持久保存紧挨着对这种事务发出的首次准备之前发生。如果这种配置改变失败,那么事务可被回滚。虽然不是必须的,但该步骤提供进一步的优化,原因是它减少在恢复期间需要XAResource.recover调用的资源组。
4.事务管理器放弃(forgo)任何事务记录。
5.事务管理器在所有XA资源参与方上发出XAResource.prepare,最后准备“决定性”资源。
6.事务管理器在所有XA资源参与方上发出XAResource.commit,最后提交“决定性”资源。
7.在失败的情况下,在配置中的所有非“决定性”资源上进行XAResource.recover扫描,并且,存疑Xid被与从决定性资源的XAResource.recover返回的存疑Xid相匹配。因此,如果在决定性列表中存在匹配/现有Xid,则通过提交恢复,或者,如果不存在,则通过回滚恢复。
8.在事务系统的干净关闭或重新开始期间,配置以不在启动期间进行不必要的恢复调用和处理的方式被清除/标记。
在以下的部分中更详细地描述上述的技术。
二阶段提交(2PC)调用的严格定序
根据本发明的实施例,系统可基于二阶段提交调用的严格定序消除处理事务中的中间层事务日志(TLOG)。
图4表示根据本发明的实施例的用于在事务型中间件机器环境中支持用于处理事务的二阶段提交(2PC)调用的严格定序的示图。如图4所示,可在包含事务管理器(TM)401、多个资源管理器(RM)402~404的中间层事务型系统400中支持全局事务410。资源管理器(RM)402~403参与全局事务410,而资源管理器404不参与全局事务410。根据本发明的实施例,事务410不跨过多个事务管理器。
事务管理器401可将例如为与数据库405相关联的资源管理器(RM)402的资源指定为决定性资源(步骤1)。可在用于事务机器环境的配置中持久保存对资源管理器(RM)402为决定性资源的指定。当在配置中在事务中没有决定性资源被指定时,事务管理器401可提名数据源为决定性资源,并在配置中持久保存它。另外,决定性资源402可以是数据库以外的源,诸如消息队列。
此外,无论什么时候在处理二阶段事务410时首次使用资源或者首次使用资源的新组合,都可自动地通过事务管理器401捕获新资源或新资源组合并且将其持久保存在诸如配置文件的配置中。该配置持久保存可在紧挨着对二阶段事务发出首次准备请求之前发生。如果该配置改变失败,那么事务410可被回滚。
根据本发明的实施例,事务管理器401可确保对于二阶段事务410,在所有参与资源管理器中最后准备和提交例如为资源管理器402的决定性资源。
如图4所示,事务管理器401可在准备决定性资源(步骤4)之前首先准备资源管理器(RM)403(步骤2)。在从参与资源管理器(RM)402~403接收到“OK”表决(步骤3和5)之后,事务管理器401可提交资源管理器(RM)403(步骤6),然后是决定性资源(步骤8)。事务可在事务管理器401从资源管理器402~403中的每一个接收到成功指示(步骤7和9)之后完成。
因此,事务管理器401可放弃资源/检查点的任何记录,包含在成功处理准备阶段之后写入TLOG。系统可在允许中间层事务型系统400恢复事务410的同时改善事务的性能。
在不使用TLOG的情况下恢复全局事务
图5表示根据本发明的实施例的用于在不使用事务日志(TLOG)的情况下恢复全局事务的示图。如图5所示,可在包含事务管理器(RM)501、多个资源管理器(RM)502~504的中间层事务型系统500中支持全局事务510。
当事务510需要被恢复时,事务管理器501可尝试例如通过在决定性资源502上放置XA_recover()调用恢复(步骤1)。事务管理器501可从决定性资源502接收存疑事务(准备但未提交的事务)的列表(步骤2)。此外,事务管理器501可使用存疑事务的列表以构建/重新构建全局事务表(GTT506)(步骤3)。
根据本发明的一个实施例,当在二阶段提交事务中成功准备决定性资源502时,存疑事务的列表可与事务管理器501已经指示参与资源管理器502~503提交的中间层未完成事务相同。
然后,事务管理器501可尝试例如通过在包含参与资源管理器503(步骤9)和非参与资源管理器504(步骤10)在内的事务型中间层系统500中的所有其它资源管理器上放置XA_recover()调用恢复(步骤10)。
例如,事务管理器501可从参与资源管理器503接收存疑事务的列表(步骤5)。事务管理器501可匹配列表中的存疑事务与GTT506表以产生恢复列表(步骤6和7)。然后,事务管理器501可基于恢复列表恢复参与资源管理器503(步骤8)。例如,事务管理器501可提交匹配GTT506表的存疑事务,并且可回滚不匹配GTT506表的存疑事务。
以上过程可在作为非参与资源的资源管理器504上执行。如图5所示,在于资源管理器504上放置XA_recover()调用之后,事务管理器501可接收存疑事务的列表(步骤11),这些存疑事务可被与GTT506相匹配以产生恢复列表(步骤12)。然后,事务管理器501可在资源管理器504上提交/回滚存疑事务(步骤14和15)。
一旦恢复所有其它资源管理器503~504(步骤9和15),事务管理器501就可向决定性资源管理器提交准备的事务的列表中的所有事务(步骤16和17)。最后,事务管理器501可去除GTT506中的条目(步骤18)。
如这里描述的那样,即使一个或更多个资源管理器不是事务的一部分,在所有其它资源管理器503~504被恢复之前,来自存疑事务的列表的事务不可被提交到决定性资源管理器502。
在本发明的一个实施例中,如果在准备阶段中可传递关于参与资源502、503的附加信息并将其持久保持在决定性资源502中,那么事务管理器501可知道事务的参与资源502、503。通过该附加信息,事务管理器501可不在等待所有已知资源管理器502~504恢复的情况下,提交从决定性资源管理器502返回的存疑事务的列表中的事务。事务管理器501可能只需要等待,直到事务所有参与方502~503被恢复。
另外,在事务型中间层系统500的干净关闭或重新开始期间,配置可按可在启动期间避免不必要的恢复和处理的方式被清除或标记。
图6是根据本发明的实施例的在不使用事务日志(TLOG)的情况下恢复二阶段提交事务的示例性的流程图。如图6所示,在步骤601中,事务管理器可在决定性资源上执行XA_recover()调用,并接收要在中间层事务型系统中提交的未完成事务的列表。然后,在步骤602处,事务管理器可使用准备的事务的列表以重新构建全局事务表(GTT)表。接下来,在步骤603处,事务管理器可在包含事务的参与方或非参与方在内的系统中的其它资源管理器中的每一个上执行XA_recover()调用,并且可从其它资源管理器中的每一个接收存疑事务的列表。在步骤604处,事务管理器可通过匹配事务与GTT表从存疑事务的列表恢复每个事务。如果在GTT表中找到匹配,则事务可被提交到可从中检索该事务的资源管理器;否则,它可被回滚。最后,在步骤605处,事务管理器可在其它资源管理器上的所有存疑事务恢复之后提交来自决定性资源的存疑事务中的事务。
可通过使用一个或更多个常规的通用或专用数字计算机、计算装置、机器或微处理器,包括根据本公开的教导编程的一个或更多个处理器、存储器和/或计算机可读存储介质在内,来方便地实现本发明。熟练的编程人员可很容易地基于本公开的教导准备适当的软件编码,这对于软件领域技术人员来说是十分明显的。
在一些实施例中,本发明包括计算机程序产品,该计算机程序产品是上面/其中存储有可被用于将计算机编程以执行本发明的处理中的任一个的指令的存储介质或计算机可读介质(媒体)。存储介质可包括但不限于:任何类型的盘,包含软盘、光盘、DVD、CD-ROM、微驱动和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存存储器装置、磁卡或光卡、纳米系统(包含分子存储器IC)或适于存储指令和/或数据的任何类型的介质或装置。
已出于图示和描述的目的提供了本发明的以上描述。它意图不在于详尽或者将本发明限于公开的确切的形式。对于本领域技术人员来说,许多修改和变化是十分明显的。为了最佳地解释本发明的原理及其实际应用,选择和描述了各实施例,由此使得本领域技术人员能够对于各种实施例以及通过适于设想的特定用途的各种修改理解本发明。本发明的范围要由以下的权利要求以及它们的等同物限定。
Claims (15)
1.一种用于恢复多个资源管理器上的事务的方法,该方法包括:
将所述多个资源管理器中的一资源管理器指定为决定性资源,其中所述决定性资源是在准备所述多个资源管理器中的所有其他资源管理器之后准备的并且是在提交所述多个资源管理器中的所有其他资源管理器之后提交的;
从所述决定性资源接收要提交的未完成事务的列表;
根据从所述决定性资源返回的存疑事务的列表构建/重新构建全局事务表GTT;
从所述多个资源管理器中的每个资源管理器检索存疑事务的列表,其中所述存疑事务是已经被准备但是还未提交的事务;
比较每个存疑事务与所述GTT;
在所述多个资源管理器中的至少一个资源管理器上提交存疑事务的列表中的与所述GTT匹配的一个或更多个存疑事务,并且在所述多个资源管理器中的至少一个资源管理器上回滚不与所述GTT匹配的一个或更多个存疑事务;以及
在对于所述多个资源管理器中的所有其他资源管理器成功提交或回滚了所述一个或更多个存疑事务之后,提交从所述决定性资源检索的存疑事务的列表。
2.根据权利要求1所述的方法,还包括:
允许所述事务是二阶段提交事务;以及
在执行所述二阶段提交事务中的准备阶段之前,将所述决定性资源持久保存在用于事务型中间层系统的配置中。
3.根据权利要求1或2所述的方法,还包括:
允许所述多个资源管理器中的至少一个资源管理器是事务的非参与方。
4.根据权利要求1或2所述的方法,还包括:
向所述决定性资源传递在所述事务中列出的所述多个资源管理器中的参与资源管理器的列表。
5.根据权利要求4所述的方法,还包括:
配置所述决定性资源,以在恢复之前等待,直到所述参与资源管理器的列表被恢复。
6.一种用于恢复事务的系统,该系统包括:
事务管理器;和
在中间层事务型系统中与所述事务管理器通信的多个资源管理器,并且
其中所述事务管理器进行操作以执行包括以下步骤的步骤:
将所述多个资源管理器中的一资源管理器指定为决定性资源,其中所述决定性资源是在准备所述多个资源管理器中的所有其他资源管理器之后准备的并且是在提交所述多个资源管理器中的所有其他资源管理器之后提交的;
从所述决定性资源接收要提交的未完成事务的列表;
根据从所述决定性资源返回的存疑事务的列表构建/重新构建全局事务表GTT;
从所述多个资源管理器中的每个资源管理器检索存疑事务的列表,其中所述存疑事务是已经被准备但是还未提交的事务;
比较每个存疑事务与所述GTT;
在所述多个资源管理器中的至少一个资源管理器上提交所述存疑事务的列表中的与所述GTT匹配的一个或更多个存疑事务,并且在所述多个资源管理器中的至少一个资源管理器上回滚不与所述GTT匹配的一个或更多个存疑事务;以及
在对于所述多个资源管理器中的所有其他资源管理器成功提交或回滚了所述一个或更多个存疑事务之后,提交从所述决定性资源检索的存疑事务的列表。
7.根据权利要求6所述的系统,其中:
所述事务是二阶段提交事务;以及
所述事务管理器进行操作以在执行所述二阶段提交事务中的准备阶段之前将所述决定性资源持久保存在用于事务型中间层系统的配置中。
8.根据权利要求6或7所述的系统,其中:
所述多个资源管理器中的至少一个资源管理器是所述事务的非参与方。
9.根据权利要求6或7所述的系统,其中:
所述事务管理器进行操作以执行还包括以下步骤的步骤:
向所述决定性资源传递在所述事务中列出的所述多个资源管理器中的参与资源管理器的列表;和
配置所述决定性资源,以在恢复之前等待,直到所述参与资源管理器的列表被恢复。
10.一种上面存储有指令的非暂时性机器可读存储介质,所述指令当被执行时使得系统执行包括以下步骤的步骤:
将多个资源管理器中的一资源管理器指定为决定性资源,其中所述决定性资源是在准备所述多个资源管理器中的所有其他资源管理器之后准备的并且是在提交所述多个资源管理器中的所有其他资源管理器之后提交的;
从所述决定性资源接收要提交的未完成事务的列表;
根据从所述决定性资源返回的存疑事务的列表构建/重新构建全局事务表GTT;
从所述多个资源管理器中的每个资源管理器检索存疑事务的列表,其中所述存疑事务是已经被准备但是还未提交的事务;
比较每个存疑事务与所述GTT;
在所述多个资源管理器中的至少一个资源管理器上提交存疑事务的列表中的与所述GTT匹配的一个或更多个存疑事务,并且在所述多个资源管理器中的至少一个资源管理器上回滚不与所述GTT匹配的一个或更多个存疑事务;以及
在对于所述多个资源管理器中的所有其他资源管理器成功提交或回滚了所述一个或更多个存疑事务之后,提交从所述决定性资源检索的存疑事务的列表。
11.一种用于恢复多个资源管理器上的事务的设备,该设备包括:
用于将所述多个资源管理器中的一资源管理器指定为决定性资源的装置,其中所述决定性资源是在准备所述多个资源管理器中的所有其他资源管理器之后准备的并且是在提交所述多个资源管理器中的所有其他资源管理器之后提交的;
用于从所述决定性资源接收要提交的未完成事务的列表的装置;
用于根据从所述决定性资源返回的存疑事务的列表构建/重新构建全局事务表GTT的装置;
用于从所述多个资源管理器中的每个资源管理器检索存疑事务的列表的装置,其中所述存疑事务是已经被准备但是还未提交的事务;
用于比较每个存疑事务与所述GTT的装置;
用于在所述多个资源管理器中的至少一个资源管理器上提交存疑事务的列表中的与所述GTT匹配的一个或更多个存疑事务,并且在所述多个资源管理器中的至少一个资源管理器上回滚不与所述GTT匹配的一个或更多个存疑事务的装置;以及
用于在对于所述多个资源管理器中的所有其他资源管理器成功提交或回滚了所述一个或更多个存疑事务之后,提交从所述决定性资源检索的存疑事务的列表的装置。
12.根据权利要求11所述的设备,还包括:
用于允许所述事务是二阶段提交事务的装置;以及
用于在执行所述二阶段提交事务中的准备阶段之前,将所述决定性资源持久保存在用于事务型中间层系统的配置中的装置。
13.根据权利要求11或12所述的设备,还包括:
用于允许所述多个资源管理器中的至少一个资源管理器是事务的非参与方的装置。
14.根据权利要求11或12所述的设备,还包括:
用于向所述决定性资源传递在所述事务中列出的所述多个资源管理器中的参与资源管理器的列表的装置。
15.根据权利要求14所述的设备,还包括:
用于配置所述决定性资源,以在恢复之前等待,直到所述参与资源管理器的列表被恢复的装置。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261612144P | 2012-03-16 | 2012-03-16 | |
US61/612,144 | 2012-03-16 | ||
US201361774356P | 2013-03-07 | 2013-03-07 | |
US61/774,356 | 2013-03-07 | ||
US13/828,490 | 2013-03-14 | ||
US13/828,490 US9760584B2 (en) | 2012-03-16 | 2013-03-14 | Systems and methods for supporting inline delegation of middle-tier transaction logs to database |
US13/828,590 US9146944B2 (en) | 2012-03-16 | 2013-03-14 | Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls |
US13/828,590 | 2013-03-14 | ||
PCT/US2013/032473 WO2013138774A1 (en) | 2012-03-16 | 2013-03-15 | Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104094228A CN104094228A (zh) | 2014-10-08 |
CN104094228B true CN104094228B (zh) | 2017-12-29 |
Family
ID=49158626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380008052.7A Active CN104094228B (zh) | 2012-03-16 | 2013-03-15 | 用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9146944B2 (zh) |
EP (1) | EP2825958B1 (zh) |
JP (1) | JP6220851B2 (zh) |
KR (1) | KR101993432B1 (zh) |
CN (1) | CN104094228B (zh) |
WO (1) | WO2013138774A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9389905B2 (en) * | 2012-03-16 | 2016-07-12 | Oracle International Corporation | System and method for supporting read-only optimization in a transactional middleware environment |
US9760584B2 (en) | 2012-03-16 | 2017-09-12 | Oracle International Corporation | Systems and methods for supporting inline delegation of middle-tier transaction logs to database |
WO2014082663A1 (en) * | 2012-11-28 | 2014-06-05 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for managing distributed transactions |
EP3097481B1 (en) | 2014-01-21 | 2022-11-30 | Oracle International Corporation | System and method for supporting multi-tenancy in an application server, cloud, or other environment |
WO2015143120A1 (en) | 2014-03-20 | 2015-09-24 | LogicBlox, Inc. | Transaction repair |
US9361190B2 (en) * | 2014-04-24 | 2016-06-07 | International Business Machines Corporation | Recovery of a transaction after XA end |
US9405530B2 (en) | 2014-09-24 | 2016-08-02 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10318280B2 (en) | 2014-09-24 | 2019-06-11 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
EP3198426B1 (en) * | 2014-09-26 | 2023-08-30 | Oracle International Corporation | System and method for transaction recovery in a multitenant application server environment |
US9858136B2 (en) | 2014-09-30 | 2018-01-02 | International Business Machines Corporation | Resource manager failure handling in a multi-process transaction environment |
US10250512B2 (en) | 2015-01-21 | 2019-04-02 | Oracle International Corporation | System and method for traffic director support in a multitenant application server environment |
CN105988865B (zh) * | 2015-03-04 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 回滚处理方法及装置 |
US11611445B2 (en) | 2017-02-17 | 2023-03-21 | Nokia Technologies Oy | Changing smart contracts recorded in block chains |
US10936445B2 (en) | 2018-11-28 | 2021-03-02 | International Business Machines Corporation | Resource management |
KR102184841B1 (ko) * | 2019-06-27 | 2020-11-30 | 전북대학교산학협력단 | 하이브리드 트랜잭셔널 메모리 시스템에서의 트랜잭션 복구 방법 및 트랜잭션 복구 장치 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5680610A (en) * | 1995-01-19 | 1997-10-21 | Unisys Corporation | Method and apparatus for testing recovery scenarios in global transaction processing systems |
US6247023B1 (en) * | 1998-07-21 | 2001-06-12 | Internationl Business Machines Corp. | Method for providing database recovery across multiple nodes |
US7284018B1 (en) * | 2003-10-15 | 2007-10-16 | Sun Microsystems, Inc. | Logless transaction coordination |
CN101341466A (zh) * | 2005-12-19 | 2009-01-07 | 国际商业机器公司 | 分布式系统中事务的提交 |
CN102203779A (zh) * | 2011-05-03 | 2011-09-28 | 华为技术有限公司 | 更新数据的方法和控制装置 |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5261089A (en) | 1990-05-16 | 1993-11-09 | International Business Machines Corporation | Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary |
US5452445A (en) | 1992-04-30 | 1995-09-19 | Oracle Corporation | Two-pass multi-version read consistency |
JPH06266592A (ja) * | 1993-03-16 | 1994-09-22 | Hitachi Ltd | Xaインターフェースを用いたユーザ処理プログラムの起動方法 |
GB2281644A (en) * | 1993-09-02 | 1995-03-08 | Ibm | Fault tolerant transaction-oriented data processing. |
US5617537A (en) | 1993-10-05 | 1997-04-01 | Nippon Telegraph And Telephone Corporation | Message passing system for distributed shared memory multiprocessor system and message passing method using the same |
US5555396A (en) | 1994-12-22 | 1996-09-10 | Unisys Corporation | Hierarchical queuing in a system architecture for improved message passing and process synchronization |
JPH08235039A (ja) * | 1995-02-27 | 1996-09-13 | Hitachi Ltd | トランザクション処理における履歴情報解析方法 |
JPH1074155A (ja) * | 1996-04-22 | 1998-03-17 | Fujitsu Ltd | トランザクションのリカバリ方法及びプログラム記憶媒体 |
US6070202A (en) | 1998-05-11 | 2000-05-30 | Motorola, Inc. | Reallocation of pools of fixed size buffers based on metrics collected for maximum number of concurrent requests for each distinct memory size |
JPH11338746A (ja) * | 1998-05-27 | 1999-12-10 | Ntt Communication Ware Kk | データベースアクセスシステムおよびプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6438582B1 (en) * | 1998-07-21 | 2002-08-20 | International Business Machines Corporation | Method and system for efficiently coordinating commit processing in a parallel or distributed database system |
GB2339933A (en) | 1998-07-22 | 2000-02-09 | Ibm | Client/server computing with improved correspondence between transaction identifiers when supporting subordinate resource manager(s) |
US6470342B1 (en) | 1999-03-12 | 2002-10-22 | Compaq Computer Corporation | Process of maintaining a distributed map of transaction identifiers and using hashing to access these maps |
FI991334A (fi) | 1999-06-10 | 2000-12-11 | Nokia Networks Oy | Menetelmä kaksisuuntaisen jonon toteuttamiseksi muistissa ja muistijär jestely |
US6754842B2 (en) * | 2000-02-22 | 2004-06-22 | International Business Machines Corporation | Facilitating a restart operation within a data processing system |
US7080382B2 (en) | 2000-02-25 | 2006-07-18 | Oracle International Corporation | Accessing shorter-duration instances of activatable objects based on object references stored in longer-duration memory |
US6728722B1 (en) | 2000-08-28 | 2004-04-27 | Sun Microsystems, Inc. | General data structure for describing logical data spaces |
US7031331B2 (en) | 2001-08-15 | 2006-04-18 | Riverstone Networks, Inc. | Method and system for managing packets in a shared memory buffer that serves multiple output links |
US6895529B2 (en) | 2002-02-13 | 2005-05-17 | Bull Hn Information Systems, Inc. | Rebuilding “in-doubt” states reliably after multiple system failures in a data processing system performing two-phase transaction processing |
US7178050B2 (en) * | 2002-02-22 | 2007-02-13 | Bea Systems, Inc. | System for highly available transaction recovery for transaction processing systems |
US7430740B1 (en) * | 2002-04-12 | 2008-09-30 | 724 Solutions Software, Inc | Process group resource manager |
US20070079077A1 (en) | 2002-04-29 | 2007-04-05 | Baines Mandeep S | System, method, and computer program product for shared memory queue |
US7103597B2 (en) * | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US7441008B2 (en) | 2002-12-18 | 2008-10-21 | International Business Machines Corporation | Method for correlating transactions and messages |
US7165061B2 (en) | 2003-01-31 | 2007-01-16 | Sun Microsystems, Inc. | Transaction optimization of read-only data sources |
US20040153349A1 (en) | 2003-01-31 | 2004-08-05 | K. Venugopal Rao | Delayed creation of global transactions |
US20040158549A1 (en) | 2003-02-07 | 2004-08-12 | Vladimir Matena | Method and apparatus for online transaction processing |
JP2005135382A (ja) | 2003-08-19 | 2005-05-26 | Toshiba Corp | イベントベースの通知を有する共有メモリベースのプロセス間通信キューテンプレートのシステムおよび方法 |
US20050144299A1 (en) | 2003-12-04 | 2005-06-30 | Blevins Delmar E. | System and method for supporting XA 2-phase commit protocols with a loosely coupled clustered database server |
US7260589B2 (en) * | 2003-12-04 | 2007-08-21 | International Business Machines Corporation | High performance support for XA protocols in a clustered shared database |
GB2409544A (en) | 2003-12-24 | 2005-06-29 | Ibm | Involving participants in a distributed transaction |
US20050262055A1 (en) * | 2004-05-20 | 2005-11-24 | International Business Machines Corporation | Enforcing message ordering |
US7725432B2 (en) * | 2004-05-21 | 2010-05-25 | Bea Systems, Inc. | Logging last resource system |
US7860840B2 (en) * | 2004-10-05 | 2010-12-28 | Microsoft Corporation | Maintaining correct transaction results when transaction management configurations change |
US7539989B2 (en) | 2004-10-12 | 2009-05-26 | International Business Machines Corporation | Facilitating intra-node data transfer in collective communications |
US7712096B2 (en) | 2004-12-21 | 2010-05-04 | International Business Machines Corporation | Method, system, and storage medium for dynamically reordering resource participation in two-phase commit to heuristically optimize for last-agent optimization |
US20060149791A1 (en) * | 2005-01-06 | 2006-07-06 | Oracle International Corporation | Database-driven distributed recovery |
US8103644B2 (en) * | 2005-01-12 | 2012-01-24 | Microsoft Corporation | Data access layer class generator |
US7600002B2 (en) | 2005-02-04 | 2009-10-06 | Oracle International Corporation | System and method for exposing a J2EE application server as a web service transaction participant |
US20070041392A1 (en) | 2005-08-22 | 2007-02-22 | Aaron Kunze | Adaptive message buffering |
GB0616068D0 (en) * | 2006-08-12 | 2006-09-20 | Ibm | Method,Apparatus And Computer Program For Transaction Recovery |
US7636873B2 (en) | 2006-09-15 | 2009-12-22 | International Business Machines Corporation | Enhancement of assured event delivery mechanism to eliminate external XA store requirement |
US7487279B2 (en) | 2007-01-23 | 2009-02-03 | International Business Machines Corporation | Achieving both locking fairness and locking performance with spin locks |
US20080243865A1 (en) | 2007-03-28 | 2008-10-02 | Oracle International Corporation | Maintaining global state of distributed transaction managed by an external transaction manager for clustered database systems |
US20080250074A1 (en) * | 2007-04-04 | 2008-10-09 | Oracle International Corporation | Recoverable last resource commit |
US7930274B2 (en) | 2007-09-12 | 2011-04-19 | Sap Ag | Dual access to concurrent data in a database management system |
US8099764B2 (en) | 2007-12-17 | 2012-01-17 | Microsoft Corporation | Secure push and status communication between client and server |
US7970737B2 (en) * | 2008-01-11 | 2011-06-28 | Oracle International Corporation | Recovery administration of global transaction participants |
US7953709B2 (en) | 2008-03-27 | 2011-05-31 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
JP5223457B2 (ja) * | 2008-05-22 | 2013-06-26 | 富士通株式会社 | 分散トランザクションの2相コミットプロトコルにおけるインダウト状態の解決方法 |
US8103714B2 (en) | 2008-08-15 | 2012-01-24 | International Business Machines Corporation | Transactional quality of service in event stream processing middleware |
US9417977B2 (en) | 2008-12-31 | 2016-08-16 | Sap Se | Distributed transactional recovery system and method |
US9230002B2 (en) | 2009-01-30 | 2016-01-05 | Oracle International Corporation | High performant information sharing and replication for single-publisher and multiple-subscriber configuration |
US8346851B2 (en) | 2009-08-31 | 2013-01-01 | Red Hat, Inc. | System and method for determining when to generate subordinate coordinators on local machines |
US20110078516A1 (en) * | 2009-09-28 | 2011-03-31 | International Business Machines Corporation | Method and a system for performing a two-phase commit protocol |
EP2323047B1 (en) | 2009-10-09 | 2020-02-19 | Software AG | Primary database system, replication database system and method for replicating data of a primary database system |
US9165025B2 (en) * | 2009-12-11 | 2015-10-20 | International Business Machines Corporation | Transaction recovery in a transaction processing computer system employing multiple transaction managers |
US8868506B1 (en) | 2010-06-17 | 2014-10-21 | Evolphin Software, Inc. | Method and apparatus for digital asset management |
US9009182B2 (en) * | 2010-10-05 | 2015-04-14 | Sap Se | Distributed transaction management with tokens |
US8898399B2 (en) | 2010-11-16 | 2014-11-25 | Tibco Software Inc. | Locking and signaling for implementing messaging transports with shared memory |
US8825983B2 (en) | 2011-02-15 | 2014-09-02 | International Business Machines Corporation | Data communications in a parallel active messaging interface of a parallel computer |
US8671085B2 (en) * | 2011-12-09 | 2014-03-11 | Microsoft Corporation | Consistent database recovery across constituent segments |
US8738964B2 (en) * | 2011-12-13 | 2014-05-27 | Red Hat, Inc. | Disk-free recovery of XA transactions for in-memory data grids |
-
2013
- 2013-03-14 US US13/828,590 patent/US9146944B2/en active Active
- 2013-03-15 WO PCT/US2013/032473 patent/WO2013138774A1/en active Application Filing
- 2013-03-15 CN CN201380008052.7A patent/CN104094228B/zh active Active
- 2013-03-15 JP JP2015500669A patent/JP6220851B2/ja active Active
- 2013-03-15 EP EP13715496.9A patent/EP2825958B1/en active Active
- 2013-03-15 KR KR1020147024207A patent/KR101993432B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5680610A (en) * | 1995-01-19 | 1997-10-21 | Unisys Corporation | Method and apparatus for testing recovery scenarios in global transaction processing systems |
US6247023B1 (en) * | 1998-07-21 | 2001-06-12 | Internationl Business Machines Corp. | Method for providing database recovery across multiple nodes |
US7284018B1 (en) * | 2003-10-15 | 2007-10-16 | Sun Microsystems, Inc. | Logless transaction coordination |
CN101341466A (zh) * | 2005-12-19 | 2009-01-07 | 国际商业机器公司 | 分布式系统中事务的提交 |
CN102203779A (zh) * | 2011-05-03 | 2011-09-28 | 华为技术有限公司 | 更新数据的方法和控制装置 |
Non-Patent Citations (1)
Title |
---|
IBM DB2 Universal Database - Administration Guide: Planning - Distributed Databases;IBM Corp;《ftp://public.dhe.ibm.com/ps/products/db2/info/vr8/pdf/letter/db2d1e80.pdf》;20020101;171-188 * |
Also Published As
Publication number | Publication date |
---|---|
CN104094228A (zh) | 2014-10-08 |
KR101993432B1 (ko) | 2019-06-26 |
WO2013138774A1 (en) | 2013-09-19 |
JP6220851B2 (ja) | 2017-10-25 |
EP2825958B1 (en) | 2018-08-01 |
US9146944B2 (en) | 2015-09-29 |
US20130246845A1 (en) | 2013-09-19 |
JP2015514248A (ja) | 2015-05-18 |
EP2825958A1 (en) | 2015-01-21 |
KR20140138670A (ko) | 2014-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104094228B (zh) | 用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法 | |
US11994959B2 (en) | System and method for transaction recovery in a multitenant application server environment | |
CN104094227B (zh) | 用于支持中间层事务日志到数据库的内联委托的系统和方法 | |
WO2016180164A1 (zh) | 一种分布式事务回滚方法及装置 | |
CN104508663B (zh) | 会话失败后的自动事务重试 | |
CN103116596B (zh) | 在分布式数据库中执行快照隔离的系统和方法 | |
CN107771321A (zh) | 数据中心中的恢复 | |
CN102037463B (zh) | 使用全局确认的提交进行分布式事务的基于日志的复制 | |
CN102891849B (zh) | 业务数据同步方法、恢复方法及装置和网络设备 | |
US20130110781A1 (en) | Server replication and transaction commitment | |
CN109783204A (zh) | 一种分布式事务处理方法、装置及存储介质 | |
JP2020161092A (ja) | システム間連携方法およびノード | |
US6330686B1 (en) | Handling protected conversation messages across IMS restart in shared queues environment | |
JP5065259B2 (ja) | 企業情報システムとクライアントとの間の通信に役立つ装置、システム、方法、およびコンピュータプログラム(企業情報システムとクライアントとの間の通信に役立つ装置、システム、および方法) | |
US11522966B2 (en) | Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment | |
CN117675185A (zh) | 基于事务消息的密码协议事务管理方法、介质及装置 | |
WO2016148716A1 (en) | Post in-doubt transaction to notice unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |