CN104094228A - 用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法 - Google Patents

用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法 Download PDF

Info

Publication number
CN104094228A
CN104094228A CN201380008052.7A CN201380008052A CN104094228A CN 104094228 A CN104094228 A CN 104094228A CN 201380008052 A CN201380008052 A CN 201380008052A CN 104094228 A CN104094228 A CN 104094228A
Authority
CN
China
Prior art keywords
affairs
resource
leave
list
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.)
Granted
Application number
CN201380008052.7A
Other languages
English (en)
Other versions
CN104094228B (zh
Inventor
P·帕金森
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.)
Oracle International Corp
Original Assignee
Oracle International 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
Priority claimed from US13/828,490 external-priority patent/US9760584B2/en
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN104094228A publication Critical patent/CN104094228A/zh
Application granted granted Critical
Publication of CN104094228B publication Critical patent/CN104094228B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0709Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions

Abstract

本发明提供用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法。为了在处理二阶段事务时支持消除中间层事务日志(TLOG),中间层事务型环境中的至少一个资源管理器可被指定为“决定性资源”。事务管理器可在决定性资源之前准备在中间层事务型系统中的所有其它的资源管理器。此外,事务管理器可依赖于由决定性资源为了恢复事务提供的要提交的未完成事务的列表。事务管理器可提交匹配从决定性资源返回的存疑事务的列表的、从资源管理器返回的存疑事务。否则,事务管理器可回滚存疑事务。

Description

用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法
版权声明:
本专利文件公开的一部分包含受到版权保护的材料。版权所有人不反对任何人传真复制专利文件或专利公开,只要它出现在专利和商标局的专利文件或记录中,但在其他方面无论如何保留所有版权权利。
技术领域
本发明一般涉及诸如中间件的计算机系统和软件,特别是涉及事务型中间件。
背景技术
事务型中间件系统或面向事务的中间件包括可处理组织内的各种事务的企业应用服务器。伴随诸如高性能网络和多处理器计算机的新技术的开发,需要进一步提高事务型中间件的性能。一般存在本发明的实施例意在针对的领域。
发明内容
提供用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法。为了在处理二阶段事务时支持消除中间层事务日志(TLOG),中间层事务型环境中的至少一个资源管理器可被指定为“决定性(determiner)资源”。事务管理器可在决定性资源之前准备在中间层事务型系统中的所有其它的资源管理器。此外,事务管理器可依赖于由决定性资源为了恢复事务而提供的要被提交的未完成事务的列表。事务管理器可提交匹配从决定性资源返回的存疑事务的列表的、从资源管理器返回的存疑事务。否则,事务管理器可回滚存疑事务。
对于本领域技术人员来说,当参照附图阅读各种实施例的以下详细描述时,本发明的其它目的和优点将变得十分明显。
附图说明
图1表示根据本发明的实施例的事务型环境的示图。
图2表示在事务型中间件机器环境中支持二阶段提交的示图。
图3表示在事务型中间件机器环境中恢复存疑事务的示图。
图4表示根据本发明的实施例的用于在事务型中间件机器环境中支持用于处理事务的二阶段提交(2PC)调用的严格定序的示图。
图5表示根据本发明的实施例的用于在不使用事务日志(TLOG)的情况下恢复全局事务的示图。
图6是根据本发明的实施例的在不使用事务日志(TLOG)的情况下恢复二阶段提交事务的示例性的流程图。
具体实施方式
在附图中作为例子而不是限制而图示本发明,在附图中,类似的附图标记表示类似的要素。应当注意,在本公开中提及的“一个”、“一种”或“一些”实施例未必指的是同一实施例,并且,这种提及意味着至少一个。
以下的本发明的描述使用Tuxedo环境作为事务型中间件机器环境的例子。对于本领域技术人员来说,很显然,可没有限制地使用其它类型的事务型中间件机器环境。
这里描述的是用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法。为了在处理二阶段事务时支持消除中间层事务日志(TLOG),中间层事务型环境中的至少一个资源管理器可被指定为“决定性资源”。事务管理器可在决定性资源之前准备在中间层事务型系统中的所有其它的资源管理器。此外,事务管理器可依赖于由决定性资源为了恢复事务提供的要被提交的未完成事务的列表。事务管理器可提交匹配从决定性资源返回的存疑事务的列表的、从资源管理器返回的存疑事务。否则,事务管理器可回滚(roll back)存疑事务。
事务型环境和全局事务
图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 (20)

