用于支持中间层事务日志到数据库的内联委托的系统和方法

文档序号:6532960阅读:179来源:国知局
用于支持中间层事务日志到数据库的内联委托的系统和方法
【专利摘要】提供了用于支持事务恢复的系统和方法,所述事务恢复基于事务日志到数据库的内联委托。所述系统可以从持久性储存器检索事务的事务恢复信息,其中事务恢复信息在准备阶段期间存留在与持久性储存器相关联的资源管理器上。此外,所述系统可以从所述事务的一个或多个参与的资源管理器检索一个或多个可疑事务。然后,所述系统可以通过将所述一个或多个可疑事务与事务恢复信息进行匹配来确定是提交还是回滚所述一个或多个可疑事务。
【专利说明】用于支持中间层事务日志到数据库的内联委托的系统和方 法
[0001] 版权声明
[0002] 本专利文档的公开内容的一部分包含受版权保护的材料。版权所有人不反对任何 人如该专利文档或专利公开内容在专商局专利文件或记录中所登载的那样对其进行复制 再现,但是保留所有其他版权权利。

【技术领域】
[0003] 本发明总体上涉及计算机系统和软件,诸如中间件,更特别地,涉及事务式中间 件。

【背景技术】
[0004] 事务式中间件系统或面向事务的中间件包括可以处理组织内的各种事务的企业 应用服务器。随着诸如高性能网络和多处理器计算机之类的新技术的发展,需要进一步改 进事务式中间件的性能。这些大致是本发明的实施例旨在针对的领域。


【发明内容】

[0005] 提供了用于支持事务恢复的系统和方法,所述事务恢复基于事务日志到数据库的 内联委托。所述系统可以从持久性储存器检索事务的事务恢复信息,其中事务恢复信息在 准备阶段期间存留在与持久性储存器相关联的资源管理器上。此外,所述系统可以从所述 事务的一个或多个参与资源管理器检索一个或多个可疑事务。然后,所述系统可以通过将 所述一个或多个可疑事务与事务恢复信息进行匹配来确定是提交还是回滚所述一个或多 个可疑事务。
[0006] 当按照附图阅读下面对各种实施例的详细描述时,从该详细描述,本发明的其他 目的和优点将对于本领域技术人员而言变得清楚。

【专利附图】

【附图说明】
[0007] 图1示出根据本发明一实施例的事务式环境的例示。
[0008] 图2示出支持事务式中间件机器环境中的两阶段提交的例示。
[0009] 图3示出在事务式中间件机器环境中恢复可疑事务的例示。
[0010] 图4示出根据本发明一实施例的支持事务日志到数据库的内联委托以用于在事 务式中间件机器环境中对事务进行处理的例示。
[0011] 图5是根据本发明一实施例的事务恢复信息记录的内容的例示。
[0012] 图6示出根据本发明一实施例的基于事务日志到数据库的内联委托来恢复事务 的系统。
[0013] 图7是根据本发明一实施例的基于事务日志到数据库的内联委托来恢复事务的 例示性流程图。