1.一种用于恢复多个资源管理器上的事务的方法,该方法包括:
将所述多个资源管理器中的一资源管理器指定为决定性资源,其中,所述决定性资源保持要提交的未完成事务的列表;
从所述多个资源管理器中的每个资源管理器检索存疑事务的列表;和
提交在所述多个资源管理器中的至少一个资源管理器上的存疑事务的列表中的一个或更多个存疑事务,其中,所述一个或更多个存疑事务匹配由所述决定性资源提供的要提交的未完成事务的列表。
2.根据权利要求1的方法,还包括:
回滚在所述多个资源管理器中的至少一个资源管理器上的存疑事务的列表中的一个或更多个存疑事务,其中,所述一个或更多个存疑事务不能够匹配要提交的未完成事务的列表。
3.根据权利要求1的方法,还包括:
允许所述事务是二阶段提交事务。
4.根据权利要求3的方法,还包括:
在执行所述二阶段提交事务中的准备阶段之前,将所述决定性资源持久保存在用于事务型中间层系统的配置中。
5.根据权利要求1的方法,还包括:
在准备所述多个资源管理器中的所有其它资源管理器之后,准备所述决定性资源;和
在提交所述多个资源管理器中的所有其它资源管理器之后,提交所述决定性资源。
6.根据权利要求5的方法,还包括:
允许所述多个资源管理器中的至少一个资源管理器是事务的非参与方。
7.根据权利要求1的方法,还包括:
在恢复所述多个资源管理器中的所有其它资源管理器之后,提交从所述决定性资源返回的存疑事务的列表。
8.根据权利要求1的方法,还包括:
根据从所述决定性资源返回的存疑事务的列表构建/重新构建全局事务表GTT;和
比较每个存疑事务与GTT。
9.根据权利要求1的方法,还包括:
向所述决定性资源传递在所述事务中列出的所述多个资源管理器中的参与资源管理器的列表。
10.根据权利要求9的方法,还包括:
配置所述决定性资源,以在恢复之前等待,直到所述参与资源管理器的列表被恢复。
11.一种用于恢复事务的系统,该系统包括:
事务管理器;和
在中间层事务型系统中与所述事务管理器通信的多个资源管理器,并且
其中,所述事务管理器进行操作以执行包括以下步骤的步骤:
将所述多个资源管理器中的一资源管理器指定为决定性资源,其中,所述决定性资源保持要提交的未完成事务的列表;
从所述多个资源管理器中的每个资源管理器检索存疑事务的列表;和
提交在所述多个资源管理器中的至少一个资源管理器上的存疑事务的列表中的一个或更多个存疑事务,其中,所述一个或更多个存疑事务匹配由所述决定性资源提供的要提交的未完成事务的列表。
12.根据权利要求11的系统,其中,
所述事务管理器进行操作以回滚在所述多个资源管理器中的至少一个资源管理器上的存疑事务的列表中的一个或更多个存疑事务,其中,所述一个或更多个存疑事务不能够匹配要提交的未完成事务的列表。
13.根据权利要求11的系统,其中:
所述事务是二阶段提交事务。
14.根据权利要求13的系统,其中:
所述事务管理器进行操作以在执行所述二阶段提交事务中的准备阶段之前将所述决定性资源持久保存在用于事务型中间层系统的配置中。
15.根据权利要求11的系统,其中:
所述事务管理器进行操作以执行还包括以下步骤的步骤:
在准备所述多个资源管理器中的所有其它资源管理器之后,准备所述决定性资源;和
在提交所述多个资源管理器中的所有其它资源管理器之后,提交所述决定性资源。
16.根据权利要求15的系统,其中:
所述多个资源管理器中的至少一个资源管理器是所述事务的非参与方。
17.根据权利要求11的系统,其中:
所述事务管理器进行操作以在恢复所述多个资源管理器中的所有其它资源管理器之后,提交从所述决定性资源返回的存疑事务的列表。
18.根据权利要求11的系统,其中:
所述事务管理器进行操作以执行还包括以下步骤的步骤:
根据从所述决定性资源返回的存疑事务的列表构建/重新构建全局事务表GTT;和
比较每个存疑事务与GTT。
19.根据权利要求11的系统,其中:
所述事务管理器进行操作以执行还包括以下步骤的步骤:
向所述决定性资源传递在所述事务中列出的所述多个资源管理器中的参与资源管理器的列表;和
配置所述决定性资源,以在恢复之前等待,直到所述参与资源管理器的列表被恢复。
20.一种上面存储有指令的非暂时性机器可读存储介质,所述指令当被执行时使得系统执行包括以下步骤的步骤:
将多个资源管理器中的一资源管理器指定为决定性资源,其中,所述决定性资源保持要提交的未完成事务的列表;
从所述多个资源管理器中的每个资源管理器检索存疑事务的列表;和
提交在所述多个资源管理器中的至少一个资源管理器上的存疑事务的列表中的一个或更多个存疑事务,其中,所述一个或更多个存疑事务匹配由所述决定性资源提供的要提交的未完成事务的列表。
CN201380008052.7A 2012-03-16 2013-03-15 用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法 Active CN104094228B (zh)

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 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 2013-03-14
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,490 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 true CN104094228A (zh) 2014-10-08
CN104094228B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105988865A (zh) * 2015-03-04 2016-10-05 阿里巴巴集团控股有限公司 回滚处理方法及装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405574B2 (en) 2012-03-16 2016-08-02 Oracle International Corporation System and method for transmitting complex structures based on a shared memory queue
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
KR102271265B1 (ko) 2014-01-21 2021-07-01 오라클 인터내셔날 코포레이션 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티 테넌시를 지원하기 위한 시스템 및 방법
US10204126B2 (en) 2014-03-20 2019-02-12 LogicBlox, Inc. Transaction repair
US9361190B2 (en) * 2014-04-24 2016-06-07 International Business Machines Corporation Recovery of a transaction after XA end
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
JP6748638B2 (ja) 2014-09-24 2020-09-02 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境においてパッチングをサポートするためのシステムおよび方法
JP6564026B2 (ja) * 2014-09-26 2019-08-21 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境におけるトランザクション回復のためのシステムおよび方法
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
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US20040153349A1 (en) 2003-01-31 2004-08-05 K. Venugopal Rao Delayed creation of global transactions
US7165061B2 (en) 2003-01-31 2007-01-16 Sun Microsystems, Inc. Transaction optimization of read-only data sources
WO2004072816A2 (en) 2003-02-07 2004-08-26 Lammina Systems Corporation Method and apparatus for online transaction processing
JP2005135382A (ja) 2003-08-19 2005-05-26 Toshiba Corp イベントベースの通知を有する共有メモリベースのプロセス間通信キューテンプレートのシステムおよび方法
US7260589B2 (en) * 2003-12-04 2007-08-21 International Business Machines Corporation High performance support for XA protocols in a clustered shared database
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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
IBM CORP: "IBM DB2 Universal Database - Administration Guide: Planning - Distributed Databases", 《FTP://PUBLIC.DHE.IBM.COM/PS/PRODUCTS/DB2/INFO/VR8/PDF/LETTER/DB2D1E80.PDF》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105988865A (zh) * 2015-03-04 2016-10-05 阿里巴巴集团控股有限公司 回滚处理方法及装置
CN105988865B (zh) * 2015-03-04 2019-10-08 阿里巴巴集团控股有限公司 回滚处理方法及装置

Also Published As

Publication number Publication date
US9146944B2 (en) 2015-09-29
KR20140138670A (ko) 2014-12-04
WO2013138774A1 (en) 2013-09-19
US20130246845A1 (en) 2013-09-19
KR101993432B1 (ko) 2019-06-26
CN104094228B (zh) 2017-12-29
JP6220851B2 (ja) 2017-10-25
EP2825958A1 (en) 2015-01-21
JP2015514248A (ja) 2015-05-18
EP2825958B1 (en) 2018-08-01

Similar Documents

Publication Publication Date Title
CN104094228A (zh) 用于支持基于二阶段提交调用的严格定序的事务恢复的系统和方法
US20220058095A1 (en) System and method for transaction recovery in a multitenant application server environment
KR102072726B1 (ko) 데이터베이스로의 미들-티어 트랜잭션 로그들의 인라인 위임을 지원하는 시스템들 및 방법들
US8527459B2 (en) System and method for data replication between heterogeneous databases
US9779128B2 (en) System and method for massively parallel processing database
TW522320B (en) Apparatus and method for recovering a failed database data set
CN110888718A (zh) 分布式事务的实现方法及装置
US6330686B1 (en) Handling protected conversation messages across IMS restart in shared queues environment
US20130318059A1 (en) Transfer of data from transactional data sources to partitioned databases in restartable environment
CN115617571A (zh) 一种数据备份方法、装置、系统、设备及存储介质
CN110532108B (zh) 简历投递任务的处理方法、装置、服务器和系统
CN110502460B (zh) 数据处理的方法和节点
CN112765126A (zh) 数据库事务的管理方法、装置、计算机设备和存储介质
CN109522098A (zh) 分布式数据库中的事务处理方法、装置、系统和储存介质
CN113849278A (zh) 全局事务处理方法及系统
CN112181719A (zh) 一种数据处理方法、装置、设备及计算机可读存储介质
CN117785900A (zh) 数据更新方法、装置、计算机设备和存储介质
CN117785390A (zh) 分布式事务实现方法、装置、设备及存储介质
CN116185714A (zh) 数据恢复方法、装置、服务器和存储介质
CN112860788A (zh) 事务处理方法、装置、计算机系统及可读存储介质
JP2002358223A (ja) データ書出プログラム、データ書出方法および記録媒体

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