【具体实施方式】
[0014] 在附图中以举例的方式、而非限制的方式例示了本发明,在附图中,相似的附图标 记指示类似的元件。应注意,本公开中所提及的"一"、"一个"或"一些"实施例不一定是同 一个实施例,这样的提及意指至少一个。
[0015] 如下对本发明的描述使用Tuxedo环境作为事务式中间件机器环境的例子。对于 本领域技术人员将显而易见的是,可以没有限制地使用其他类型的事务式中间件机器环 境。
[0016] 本文中描述的是用于支持事务恢复的系统和方法,所述事务恢复基于事务日志到 数据库的内联委托。所述系统可以从持久性储存器检索事务的事务恢复信息,其中事务恢 复信息在准备阶段期间存留在与持久性储存器相关联的资源管理器上。此外,所述系统可 以从所述事务的一个或多个参与资源管理器检索一个或多个可疑事务。然后,所述系统可 以通过将所述一个或多个可疑事务与事务恢复信息进行匹配来确定是提交还是回滚所述 一个或多个可疑事务。
[0017] 事务环境和全局事务
[0018] 图1示出了根据本发明一实施例的事务式环境的例示。如图1所示,事务式环境 100可包括终端用户101、应用程序102、一个或多个事务管理器(TM) 103、多个资源管理器 (RM) 104-106、以及一个或多个持久性储存器,例如数据库110。
[0019] 根据本发明一实施例,应用程序102可以指定构成事务的动作。如图所示,应用程 序102与事务管理器103进行通信以开始、提交或中止事务,并且事务管理器103可以将事 务的开始、结束和处置发送回到应用程序102。此外,应用程序102可以定义事务管理器103 的事务边界,事务管理器103可以与多个资源管理器(冊)104-106交换事务信息。另外,应 用程序102可以经由嵌入式结构化查询(SQL)与多个资源管理器104-106进行通信来从事 有用的工作。
[0020] 多个资源管理器104-106可以提供对持久性储存器(例如数据库110)的访问。根 据本发明一实施例,多个资源管理器104-106可以实施XA接口从而以对持久性储存器透明 的方式处理数据库连接和断开。XA接口可以基于描述用于事务协调、提交和恢复的协议的 规范。参与事务的XA资源可包括XA资源管理器和后端持久性储存器。
[0021] 根据本发明的各种实施例,事务式系统可以支持可在多于一个的服务器上执行的 全局事务,并且能够从多于一个的资源管理器访问数据。
[0022] 可以将全局事务看作由原子性(atomicity)、一致性、隔离性和耐久性(ACID)这 四个属性表征的特定操作序列。全局事务可以是具有以下特征的逻辑工作单元:
[0023] ?所有部分要么成功,要么没有效果;
[0024] ?执行正确地将资源从一种一致状态变换为另一种一致状态的操作;
[0025] ?中间结果不可供其他事务访问,但是同一事务中的其他处理可以访问该数据;
[0026] ?已完成序列的所有效果都不能被任何种类的失败所改变。
[0027] 此外,全局事务可包括若干局域事务,每个局域事务访问单个资源管理器。局域事 务可以访问单个数据库或文件,并且可以由负责在不同的数据库执行并发控制和更新的原 子性的资源管理器进行控制。给定的局域事务在完成其访问时可以要么成功,要么不成功。
[0028] 另外,事务管理器103可以在事务式环境100中向不同事务分配全局事务标识符 (GTRID)。事务管理器103可以监视它们的处理,并且负责确保事务完成并且提供失败恢 复。另外,事务管理器103可以经由XA接口与多个资源管理器104-105进行通信以交换事 务信息,诸如将两阶段提交调用发送到资源管理器104-105。
[0029] 两阶段提交(2PC)
[0030] 两阶段提交(2PC)协议可用于执行事务,诸如松散耦合的全局事务。两阶段提交 协议(2PC)可以包括准备阶段和提交阶段。在准备阶段中,协调事务管理器(TM)指示参与 的资源管理器(RM)采取用于提交或中止事务的必要步骤。在提交阶段,事务管理器(TM) 基于准备阶段的结果来决定是提交还是中止事务。
[0031] 图2示出了支持事务式中间件机器环境中的两阶段提交的例示。如图2所示,事 务式环境200可包括支持各种事务的执行的事务管理器201、以及管理一个或多个数据源 (例如数据库205)的一个或多个资源管理器202-204。
[0032] 例如,事务管理器201可以执行涉及事务分支A 211、事务分支B212和事务分支C 213的事务,各个事务分支可以分别针对资源管理器202-204来执行。如果任何分支在事务 中失败,则事务管理器201可以帮助资源管理器202-204决定是提交还是回滚该事务。
[0033] 如图2所示,事务管理器201可以在所有三个分支上将准备指令发送到资源管理 器202-204(步骤1、2和3)。在资源管理器202-204返回"0K"投票(步骤4、5和6)之后, 事务管理器201可以将事务日志写入到数据库205 (步骤7)。
[0034] 如果任何分支在提交阶段失败,则可以将事务日志(TL0G)写入到文件或数据库, 从而事务管理器201可以具有足够的信息以恢复该事务。
[0035] 然后,事务管理器201可以指示资源管理器202-204提交所有三个分支(步骤8、 9和10)。在成功完成提交阶段(步骤11、12和13)之后,资源管理器202-204可以通知事 务管理器201。
[0036] 基于事务日志(TL0G)的事务恢复
[0037] 根据本发明一实施例,事务日志(TL0G)可以保存事务管理器作出的提交事务的 决定。例如,TL0G可以存储资源检查点记录,其可以由事务管理器存留以使得它能够跟踪 参与的不同XA资源。
[0038] 当事务管理器在准备阶段之后从所有事务分支接收到成功投票时,可以在TL0G 中写入事务。TL0G中的事务记录可以至少包括事务标识符(XID),其进一步包括由事务管 理器分配的GTRID和由执行事务的资源管理器分配的局域XID。
[0039] 此外,TL0G可以保存被标记为将被提交的飞行中(in-flight)事务的状态的记 录。TL0G对于在系统崩溃之后恢复可疑事务是有益的,可疑事务是在中间层事务式系统中 已经准备好但是尚未提交的事务。不恢复可疑事务的话,系统在崩溃之后可能处于错误且 不一致的状态。
[0040] 例如,如果系统在两阶段提交事务期间失败的话,则对于一个后端数据储存器的 更新可能已经提交,但是在同一事务中,对于另一数据储存器的更新可能尚未被指示提交, 即,该数据储存器的更新将仍然悬而未决。一旦系统的失败部分被重启,则保存未决更新的 数据储存器可能不能知道是应提交这些更新还是回滚这些更新。
[0041] 图3示出了在事务式中间件机器环境中恢复可疑事务的例示。如图3所示,事务 式中间件机器环境300包括事务管理器301、多个资源管理器302-304、以及持久性储存器 (即,数据库305)。
[0042] 事务管理器301可以通过读取TL0G来自动地确定全局事务是否可疑(步骤1)。 然后,事务管理器301可以轮询参与的资源管理器302-304的相关后端数据储存器。参与 的资源管理器302-340中的每个均可返回可疑事务的列表(步骤2、4和6),可疑事务是事 务管理器301不知道是回滚它还是提交它的事务。
[0043] 此外,事务管理器301可以将每个可疑事务与TL0G进行匹配,并且继续在不同的 资源管理器302-304上提交或回滚这些可疑事务(步骤3、5和7)。例如,当可疑事务出现 在TL0G中时,可以调用XAResource. commitO来将该可疑事务提交给TL0G中指定的资源 管理器。另一方面,当事务不在TL0G中时,S卩,在崩溃之前还未对该事务做出提交决定时, 可以调用XAResource. rollbackO以基于事务标识符(XID)在资源管理器上回滚它。
[0044] 如图3所示,事务可以已经在资源管理器302上准备好并且系统在资源管理器302 可以将成功投票发送到事务管理器301之前崩溃。于是,事务管理器301可能不能从所有 事务分支接收到成功投票,因此不能将事务记入TL0G中。因此,事务管理器301可以将所 有分支事务在它们各自的资源管理器302-304上进行回滚。因此,通过使用这样的一致且 可预测的事务恢复方案,事务管理器可以避免混合启发式完成,在混合启发式完成中,一些 分支被提交,一些分支被回滚。
[0045] 数据库的中间层事务日志的内联委托
[0046] 图4示出了根据本发明一实施例的支持事务日志到数据库的内联委托以用于在 事务式中间件机器环境中对事务进行处理的例示。如图7所示,中间层事务式系统400 包括一个或多个事务管理器(TM)401-402、多个资源管理器(冊)403-404。资源管理器 (RM)403-404可以参与全局事务410。
[0047] 此外,与资源管理器403相关联的数据库405可以包括用于存储事务恢复信息的 恢复信息表406,例如Ltxid表。另外,数据库405可以是数据库集群中的数据库的实例,其 也可以用作其他资源管理器(例如,资源管理器404)的持久性储存器。
[0048] 根据本发明一实施例,事务410可以跨多个事务管理器401-402。如图4所示,系 统可以通过触发事务管理器402以将准备请求发送到XA资源(诸如,资源管理器404)来 开始两阶段提交调用(步骤1)。
[0049] 然后,事务管理器401可以指示资源管理器403在数据库405中设立恢复信 息表406(步骤2)。事务管理器401可以通过调用函数并且将事务恢复信息作为参数 传递给该函数来设立恢复信息表406。例如,事务管理器401可以在到数据库405的连 接上调用 setClientInfo(〃SYS_CONTEXT. WLS_LTXID_INF0〃,ltxidRelatedlnfo),其中, "ltxidRelatedlnfo"是事务恢复信息,其可以包括格式标识符、全局事务标识符、以及关于 事务中征调的其他资源的信息。事务恢复信息还可以包括支持更复杂的事务类型所需的其 他信息。
[0050] 此外,事务管理器401可以使资源管理器403做好准备,并且可以将事务恢复信息 存留到恢复信息表406中(步骤3)。例如,可以在准备操作期间在到数据库205的单个行 程中执行事务恢复信息的存留,因此节省到数据库405的行程。在资源管理器403-404中 的每个均返回成功投票(步骤4和5)之后,准备阶段完成。
[0051] 事务管理器401-402可以在准备阶段结束时放弃存留事务记录,诸如TL0G。替代 地,事务管理器401-402可以进行到在资源管理器403上提交事务410 (步骤7)之前在资 源管理器404上提交事务410 (步骤6)。在资源管理器403-404中的每个均成功地提交事 务410 (步骤8和9)之后,提交阶段完成。
[0052] 根据本发明一实施例,与数据库405相关联的资源管理器403可以是局域资源管 理器,即,不实施XA接口的资源管理器。事务管理器401可以在资源管理器404上的准备 阶段完成之后在局域资源管理器的提交操作期间存留事务恢复信息,事务恢复信息可以在 局域资源管理器403上设立。
[0053] 图5是根据本发明一实施例的事务恢复信息记录的内容的例示。如图5所示,事 务恢复信息记录501 (诸如数据库500中的Ltxid表)可包括全局事务标识符(GTRID) 510、 格式标识符部分511和相关信息部分514。
[0054] 格式标识符部分511可以包括格式标识符,其是OpenGroup标准分配给供应商的 唯一标识符。它可以用于区分不同的产品,诸如区分Tuxedo事务和WebLogic事务。
[0055] 可以将全局事务标识符(GTRID)作为两个不同的字段存留到恢复信息记录501 中,所述两个不同的字段包括容器标识符部分512和其余GTRID部分513。容器标识符部分 512可以包括容器标识符,其是分配给事务处理中间件系统中的某一群组或受管理服务器 的唯一标识符。例如,容器标识符可以用于识别被Tuxedo事务系统中的群组或WebLogic事 务处理系统中的受管理服务器处理的事务。其余GTRID部分513包含GTRID的其余字节。
[0056] 因此,可以使用全局事务标识符(GTRID)、格式标识符(ID)和容器标识符(ID)来 查询事务恢复信息记录501。此外,系统可以使用来自资源管理器的可疑GTRID和格式标识 符(ID)的列表作为所返回的事务恢复记录的界定参数。
[0057] 根据本发明一实施例,可以将恢复信息记录501存留到数据库500或其他类型的 持久性储存器的重做(redo)日志中。
[0058] 事务恢复
[0059] 图6例示了根据本发明一实施例基于事务日志到数据库的内联委托来恢复事务 的系统。如图6所不,中间层事务式系统600包括一个或多个事务管理器601-602。此外, 中间层事务式系统600包括多个资源管理器603-604、以及包含事务恢复信息表606的数据 库 605。
[0060] 在恢复处理开始时,事务管理器601可以向与数据库605相关联的资源管理器603 查询存储在恢复信息表(LTXID表)606中的事务恢复信息(步骤1)。事务管理器401可以 在它从资源管理器603接收到所查询的事务恢复信息之后继续恢复处理(步骤2)。
[0061] 如图6所示,事务管理器602可以对每个XA资源管理器(诸如资源管理器604) 执行XAjecover ()调用(步骤3)。然后,XA资源管理器604可以返回可疑事务列表(步 骤4),可疑事务是已经准备但未提交的事务。
[0062] 此外,事务管理器602可以将可疑事务的列表与从数据库605获得的事务恢复信 息记录进行匹配,以确定是应提交还是应回滚可疑事务(步骤7)。例如,如果可疑事务列表 中的可疑事务在事务恢复信息记录中匹配,则可以提交该事务;否则,可以回滚该事务。
[0063] 此外,事务管理器601可以对资源管理器603执行恢复(步骤5)。因此,资源管理 器603可以返回可疑事务列表(步骤6)。可以将该可疑事务列表与从数据库605获得的事 务恢复信息记录进行匹配。如果该可疑事务列表中的可疑事务在事务恢复信息中匹配,则 可以提交该事务;否则,可以回滚该事务(步骤8)。
[0064] 可替代地,事务管理器601-602可以在它们检索到可疑事务列表之后检索事务恢 复信息。然后,可以使用从资源管理器603-604返回的可疑事务列表作为传递到函数的界 定参数以指示返回多少个记录。
[0065] 另外,数据库可以定期地清除持久性储存器中的事务恢复信息。当超过事务恢复 记录的"保留时间"时,可以清除这些事务恢复记录。例如,"保留时间"可以等于或大于事 务处理系统上设置的放弃超时。另外,当在给定会话上使用新的局域XID时,可以清除恢复 记录。此外,数据库服务器中的计时器线程每隔一间隔(例如,每30秒)运行,以检查将被 清除的这样的候选。
[0066] 根据本发明一实施例,可以使用所述系统来处理跨多个事务管理器的复杂事务, 诸如跨事务管理器603-604的分布式事务610。
[0067] 在例示"专有"情况的例子中,事务管理器601和事务管理器602可以基于同一产 品。例如,两个事务管理器601和602可以都是WebLogic事务管理器或Tuxedo事务管理 器。如图6所示,事务管理器601可以是协调事务管理器,而事务管理器602可以是事务树 中的下级事务管理器。
[0068] 为了恢复这样的事务,事务管理器601 (其可以是根节点/服务器/事务管理器/ 协调器)可以回调插入的下级的事务树,其包括事务管理器602。因此,事务管理器601可 以在适合于每个Xid的下级上提交或回滚事务610。下级(例如,事务管理器602)又可以 在它们已经被征调到的实际资源管理器(例如,资源管理器604)上发出这些调用。
[0069] 下级(例如,事务管理器602)在这种情况下可以充当资源管理器,因为它们记载 了它们自己的可疑记录。根节点(例如,事务管理器601)可以不从下级(例如,事务管理器 602)接收记录,以便恢复事务610并且减少下级的中间层事务日志(TL0G)。例如,通过使 下级直接查询数据库605中的根LLR记录,可以在不记载附加信息的情况下恢复WebLogic 中的事务,因为所述系统可以通过检查GTRID中的协调器标识符(ID)来识别下级。
[0070] 在例示"跨产品专有"情况的另一例子中,事务管理器601和事务管理器602可以 基于同一供应商的不同产品。例如,事务管理器601可以是Tuxedo事务管理器,事务管理 器602可以是WebLogic事务管理器,反之亦可。在这种情况下,可能需要将关于下级和/ 或资源的附加信息作为Xid/提交记录的一部分存储,S卩,本质上可以将事务树分解为作为 提交记录的一部分存储的图表。
[0071] 在例示"互操作(0TS和WS-AT) "情况的又一例子中,事务管理器601和事务管理器 602可以基于不同供应商的不同产品,其在没有互操作组件的情况下不能彼此直接通信。与 前一种情况不同,所述系统不能分解整个事务树,并且可能需要存留这些外来端点,这些外 来端点可能有几千字节(kb)。此外,用于互操作协议的假定中止恢复可能不能用自上而下 的XA恢复调用来驱动,而是替代地用来自下级节点/服务器/事务管理器/协调器的自下 而上的调用来驱动。例如,当WebLogic和/或Tuxedo事务管理器是下级时,可能需要存留 上级端点。
[0072] 图7是根据本发明一实施例的基于事务日志到数据库的内联委托来恢复事务的 例示性流程图。如图7所示,在步骤701,事务管理器可以从持久性储存器检索事务的事务 恢复信息,其中事务恢复信息在准备阶段期间经由与持久性储存器相关联的资源管理器存 留。此外,在步骤702,事务管理器可以从所述事务的一个或多个参与的资源管理器检索一 个或多个可疑事务。然后,在步骤703,事务管理器可以通过将所述一个或多个可疑事务与 事务恢复信息进行匹配来确定是提交还是回滚所述一个或多个可疑事务。
[0073] 本发明可以方便地使用包括一个或多个处理器、存储器和/或根据本公开的教导 编程的计算机可读存储介质的一个或多个常规通用或专用数字计算机、计算装置、机器或 微处理器来实现。如软件领域中的技术人员将明白的,熟练的程序员可以容易地基于本公 开的教导来准备适当的软件编码。
[0074] 在一些实施例中,本发明包括计算机程序产品,该计算机程序产品是其上/其中 存储可以用于将计算机编程为执行本发明的任一处理的指令的存储介质或计算机可读介 质(一个或多个)。存储介质可以包括但不限于:任何类型的盘(包括软盘、光学盘、DVD、 CD-ROM、微驱动器和磁光盘)、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存装置、磁性或光学 卡、纳米系统(包括分子存储器1C)、或用于存储指令和/或信息的任何类型的介质或装置。
[0075] 前面已经为了例示和描述的目的提供了对本发明的描述。并非意图穷举或者使本 发明限于所公开的精确形式。许多修改和变型对于本领域的熟练从业者将是显而易见的。 为了最佳地说明本发明的原理及其实际应用,选择并描述了实施例,从而使得相关领域的 其他技术人员能够针对各种实施例理解具有适合于所设想的实际用途的各种修改的本发 明。意图是本发明的范围由权利要求及其等同形式限定。
【权利要求】
1. 一种用于在多个资源管理器上恢复事务的方法,所述方法包括: 从持久性储存器检索事务的事务恢复信息,其中所述事务恢复信息是在准备阶段期间 经由与所述持久性储存器相关联的资源管理器存留的; 从所述事务的一个或多个参与的资源管理器检索一个或多个可疑事务;以及 通过将所述一个或多个可疑事务与所述事务恢复信息进行匹配来确定是提交还是回 滚所述一个或多个可疑事务。
2. 根据权利要求1所述的方法,还包括: 通过执行以下步骤之一来恢复所述一个或多个可疑事务中的可疑事务: 如果在所述事务恢复信息中找到匹配,则提交所述可疑事务;和 如果在所述事务恢复信息中没有找到匹配,则回滚所述可疑事务。
3. 根据权利要求1所述的方法,还包括: 通过到所述持久性储存器的连接来设立事务恢复信息表。
4. 根据权利要求1所述的方法,还包括: 在用于准备与所述持久性储存器相关联的资源管理器的同一调用中将所述事务恢复 信息存留到所述持久性储存器。
5. 根据权利要求1所述的方法,还包括: 周期性地从所述持久性储存器删除所述事务恢复信息。
6. 根据权利要求1所述的方法,还包括: 将所述事务恢复信息存留到所述持久性储存器的正常表和所述持久性储存器的重做 日志中的至少一个。
7. 根据权利要求1所述的方法,还包括: 使所述事务恢复信息包括全局事务标识符(GTRID)、格式标识符(ID)以及关于所述事 务的其他参与者的信息。
8. 根据权利要求1所述的方法,还包括: 使用以下信息中的至少一个来查询所述持久性储存器: 全局事务标识符(GTRID); 格式标识符(ID)和容器标识符(ID);以及 来自所述一个或多个资源管理器的、作为所返回的事务恢复信息的界定参数的可疑 GTRID和格式标识符(ID)的列表。
9. 根据权利要求1所述的方法,还包括: 使所述事务跨多个事务管理器,其中所述事务管理器能具有不同的产品类型。
10. 根据权利要求9所述的方法,还包括: 在所述持久性储存器中存留通过分解事务树而产生的图表,或 在所述持久性储存器中存留一个或多个外来端点。
11. 一种用于恢复事务的系统,所述系统包括: 事务管理器;以及 多个资源管理器,所述资源管理器在中间层事务式系统中与所述事务管理器进行通 信,并且 其中,所述事务管理器进行操作以执行包括以下的步骤: 从持久性储存器检索所述事务的事务恢复信息,其中所述事务恢复信息是在准备阶段 期间经由与所述持久性储存器相关联的资源管理器存留的; 从所述事务的一个或多个参与的资源管理器检索一个或多个可疑事务;以及 通过将所述一个或多个可疑事务与所述事务恢复信息进行匹配来确定是提交还是回 滚所述一个或多个可疑事务。
12. 根据权利要求11所述的系统,其中: 所述事务管理器进行操作以通过执行以下步骤之一来恢复所述一个或多个可疑事务 中的可疑事务: 如果在所述事务恢复信息中找到匹配,则提交所述可疑事务;和 如果在所述事务恢复信息中没有找到匹配,则回滚所述可疑事务。
13. 根据权利要求11所述的系统,其中: 所述事务管理器进行操作以通过到所述持久性储存器的连接来设立事务恢复信息表。
14. 根据权利要求11所述的系统,其中: 所述事务管理器进行操作以在用于准备与所述持久性储存器相关联的资源管理器的 同一调用中将所述事务恢复信息存留到所述持久性储存器。
15. 根据权利要求11所述的系统,其中: 所述事务恢复信息被周期性地从所述持久性储存器删除。
16. 根据权利要求11所述的系统,其中: 所述事务管理器进行操作以将所述事务恢复信息存留到所述持久性储存器的正常表 和所述持久性储存器的重做日志中的至少一个。
17. 根据权利要求11所述的系统,其中: 所述事务恢复信息包括全局事务标识符(GTRID)、格式标识符(ID)以及关于所述事务 的其他参与者的信息。
18. 根据权利要求11所述的系统,其中: 所述事务管理器进行操作以使用以下中的至少一个来查询所述持久性储存器: 全局事务标识符(GTRID); 格式标识符(ID)和容器标识符(ID);以及 来自所述一个或多个资源管理器的、作为所返回的事务恢复信息的界定参数的可疑 GTRID和格式标识符(ID)的列表。
19. 根据权利要求11所述的系统,其中: 所述事务跨多个事务管理器,其中所述事务管理器能具有不同的产品类型,其中事务 管理器进行操作以执行以下步骤之一: 在所述持久性储存器中存留通过分解事务树而产生的图表; 和 在所述持久性储存器中存留一个或多个外来端点。
20. -种非暂时性机器可读存储介质,具有存储在其上的指令,所述指令在运行时使系 统执行包括以下的步骤: 从持久性储存器检索事务的事务恢复信息,其中所述事务恢复信息是在准备阶段期间 经由与所述持久性储存器相关联的资源管理器存留的; 从所述事务的一个或多个参与的资源管理器检索一个或多个可疑事务;以及 通过将所述一个或多个可疑事务与所述事务恢复信息进行匹配来确定是提交还是回 滚所述一个或多个可疑事务。
【文档编号】G06F9/46GK104094227SQ201380008047
【公开日】2014年10月8日 申请日期:2013年3月15日 优先权日:2012年3月16日
【发明者】P·帕金森, T·J·利特尔, S·H·罗艾斯科, C·L·科尔雷恩, E·希伦 申请人:甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1