CN1573697A - 在软件环境中用于保持资源完整性的装置和方法 - Google Patents

在软件环境中用于保持资源完整性的装置和方法 Download PDF

Info

Publication number
CN1573697A
CN1573697A CNA2004100343741A CN200410034374A CN1573697A CN 1573697 A CN1573697 A CN 1573697A CN A2004100343741 A CNA2004100343741 A CN A2004100343741A CN 200410034374 A CN200410034374 A CN 200410034374A CN 1573697 A CN1573697 A CN 1573697A
Authority
CN
China
Prior art keywords
resource
affairs
response
entrust
software
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
CNA2004100343741A
Other languages
English (en)
Other versions
CN100435101C (zh
Inventor
丹尼尔·M·多兰斯
里卡多·N·奥利维里
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1573697A publication Critical patent/CN1573697A/zh
Application granted granted Critical
Publication of CN100435101C publication Critical patent/CN100435101C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种用于保持在软件环境中的数据的完整性的装置和方法。利用所述装置和方法,识别与事务相关联的独立软件资源,并且开始处理这些资源。当这些资源的处理结束时,它们相关联的API返回消息来指示软件资源委托或者不能委托以及为什么软件资源不能委托的原因。根据这个原因,执行适当的差错解析和恢复操作,并且仅仅向那些不能委托的软件资源重新提交事务。已经委托的软件资源保持它们的状态。以这种方式,避免恢复被委托的软件资源。

Description

在软件环境中用于保持资源完整性的装置和方法
技术领域
一般地,本发明涉及一种改进的计算系统。更具体而言,本发明涉及当处理涉及多个软件资源的事务时保持在计算系统中的数据的完整性的资源完整性引擎。
背景技术
除了非常不重要的应用之外,在今天的软件环境中执行的应用程序与多个软件资源交互以便完成指定的任务是很普遍的。许多时候,这些软件资源在执行应用程序期间一般彼此独立,但都需要作为原子单元,即不可分割的整体。具有一起作为原子单元的多个资源执行单元被称为一个事务。
例如,单一任务可能需要一个数据库软件资源来执行在数据库中的记录更新,并且需要一个消息传送软件资源来向另一个软件资源发送指示更新完成消息。所述事务将包括更新数据库记录和发送消息。必须执行这两个操作以便成功地完成所述事务。
某些软件操作系统提供了用于在独立的资源之间执行协作的机制。这个机制经常被称为事务管理器。这样的机制建立一个单个的范围(context,它作为单个的原子单元,用于在独立的资源中分布的每个事务操作。在这种类型的事务管理器中用于管理事务的一种公知技术是使用一种两阶段委托处理(two phase commit process)。
所述两阶段委托处理包括“准备阶段”和“委托阶段”。在“准备阶段”期间,事务管理器通知所有的参与者所意欲的事务,并且请求它们确认它们准备好委托或者回退(rollback)挂起的事务。在“委托阶段”期间,请求事务的所有参与者委托事务,即完成事务中它们的部分。如果一个参与者在“准备阶段”不能委托事务或未响应,则事务失败并恢复任何改变。由还未被所有的参与者完成的一个事务做出的改变的回退意欲保持在系统中的数据的完整性。即,必须保持在所述事务中涉及的软件资源的状态的同步。
所述事务管理器对于应用程序透明地提供这个功能。虽然当所管理的软件资源被计算系统软件支持时这是极好的可接受手段,但不是所有不同的软件资源类型都必然被每个事务管理器支持。而且,不是所有的软件环境包括可以用于通过例如一个两阶段委托处理来管理事务的事务管理器。
因此,有益的是,具有一种装置和方法,用于在没有事务管理器或可能在计算系统中存在的事务管理器不支持某些软件资源的时候保持在计算系统中的数据的完整性。
发明内容
本发明提供了一种装置和方法,用于在没有事务管理器的情况下保持在软件环境中的资源完整性。利用本发明的装置和方法,提供了一种资源完整性引擎来用于与应用程序和多个软件资源应用程序接口(API)接口。所述资源完整性引擎从应用程序接收一个事务,所述应用程序识别在所述事务中涉及的多个软件资源。所述资源完整性引擎未在事务中识别的软件资源识别登记到操作系统的适当的API,并且经由API向软件资源发送一个请求以请求它们以它们准备好接收事务的确认来响应。
在从软件资源接收的一个确认时,所述资源完整性引擎向诸如数据库、通信信道、队列、消息传送软件等的软件资源发送所述事务,使得它们执行在所述事务中指示的必要功能,即委托,不委托。一个软件资源可能因为许多不同的原因而不能委托,所述原因包括例如通信连接故障、变得失效的数据库连接、资源管理器失败、队列满、满足超时条件、达到最大数量的可能连接、硬件故障,所述硬件故障诸如盘驱动器、系统存储器用完等。
利用本发明,资源完整性引擎的识别引擎从与软件资源相关联的API向回接收消息,指示是否各个软件资源被成功地委托或委托失败。所述识别引擎使用逻辑来确定是否所有的软件资源被成功地委托、是否没有软件资源被成功地委托、或是否存在事务的部分委托。
如果被识别为事务的一部分的所有软件资源被成功地委托、即成功地执行了与所述软件资源相关联的事务功能,则事务无差错地被完成。但是,如果与所述事项相关联的一个或多个软件资源不能委托,则识别引擎确定是否和如何提交与不能委托的软件资源相关联的事务的剩余部分。这与公知的两阶段委托操作相反,所述公知的两阶段委托操作当即使一个资源不能委托时恢复改变。
在未成功地委托任何与事务相关联的软件资源的情况下,可以作为整体向软件资源重新提交所述事务,因为前一个提交未导致任何软件资源的状态改变。但是,在没有差错恢复的情况下,重新提交失败的事务的部分可能不能带来成功地委托软件资源。因此,识别引擎分析从API接收的响应消息以确定为什么在前一次事务提交中软件资源不能委托。根据所确定的原因,识别引擎启用或者适当的差错恢复或者其他适当的连续逻辑,以便提高下述可能性:重新提交事务将导致成功地提交所有的软件资源。
在部分委托与事务相关联的软件资源的情况下,识别引擎使用这样的逻辑,它用于在向未委托的软件资源重新提交失败的事务的部分的同时,保持已经委托的软件资源的数据完整性。在这种情况下,识别引擎识别哪些软件资源已经被委托并且哪些还没有。仅仅未成功地被委托的那些软件资源作为事务处理的部分被重新提交,以便避免复制可能引起在事务内的差错状态的数据。
用于重新提交的逻辑类似于上述针对没有软件资源被委托的情况。即,由软件资源的API返回的消息被识别引擎分析以确定是否软件资源成功地委托或是否存在由一个或多个软件资源遇到的差错。在一个实施例中,事务固有的信息被用于确定是否已经委托了一个资源。例如,一个事务可以具有唯一的标识号。如果在资源内发现这个唯一的标识符,则识别引擎可以推论资源被委托。以这种方式,软件程序能够保持每个软件资源的状态而不明确地跟踪数据的完整性。注意,为了使得识别引擎查询一个资源,所述资源实体必须能够经由资源的API或其他登记机制检索。
资源完整性引擎的识别引擎可以随后向在数据结构中的非委托项目施加一个或多个恢复和重新提交规则。这些规则可以包括将差错代码与用于向相关联的软件资源重新提交事务的正确流程相关联。所述规则可以查看所返回的差错代码和其中返回差错代码的范围。例如,如果差错代码指示与输出队列的通信连接失败,则通过所述规则识别的重新提交流程可以是等待预定的时期和随后向输出队列重新提交事务。
成功地委托的软件资源不将它们的改变恢复。本发明的一个特征是这样的事实,即本发明不恢复“已经被委托的”资源。它“检测”情况,并且在检测到时立即重新提交未委托的资源。最后,如果重新提交最终失败,则向差错处理器发送整个事务以确定和纠正问题。因此,虽然本发明不进行恢复,但是提供明确的指示以指示事务未被完成。基本原理是在多数情况下,重新提交会成功。在重新提交未成功的很少的情况下,危险的资源被识别并且被发送到差错处理机制。那个机制可以事实上检测包括恢复的任何数量的事情。
因此,在本发明的情况下,提供一种机制来用于处理在没有事务管理器的软件环境中的事务。而且,本发明提供了一种机制,其中事务的部分可以被重新提交到不能委托的那些软件资源的操作系统,以便完成事务和避免恢复对被委托的软件资源做出的改变。将在下面对于优选实施例的详细说明中说明本发明的这些和其他特征和优点,或者在考虑到下面对于优选实施例的详细说明的情况下,本发明的这些和其他特征和优点对于本领域的技术人员变得显然。
附图说明
在所附的权利要求中给出了被相信有本发明的特点的新颖特征。但是,通过结合附图下面详细说明图解的实施例,本发明本身以及使用的优选方式及其另外的目的和优点将会被最佳地理解。
图1是其中可以实现本发明的分布数据处理系统的示意图;
图2是其中可以实现本发明的服务器计算器件的示意图;
图3是按照可以实现本发明的客户或独立计算器件的示意图;
图4是图解本发明的主要操作部件的关系的示意方框图;
图5是按照本发明的一个示范实施例的资源完整性引擎的示意方框图;
图6是图解本发明的示例操作的示意图;以及
图7是简述本发明的示意操作的流程图。
具体实施方式
本发明提供了一种用于管理在不包括事务管理器的软件环境中管理事务的机制。而且,本发明提供了一种用于向与不能在事务的前一个提交中委托的事务相关联的软件资源重新提交事务的机制。本发明的机制可以在不脱离本发明的精神和范围的情况下在独立计算器件或分布数据处理环境中被实现。在一个优选实施例中,本发明在分布数据处理系统的服务器计算器件中被实现。因此,以下提供图1-3,以便给出用于讨论本发明的特征和优点的范围。
现在参见附图,图1描述了其中可以实现本发明的数据处理系统的网络的图示。网络数据处理系统100是可以实现本发明的计算机网络。网络数据处理系统100包括网络102,它是用于提供在网络数据处理系统100内在各种器件和连接在一起的计算机之间的通信链路。网络102可以包括诸如有线、无线通信链路或光纤电缆的连接。
在所述的示例中,服务器104与存储单元106一起连接到网络102。另外,客户端108、110和112连接到网络102。这些客户端108、110和112可以例如是个人计算机或网络计算机。在所述的示例中,服务器104向客户端108-112提供数据,诸如引导文件、操作系统图像和应用程序。客户端108、110和112是对于服务器104的客户端。网络数据处理系统100可以包括未示出的附加服务器、客户端和其他器件。在所述的示例中,网络数据处理系统100是包括网络102的因特网,表示世界范围内的网络和网关集合,所述网络和网关使用传输控制协议/因特网协议(TCP/IP)套件来彼此通信。在因特网的中心是在主节点或主计算机之间的高速数据通信线路的干线,所述主节点或主计算机包括成千上万的商用、政府、教育和其他计算机系统,它们为数据和消息取路由。当然,网络数据处理系统100也可以被实现为多个不同类型的网络,诸如内联网、局域网(LAN)或广域网(WAN)。图1意欲作为一个示例,而不是对于本发明的结构限定。
参见图2,其中描述了按照本发明的一个优选实施例的、可以被实现为诸如图1中的服务器104的服务器的数据处理系统的方框图。数据处理系统200可以是对称的多处理器(SMP)系统,包括连接到系统总线206的多个处理器202和204。或者,可以使用单个处理器系统。也连接到系统总线206的是存储器控制器/高速缓冲存储器208,它向本地存储器209提供一个接口。输入/输出总线桥210连接到系统总线206,并且向输入/输出总线212提供一个接口。存储器控制器/高速缓冲存储器208和输入/输出总线桥210可以如图所示来集成。
连接到输入/输出总线212的外围部件互连(PCI)总线桥214提供到PCI局部总线216的接口。多个调制解调器可以连接到PCI局部总线216。典型的PCI总线实现方式支持四个PCI扩展槽或外加连接器。到图1中的客户端108-112的通信链路的提供可以经由外加板、通过连接到PCI局部总线216的调制解调器218和网络适配器220。
附加的PCI总线桥222和224提供对于附加的PCI局部总线226和228的接口,从所述接口可以支持附加的调制解调器或网络适配器。以这种方式,数据处理系统200使得可以连接到多个网络计算机。存储器映射图形适配器230和硬盘232也可以如图所示直接或间接地连接到输入/输出总线212。
本领域内的技术人员可以明白图2中所述的硬件可以不同。例如,除了所述的硬盘之外或替代所述的硬盘,还可以使用诸如光盘驱动器等其他的外围器件。所述的示例不意欲对本发明的结构限定。
图2所述的数据处理系统可以是例如位于纽约Armonk的国际商用机器公司的产品IBM eServer pSeries系统,它运行先进的交互执行体(AIX)操作系统或LINUX操作系统。
现在参见图3,其中描述了图解实现本发明的数据处理系统的方框图。数据处理系统300是客户端计算机或独立计算器件的示例。数据处理系统300使用外围部件互连(PCI)局部总线结构。虽然所述的示例使用PCI总线,但是也可以使用其他的总线结构,诸如加速图形端口(AGP)和工业标准架构(ISA)。处理器302和主存储器304通过PCI桥308连接到PCI局部总线306。PCI桥308也可以包括用于处理器302的集成存储器控制器和高速缓冲存储器。到PCI数据局部总线306的附加连接可以通过直接的部件互连或通过外加板来作出。在所述的示例中,局域网(LAN)适配器310、SCSI主总线适配器312和扩展总线接口314通过直接的部件连接来连接到PCI局部总线306。相反,音频适配器316、图形适配器318和音频/视频适配器319通过插入到扩展槽中的外加板连接到PCI局部总线306。扩展总线接口314提供对于键盘和鼠标适配器320、调制解调器322和附加存储器324的连接。小计算机系统接口(SCSI)主总线适配器312提供对于音频驱动器326、磁带驱动器328和CD-ROM驱动器330的连接。典型的PCI局部总线实现方式支持三个或四个PCI扩展槽或外加连接器。
一个操作系统运行在处理器302上,并且用于协调和控制在图3中的数据处理系统300内的各个部件。操作系统可以是商业上可以获得的操作系统,诸如可以从微软获得的Windows XP。诸如Java的面向对象的编程系统可以与所述操作系统相结合地运行,并且提供从运行在数据处理系统300上的Java程序或应用程序对操作系统的调用。“Java”是Sun Microsystems公司的商标。用于操作系统、即面向对象的操作系统的指令以及应用或程序位于诸如硬盘驱动器326的存储器件上,并且可以被装入主存储器304中来由处理器302执行。
本领域中的技术人员将明白,图3中的硬件可以依赖于实现方式而不同。除了图3中所述的硬件之外或替代图3中所述的硬件,还可以使用其他的内部硬件或外围器件,诸如快闪只读存储器(ROM)、等效的非易失性存储器或光盘驱动器等。而且,本发明的处理可以被应用于多处理器数据处理系统。
作为另一个示例,数据处理系统300可以是被配置为不依赖于一些类型的网络通信接口而可启动的独立系统。作为另一个示例,数据处理系统可以是个人数字助理(PDA)器件,它被配置了ROM和/或快闪ROM,以便提供用于存储操作系统结尾和/或用户产生的数据的非易失性存储器。
图3中所述的示例和上述的示例不意味着结构限定。例如,除了采用PDA形式之外,数据处理系统300也可以是笔记本计算机或手持计算机。数据处理系统300也可以是信息站或万维网设备。
如上所述,本发明提供了一种用于不使用事务管理器而保持在软件环境中的资源完整性的装置和方法。本发明提供了一种资源完整性引擎,它在部分委托的事务中向软件资源重新提交事务的同时,保证了计算系统的数据的完整性。
现在参见图4,资源完整性引擎420被提供来与应用程序410和多个软件资源应用程序接口(API)430-450连接。所述多个软件资源应用程序接口(API)430-450与多个软件资源460-480相关联。应用程序410、资源完整性引擎420、API430-450和软件资源460-480可以驻留在相同或不同的计算器件上。例如,应用程序410可以驻留在客户计算器件上,同时资源完整性引擎420、API430-450和软件资源460-480驻留在服务器计算器件上。
应用程序410向识别在事务中包括的多个软件资源460-480的资源完整性引擎420提交用于处理的事务。所述资源完整性引擎420识别作为事务的一部分的软件资源460-480和它们各自的API430-450。资源完整性引擎420随后经由所识别的软件资源460-480的API430-450向所识别的软件资源460-480提交事务。这些API430-450提供关于它们对应的软件资源460-480是否成功地执行事务中的它们的一部分的指示。
例如,事务可以采取下面的形式:向输入队列(inbound queue)上放置数据库更新消息,向所述更新消息施加业务规则以便更新数据库,然后对输出队列(outbound queue)设置更新完成消息。从这个事务,很清楚使用两个资源——消息传递中间件资源和数据库软件资源。用于这两个资源的API被假定已经对操作系统登记,并且可以被资源完整性引擎420经由所述操作系统以公知的方式调用,以便由API返回的成功/差错代码可以被资源完整性引擎420查看。
资源完整性引擎420的主要功能是保持由软件资源460-480管理的数据的完整性。为了保持完整性,需要资源完整性引擎420保持软件资源460-480彼此同步。这意味着独立的软件资源460-480相对于正在被执行的事务保持为当前。如果不委托至少一个软件资源460-480,则存在一个条件,其中所述软件资源460-480与参加所述事务的任何其他软件资源460-480不同步。
为了处理事务以便事务相对于所述软件资源作为原子单元,并且为了保持由软件资源管理的数据的完整性以便软件资源同步,本发明执行下列五种功能:
(1)识别在事务中包括的独立软件资源;
(2)验证对于软件资源的成功委托;
(3)确定是否事务的所有的软件资源被成功地委托;
(4)识别未委托的软件资源和它们未委托的原因;
(5)根据所识别的软件未被委托的原因来恢复差错,并且重新向未委托的软件资源提交所述事务。
如上所述,资源完整性引擎420接收用于识别在事务中包括的软件资源的事务。从在事务中的这个信息,资源完整性引擎420可以通过相关联的API430-450对其中使用本发明的计算器件的操作系统的登记来识别相关联的API430-450。而且,API430-450提供一个接口,通过这个接口,资源完整性引擎420被通知相关联的软件资源460-480成功地或不成功地完成它的事务执行线程,即是否软件资源委托了事务。因此,与软件资源460-480的API的交互提供资源完整性引擎420执行上述功能(1)和(2)的能力,即识别独立的软件资源和验证成功委托软件资源的能力。
资源完整性引擎420在从应用程序410接收到事务时识别作为事务一部分的软件资源460-480的适当的API430-450。资源完整性引擎420也初始化用于保持关于事务的范围状态信息的数据结构。资源完整性引擎420然后经由所识别的软件资源460-480的各自的API430-450向所识别的软件资源460-480发送事务。资源完整性引擎420然后等待来自API430-450的响应,即指示软件资源的成功的委托或关于软件资源的差错状态。成功委托或差错状态然后被记录在与事务相关联的数据结构中。
可以根据计算系统的具体实现方式来以多种不同的方式来执行事务。例如,在一种具体的实现方式中,处理可以基于一组需要执行的顺序流的软件指令,以便当成功地委托独立的软件资源时,处理转到在事务中要共享的下一个独立的软件资源。在另一种示范实现方式中,可以利用事件通知逻辑。例如,当独立的软件资源委托时,委托资源的程序将通知资源完整性引擎已经成功地完成了所述行为。所提供的信息的一部分是资源的成功或失败的状态指示。
以上述的事件通知实现方式来描述本发明的优选实施例。但是,应当明白,也可以使用顺序处理流。在这样的情况下,由资源完整性引擎420保持的范围状态数据结构可以包括关于软件资源的顺序化的信息以及它们是否返回成功的委托的信息。如果一个软件资源返回差错状态,则在所述顺序中在返回差错的软件资源后面出现的任何软件资源将没有它们的当前状态的输入项,因为它们需要成功地委托返回差错的软件资源。
在任何一种情况下,资源完整性引擎420可以查看事务的范围状态数据结构中的状态信息,以确定事务的所有的软件资源是否委托了所述事务(上述的功能3)。资源完整性引擎420使用识别引擎来在从被提交到软件资源460-480的事务产生的可能情况之间区别(上述的功能4)。如果在范围状态数据结构中列出的软件资源的任何一个返回差错状态,则事务不成功地完成并且事务的恢复和重新提交发生。如果在范围状态数据结构中列出的软件资源的任何一个返回成功的委托,则事务成功地完成,并且执行成功事务的通常处理。“通常处理”指的是事务产生期望的行为,然后执行对于实现专有的处理,所述期望的行为诸如成功地在数据库中记录病人信息并且向另一个系统发送那个信息,正确地记录银行存款,成功地飞机订票等。
例如,假定接收到病人消息,它包括写入到数据库记录中的信息。这个信息包括在消息中包括的唯一ID。另外,一旦更新数据库,则消息内容也被提供到另一个消息传递系统。如果在数据库更新和向下一个系统发送消息之间发生问题,则数据可能不同步。如果所述消息过去在第一系统中增加一个病人并且第一系统现在获得那个病人的一个更新,则它可以适当地更新那个记录。但是,如果所述更新被发送到下一个消息传递系统,则将失败,因为从未接收到初始记录。
如果没有本发明,则当在第一系统上重新排队初始消息以处理时(因为它从未被消息传递系统委托而是仅仅在数据库系统上被委托),返回一个差错来指示在数据库中的记录的复制。这将终止在已知系统中对于那个事务的处理。
在使用本发明的情况下,识别引擎确定在数据库中的标识符匹配在消息中的标识符,并且允许后续的处理发生,即向下一个系统上发送消息。
在未成功地委托任何软件资源的情况下,则在事务中的整套写作操作可以基本上被重复。在实际的意义上,这意味着初始软件资源失败,并且应当放弃后续软件资源的处理。但是,如果不应用差错解析和恢复操作,这不保证重复操作将导致成功地委托软件资源。所执行的具体差错解析和恢复操作是基于当试图委托事务时由软件资源遇到的差错类型。
例如,资源完整性引擎420的识别引擎可以对于由与软件资源460-480相关联的API430-450返回并且存储在范围状态数据结构中的的差错指示符应用识别规则,以便在重新提交事务之前确定要执行的差错解析和恢复操作的类型。这样的差错解析和恢复操作可以涉及启动另一个软件操作以主动地解析差错和恢复软件资源,或者可以是消极的解析和恢复,诸如在重新向软件资源提交事务之前等待预定的时间。一旦执行了适当的差错解析和恢复操作,这资源完整性引擎420可以经由软件资源460-480的API430-450向软件资源460-480重新提交事务(上述的功能5)。
在一些软件资源委托而其他的不委托的情况下,资源完整性引擎420在能够仅仅向那些不委托的软件资源重新提交事务的同时保证整体数据的完整性。以这种方式,避免了可能导致在事务内的实际差错状态、使得不能完成事务的数据复制。
在部分委托的情况下,如果软件资源记录了相关联的差错状态,或者如果软件资源实质上第一次被处理,资源完整性引擎420的识别引擎对于在事务的范围状态数据结构中的每个软件资源确定是否已经委托了所述软件资源。如果已经委托了软件资源,则由软件资源对数据作出的改变不被恢复。相反,保持保持由软件资源作出的数据改变的当前状态。
如果软件资源具有相关联的差错状态,则根据差错的识别来执行适当的差错解析和恢复操作,并且仅仅向那些具有差错状态的软件资源重新提交所述事务。一旦所有的软件资源指示它们已经委托了所述事务,则执行通常的处理以完成在系统中的事务。如果一些软件资源继续返回差错条件,则本发明的差错解析和重新提交逻辑可以继续直到所有的软件资源委托或直到进行了预定数量的重新提交。如果在进行了预定数量的重新提交后仍然存在一个或多个还没有委托的软件资源,则可以确定事务不能被成功地完成,并且由其他软件资源作出的改变可以被恢复。
因此,本发明提供了用于一种机制,用于管理其中没有事务管理器的软件环境中的事务。而且,本发明提供了一种机制,用于监控与事务相关联的软件资源,以便在执行适当的差错解析和恢复操作之后未委托的软件资源可以将事务重新提交。使用本发明,仅仅未委托的软件资源将事务重新提交,那些已经委托的软件资源将不改变它们的状态。
图5是按照本发明的资源完整性引擎的示意方框图。在图5中的单元可以以软件、硬件或软件和硬件的任何组合来实现。在一个优选实施例中,图5的单元实现为由一个或多个处理器件执行的软件指令。
如图5中所示,资源完整性引擎包括控制器510、接口520、一个或多个API接口530、识别引擎540、事务状态数据结构存储器550、差错解析和恢复/重新提交规则数据库560(以下称为“规则数据库”)。元件510-560经由控制/数据信号总线570彼此通信。虽然图5示出了总线结构,本发明不限于此,可以在不脱离本发明的范围和精神的情况下使用便利在元件510-560之间的控制信息和数据的通信的任何结构。
控制器510控制资源完整性引擎的整体操作,并且编排其他元件520-560的操作。接口520向一个或多个应用程序提供通信路径。API接口530向通信路径提供软件资源的API,资源完整性引擎利用它来工作。控制器510经由接口520接收事务,并且经由API接口530经由软件资源的API向软件资源发送事务消息。API继而返回指示软件资源的成功委托或差错状态的消息。由API返回的这些软件资源的状态被控制器510存储在事务状态数据结构存储器550的事务状态数据结构中。
识别引擎540针对在下述情况之间区别而执行上述的功能:所有软件资源被委托,没有软件资源被委托,在事务中涉及软件资源的部分委托。识别引擎540还根据存储在事务状态数据结构存储器550内的事务状态数据来识哪些软件资源委托和哪些没有。识别引擎540可以随后应用来自规则数据库560的规则以确定要对软件资源执行的正确的差错解析和恢复操作以及如何和何时向软件资源重新提交事务。
在图5所示的机制的情况下,可以向其中没有事务管理器的软件环境中的软件资源提交事务。而且,在图5的机制的情况下,可以在保持委托的软件资源的状态的同时向未委托的软件资源重新提交事务。因此,本发明避免必须恢复由委托的软件资源做出的改变,以便可以重新发送整个事务。
图6提供了在部分委托情况中的本发明的示例操作。如图6所示,所涉及的事务包括:消息资源向输入队列610上布置一个更新消息;向所述更新消息的内容应用商业规则以便内容被存储在数据库资源620中;然后一个更新完成消息被所述消息资源布置在输出队列630上。在这个示例中,假定事务被处理以便所述消息资源将消息布置在输入队列610上、数据库资源620被更新、但是在更新完成消息被布置在输出队列上之前有失败。
作为上述失败的结果,数据库资源的API返回数据库资源被委托的消息,但是消息资源的API指示消息资源未被委托和为什么消息资源未委托的差错状态。根据这个差错状态,本发明的识别引擎将在向消息资源重新提交事务之前应用适当的差错解析和恢复操作。所述事务将不被重新提交到数据库资源。
在向消息资源重新提交事务中,消息资源可能试图将另一个同样的更新消息布置在输入队列610上。可能因为不布置在输入队列610上的相同消息而导致差错。在公知的系统中,这将导致差错状态,所述差错状态将导致基于事务恢复由软件资源做出的改变。
但是,从规则数据库应用规则的本发明可以确定数据库620被委托,因此在在内队列610上的复制消息表示不可恢复的差错,并且可以跳过在输入队列610上布置复制消息、更新数据库620,而且可以进行到在输出队列630上布置更新完成消息。在更新完成消息被布置在输出队列630上后,消息资源API向资源完整性引擎返回一个消息来指示消息资源已经委托,因此所有的软件资源已经委托。
图7是概述本发明的示范操作的流程图。如图7所示,所述操作以接收事务开始(步骤710)。根据在事务内包括的信息和对操作系统登记的API来识别作为事务的一部分的独立资源(步骤720)。开始要参加到事务中的每个独立资源的处理(步骤730)。当每个独立资源的处理结束时,从它们相关联的API接收消息(步骤740)。进行确定是否所有的资源已经成功,即已经委托(步骤750)。如果这样,这执行通常的处理以结束所述事务(步骤760)。否则,识别引擎确定不能委托的每个资源的失败原因(步骤770)。根据所识别的失败原因来执行适当的差错解析和恢复操作(步骤780)。然后仅仅重新开始那些未委托的资源的处理(步骤790),并且操作返回步骤740。
虽然在图7中未明确地示出,但是可以包括确定是否已经进行了预定数量的重新提交或重新开始资源的附加步骤。这种情况下,如果已经进行了预定数量的重新提交,这可以识别关键的差错,并且可以恢复被委托的资源。否则,所述重新提交可以继续直到已经进行了预定数量的重新提交或所有的资源被委托。
因此,利用本发明,提供了一种机制来处理在没有事务管理器的软件环境中的事务。而且,本发明提供了这样的一种机制,其中事务的部分可以被重新提交到不能委托的软件资源,以便完成所述事务和避免恢复对已经委托的软件资源做出的改变。
值得注意的是,虽然已经在充分发生作用的数据处理系统的范围内描述了本发明,但是本领域内的那些技术人员会明白,本发明的处理能够以指令和多种形式的计算机可读介质形式来发布,并且本发明可以等同地适用而不论实际用于执行发布的信号承载媒体的特定类型如何。计算机可读媒体的示例包括诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM的可记录类型的媒体和诸如输入数字和模拟通信链路、使用传输形式的有线或无线通信链路的传输类型的媒体,所述传输形式诸如射频和光波传输。计算机可读媒体可以采用编码格式的形式,所述编码格式被译码以实际用于特定的数据处理系统中。
本发明的说明已经被提供来用于图解和说明的目的,不意欲穷尽的或限于所公开形式的本发明。许多修改和改变对于本领域内的那些普通技术人员来说是显然的。所述的实施例被选择和说明以便最好地解释本发明的原理、实际的应用,并且使得本领域内的其他普通技术人员能够明白本发明的、适用于所考虑的特定用途的、具有各种修改的各种实施例。

Claims (35)

1.一种在软件环境中处理事务的方法,包括:
向参加事务的独立资源提交事务;
从独立资源接收响应来指示所述资源是否能够委托;以及
如果从资源接收到响应来指示所述资源不能委托,则向不能委托的资源重新提交事务的一部分。
2.按照权利要求1的方法,其中来自独立资源的响应是从与独立资源相关联的应用程序接口接收的一个或多个响应消息。
3.按照权利要求1的方法,其中如果来自独立资源的响应指示不能委托资源,则所述响应还包括为什么资源不能委托的原因的标识符。
4.按照权利要求3的方法,还包括:
向来自资源的响应应用一个或多个规则以确定对资源执行的适当差错解析和差错操作;以及
在重新向资源提交事务之前对资源执行差错解析和恢复操作。
5.按照权利要求1的方法,还包括:
产生所述事务的事务状态数据结构;以及
向所述事务状态数据结构填充关于参加事务的每个资源的信息。
6.按照权利要求5的方法,还包括:
响应于从独立资源接收响应而更新所述事务状态数据结构。
7.按照权利要求1的方法,其中在没有事务管理器的软件环境中实现所述方法。
8.按照权利要求1的方法,还包括:
如果来自资源的响应指示资源不能委托,则确定向资源重新提交事务的一部分的数量是否超过预定的门限;以及
只有重新提交的数量小于或等于预定的门限时,向资源重新提交事务的一部分。
9.按照权利要求8的方法,还包括:
如果重新提交的数量大于预定的门限,则向差错处理器传送控制。
10.按照权利要求9的方法,其中所述差错处理器恢复由委托为事务的一部分的资源做出的改变。
11.一种在计算机可读介质中的计算机程序产品,用于处理在软件环境中的事务,包括:
第一指令,用于向参加事务的独立资源提交事务;以及
第二指令,用于从独立的资源接收响应来指示资源是否能够委托;以及
第三指令,用于如果从资源接收到指示资源不能委托的响应,则向不能委托的资源重新提交事务的一部分。
12.按照权利要求11的计算机程序产品,其中来自独立资源的响应是从与独立资源相关联的应用程序接口接收的一个或多个响应消息。
13.按照权利要求11的计算机程序产品,其中如果来自独立资源的响应指示资源不能委托,则所述响应还包括为什么资源不能委托的原因的标识符。
14.按照权利要求13的计算机程序产品,还包括:
第四指令,用于向来自资源的响应应用一个或多个规则以确定对资源执行的适当差错解析和差错操作;以及
第五指令,用于在重新向资源提交事务之前对资源执行差错解析和恢复操作。
15.按照权利要求11的计算机程序产品,还包括:
第四指令,用于产生所述事务的事务状态数据结构;以及
第五指令,用于向所述事务状态数据结构填充关于参加事务的每个资源的信息。
16.按照权利要求15的计算机程序产品,还包括:
第六指令,用于响应于从独立资源接收响应而更新所述事务状态数据结构。
17.按照权利要求11的计算机程序产品,其中在没有事务管理器的软件环境中实现所述计算机程序产品。
18.按照权利要求11的计算机程序产品,还包括:
第四指令,用于如果来自资源的响应指示资源不能委托,则确定向资源重新提交事务的一部分的数量是否超过预定的门限,其中,只有重新提交的数量小于或等于预定的门限时,向资源重新提交事务的一部分。
19.按照权利要求18的计算机程序产品,还包括:
第五指令,用于如果重新提交的数量大于预定的门限,则向差错处理器传送控制。
20.按照权利要求19的计算机程序产品,其中所述差错处理器恢复由委托为事务的一部分的资源做出的改变。
21.一种在软件环境中处理事务的装置,包括:
用于向参加事务的独立资源提交事务的部件;
用于从独立资源接收响应来指示所述资源是否能够委托的部件;以及
用于如果从资源接收到响应来指示所述资源不能委托、则向不能委托的资源重新提交事务的一部分的部件。
22.按照权利要求21的装置,其中来自独立资源的响应是从与独立资源相关联的应用程序接口接收的一个或多个响应消息。
23.按照权利要求21的装置,其中如果来自独立资源的响应指示不能委托资源,则所述响应还包括为什么资源不能委托的原因的标识符。
24.按照权利要求23的装置,还包括:
用于向来自资源的响应应用一个或多个规则以确定对资源执行的适当差错解析和差错操作的部件;以及
用于在重新向资源提交事务之前对资源执行差错解析和恢复操作的部件。
25.按照权利要求23的装置,还包括:
用于产生所述事务的事务状态数据结构的部件;以及
用于向所述事务状态数据结构填充关于参加事务的每个资源的信息的部件。
26.按照权利要求25的装置,还包括:
用于响应于从独立资源接收响应而更新所述事务状态数据结构的部件。
27.按照权利要求21的装置,其中所述装置在没有事务管理器的软件环境中工作。
28.按照权利要求21的装置,还包括:
用于如果来自资源的响应指示资源不能委托、则确定向资源重新提交事务的一部分的数量是否超过预定的门限的部件;以及
用于只有重新提交的数量小于或等于预定的门限时、向资源重新提交事务的一部分的部件。
29.按照权利要求28的装置,还包括:
用于如果重新提交的数量大于预定的门限,则向差错处理器传送控制的部件。
30.按照权利要求29的装置,其中所述差错处理器恢复由委托为事务的一部分的资源做出的改变。
31.一种在软件环境中处理事务的装置,包括:
一个或多个接口,用于与参加事务的多个资源通信;以及
识别引擎,连接到所述多个接口,其中经由所述一个或多个接口,所述事务被提交到所述多个资源,并且从多个资源接收响应,其中所述响应指示一个对应的资源是否能够委托,并且其中识别引擎根据所接收的响应来确定是否向响应它们不能委托的资源重新提交事务的一部分。
32.按照权利要求31的装置,还包括一个重新提交规则数据库,它具有一个或多个规则,用于确定如何向不能委托的资源重新提交事务的所述部分。
33.按照权利要求31的装置,还包括事务状态数据结构存储器,用于存储事务状态数据结构,所述事务状态数据结构用于识别参加事务的多个资源的每个的状态。
34.按照权利要求33的装置,其中根据从多个资源接收的响应来更新所述事务状态数据结构。
35.按照权利要求33的装置,其中识别引擎根据存储在事务状态数据结构中的状态信息来确定是否向不能委托的资源重新提交事务的一部分。
CNB2004100343741A 2003-06-10 2004-04-14 在软件环境中用于保持资源完整性的装置和方法 Expired - Fee Related CN100435101C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/457,843 2003-06-10
US10/457,843 US7346905B2 (en) 2003-06-10 2003-06-10 Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment

Publications (2)

Publication Number Publication Date
CN1573697A true CN1573697A (zh) 2005-02-02
CN100435101C CN100435101C (zh) 2008-11-19

Family

ID=32682530

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100343741A Expired - Fee Related CN100435101C (zh) 2003-06-10 2004-04-14 在软件环境中用于保持资源完整性的装置和方法

Country Status (4)

Country Link
US (2) US7346905B2 (zh)
JP (1) JP2005004754A (zh)
CN (1) CN100435101C (zh)
GB (1) GB2402769B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732415A (zh) * 2021-01-06 2021-04-30 深圳华锐金融技术股份有限公司 基于资源交换代理系统的事务处理方法、装置和设备

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215594A1 (en) * 2003-01-24 2004-10-28 Bea Systems, Inc. System for transaction processing with parallel execution
US7444637B2 (en) * 2003-02-18 2008-10-28 Microsoft Corporation Systems and methods for scheduling coprocessor resources in a computing system
US7613749B2 (en) * 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
US7996837B2 (en) * 2006-05-03 2011-08-09 Oracle International Corporation Recovery mechanism for transactions
GB0616068D0 (en) * 2006-08-12 2006-09-20 Ibm Method,Apparatus And Computer Program For Transaction Recovery
CN100452707C (zh) * 2006-12-22 2009-01-14 中国建设银行股份有限公司 一种保持数据一致性的方法及系统
US7594138B2 (en) * 2007-01-31 2009-09-22 International Business Machines Corporation System and method of error recovery for backup applications
US20080320110A1 (en) * 2007-06-25 2008-12-25 Sharp Laboratories Of America, Inc. Firmware rollback and configuration restoration for electronic devices
US8892558B2 (en) 2007-09-26 2014-11-18 International Business Machines Corporation Inserting data into an in-memory distributed nodal database
US8027996B2 (en) * 2007-11-29 2011-09-27 International Business Machines Corporation Commitment control for less than an entire record in an in-memory database in a parallel computer system
US20090193280A1 (en) * 2008-01-30 2009-07-30 Michael David Brooks Method and System for In-doubt Resolution in Transaction Processing
US20090193286A1 (en) * 2008-01-30 2009-07-30 Michael David Brooks Method and System for In-doubt Resolution in Transaction Processing
TW201032535A (en) * 2008-10-14 2010-09-01 Ibm A method of handling a message
US9110801B2 (en) 2009-02-10 2015-08-18 International Business Machines Corporation Resource integrity during partial backout of application updates
US9020905B2 (en) * 2009-10-31 2015-04-28 International Business Machines Corporation Synchronizing database and non-database resources without a commit coordinator
US9417906B2 (en) * 2010-04-01 2016-08-16 Red Hat, Inc. Transaction participant registration with caveats
JP5549556B2 (ja) * 2010-11-16 2014-07-16 富士電機株式会社 データ収集システム、データ収集システムの異常要因判定方法
US8549154B2 (en) 2011-09-09 2013-10-01 Oracle International Corporation Recovering stateful read-only database sessions
US8924346B2 (en) 2011-09-09 2014-12-30 Oracle International Corporation Idempotence for database transactions
US8725882B2 (en) 2011-09-09 2014-05-13 Oracle International Corporation Masking database outages from clients and applications
US8984170B2 (en) * 2011-09-09 2015-03-17 Oracle International Corporation Idempotence for database transactions
US9600371B2 (en) 2011-09-09 2017-03-21 Oracle International Corporation Preserving server-client session context
US20130227101A1 (en) * 2012-02-27 2013-08-29 Verizon Patent And Licensing, Inc. Method and system for providing transaction management in a request-oriented service architecture
US20130227143A1 (en) * 2012-02-27 2013-08-29 Verizon Patent And Licensing Inc. Method and system for providing transaction management in a request-oriented service architecture using meta-models
JP2014038564A (ja) 2012-08-20 2014-02-27 International Business Maschines Corporation データベースに対する処理を行うシステム及び方法
IN2013CH01239A (zh) * 2013-03-21 2015-08-14 Infosys Ltd
US9201919B2 (en) 2013-05-07 2015-12-01 Red Hat, Inc. Bandwidth optimized two-phase commit protocol for distributed transactions
US9208032B1 (en) * 2013-05-15 2015-12-08 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
WO2015112614A1 (en) 2014-01-21 2015-07-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US11188427B2 (en) * 2014-09-26 2021-11-30 Oracle International Corporation System and method for transaction recovery in a multitenant application server environment
GB2533578A (en) * 2014-12-22 2016-06-29 Ibm Recovery of local resource
US9804935B1 (en) * 2015-01-26 2017-10-31 Intel Corporation Methods for repairing a corrupted database to a new, correct state by selectively using redo and undo operations
US10339127B2 (en) 2016-01-28 2019-07-02 Oracle International Corporation Guaranteed commit outcome in a distributed transaction processing system
RU2632418C1 (ru) * 2016-04-04 2017-10-04 Общество С Ограниченной Ответственностью "Яндекс" Способ и система передачи данных между нодами без лидера
US11947978B2 (en) 2017-02-23 2024-04-02 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
US10831509B2 (en) 2017-02-23 2020-11-10 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
US10601939B2 (en) * 2017-09-05 2020-03-24 Bank Of America Corporation Desktop error repair tool
US12007941B2 (en) 2017-09-29 2024-06-11 Oracle International Corporation Session state tracking
CN109725987A (zh) * 2018-12-15 2019-05-07 深圳壹账通智能科技有限公司 一种分布式事务一致性解决方法及相关设备
US11687507B2 (en) 2019-09-12 2023-06-27 Oracle International Corporation Termination of database sessions for planned failover
US11936739B2 (en) 2019-09-12 2024-03-19 Oracle International Corporation Automated reset of session state
US11455779B2 (en) 2020-09-09 2022-09-27 Bentley Systems, Incorporated Visualization of massive 3D models in interactive editing workflows

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4363093A (en) * 1980-03-10 1982-12-07 International Business Machines Corporation Processor intercommunication system
US5319774A (en) 1990-05-16 1994-06-07 International Business Machines Corporation Recovery facility for incomplete sync points for distributed application
JPH0464146A (ja) 1990-07-04 1992-02-28 Hitachi Ltd 分散システムにおけるコミットメント処理の最適化方式
GB2264796A (en) * 1992-03-02 1993-09-08 Ibm Distributed transaction processing
JPH06259397A (ja) 1993-03-04 1994-09-16 Hitachi Ltd 分散トランザクション処理システム
JP2557192B2 (ja) * 1993-03-15 1996-11-27 インターナショナル・ビジネス・マシーンズ・コーポレイション トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法
JP3513550B2 (ja) 1994-03-18 2004-03-31 富士通株式会社 トランザクション続行方法およびそのためのリソースマネージャ
JP3777196B2 (ja) * 1994-05-10 2006-05-24 富士通株式会社 クライアント/サーバシステム用の通信制御装置
US6317773B1 (en) 1994-10-11 2001-11-13 International Business Machines Corporation System and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators
US6275843B1 (en) 1994-12-22 2001-08-14 Unisys Corporation Method and apparatus for processing multiple service requests within a global transaction by a single server application program instance
US5680610A (en) * 1995-01-19 1997-10-21 Unisys Corporation Method and apparatus for testing recovery scenarios in global transaction processing systems
WO1996023258A1 (en) * 1995-01-23 1996-08-01 Tandem Computers Incorporated Tracking the state of transactions
JPH08212119A (ja) * 1995-02-02 1996-08-20 Hitachi Ltd トランザクション処理システム及びトランザクションのコミット制御方法
US5872969A (en) * 1995-06-23 1999-02-16 International Business Machines Corporation System and method for efficiently synchronizing cache and persistent data in an object oriented transaction processing system
JP3094888B2 (ja) 1996-01-26 2000-10-03 三菱電機株式会社 採番機構、データ整合性確認機構、トランザクション再実行機構及び分散トランザクション処理システム
US5916307A (en) * 1996-06-05 1999-06-29 New Era Of Networks, Inc. Method and structure for balanced queue communication between nodes in a distributed computing application
JP3672208B2 (ja) * 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
US5884327A (en) * 1996-09-25 1999-03-16 International Business Machines Corporation System, method and program for performing two-phase commit with a coordinator that performs no logging
US6334193B1 (en) * 1997-05-29 2001-12-25 Oracle Corporation Method and apparatus for implementing user-definable error handling processes
US5890161A (en) 1997-10-28 1999-03-30 Microsoft Corporation Automatic transaction processing of component-based server applications
US6029177A (en) * 1997-11-13 2000-02-22 Electronic Data Systems Corporation Method and system for maintaining the integrity of a database providing persistent storage for objects
US6141679A (en) 1998-02-06 2000-10-31 Unisys Corporation High performance distributed transaction processing methods and apparatus
US6233585B1 (en) 1998-03-12 2001-05-15 Crossworlds Software, Inc. Isolation levels and compensating transactions in an information system
US6785722B2 (en) 1998-03-20 2004-08-31 Sun Microsystems, Inc. Apparatus, methods, and computer program products for transactional support of network management operations
JPH11338746A (ja) * 1998-05-27 1999-12-10 Ntt Communication Ware Kk データベースアクセスシステムおよびプログラムを記録したコンピュータ読み取り可能な記録媒体
US6526416B1 (en) * 1998-06-30 2003-02-25 Microsoft Corporation Compensating resource managers
US6272675B1 (en) 1998-10-01 2001-08-07 Unisys Corporation Development system for automatically enabling a server application to execute with an XATMI-compliant transaction manager managing transactions within multiple environments
US6363401B2 (en) * 1998-10-05 2002-03-26 Ncr Corporation Enhanced two-phase commit protocol
JP2000187605A (ja) * 1998-12-22 2000-07-04 Kokusai Zunou Sangyo Kk 純並列データベース管理システム
US6510421B1 (en) * 1998-12-29 2003-01-21 Oracle Corporation Performing 2-phase commit with presumed prepare
US6298478B1 (en) 1998-12-31 2001-10-02 International Business Machines Corporation Technique for managing enterprise JavaBeans (™) which are the target of multiple concurrent and/or nested transactions
US6738971B2 (en) * 1999-03-10 2004-05-18 Oracle International Corporation Using a resource manager to coordinate the comitting of a distributed transaction
US6360228B1 (en) 1999-06-02 2002-03-19 Oracle Corporation Transactional framework for executing statements involving non-native code
US6490595B1 (en) 2000-03-30 2002-12-03 International Business Machines Corporation Method, system and program products for providing efficient syncpoint processing of distributed transactions
US6671686B2 (en) 2000-11-02 2003-12-30 Guy Pardon Decentralized, distributed internet data management
US6934948B2 (en) 2001-01-22 2005-08-23 International Business Machines Corporation System and method for grouping diverse operations
US20020156664A1 (en) 2001-02-20 2002-10-24 Willcox William J. Method and apparatus for service request handling
US20020194244A1 (en) 2001-06-01 2002-12-19 Joan Raventos System and method for enabling transaction-based service utilizing non-transactional resources
US6873995B2 (en) * 2002-04-23 2005-03-29 International Business Machines Corporation Method, system, and program product for transaction management in a distributed content management application
US20040215594A1 (en) * 2003-01-24 2004-10-28 Bea Systems, Inc. System for transaction processing with parallel execution
US7353495B2 (en) * 2003-02-28 2008-04-01 Bea Systems, Inc. Method for protection against interleaving transactions using a transaction manager
JP4360851B2 (ja) * 2003-07-02 2009-11-11 株式会社リコー 画像入力装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732415A (zh) * 2021-01-06 2021-04-30 深圳华锐金融技术股份有限公司 基于资源交换代理系统的事务处理方法、装置和设备
CN112732415B (zh) * 2021-01-06 2024-03-29 深圳华锐分布式技术股份有限公司 基于资源交换代理系统的事务处理方法、装置和设备

Also Published As

Publication number Publication date
JP2005004754A (ja) 2005-01-06
US7448035B2 (en) 2008-11-04
GB2402769B (en) 2005-12-07
CN100435101C (zh) 2008-11-19
US7346905B2 (en) 2008-03-18
GB0411739D0 (en) 2004-06-30
GB2402769A (en) 2004-12-15
US20040255298A1 (en) 2004-12-16
US20080134219A1 (en) 2008-06-05

Similar Documents

Publication Publication Date Title
CN1573697A (zh) 在软件环境中用于保持资源完整性的装置和方法
US6161198A (en) System for providing transaction indivisibility in a transaction processing system upon recovery from a host processor failure by monitoring source message sequencing
US5923833A (en) Restart and recovery of OMG-compliant transaction systems
EP2877942B1 (en) Automatic transaction retry after session failure
US7899897B2 (en) System and program for dual agent processes and dual active server processes
US7895602B2 (en) System and article of manufacture for duplicate message elimination during recovery when multiple threads are delivering messages from a message store to a destination queue
US7624309B2 (en) Automated client recovery and service ticketing
US20080276239A1 (en) Recovery and restart of a batch application
US20050114854A1 (en) System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller
TW201706836A (zh) 更新方法、伺服器系統以及非暫態電腦可讀取媒體
CN1967503A (zh) 测试软件应用的方法
US20030140272A1 (en) Method and data processing system providing checkpoint/restart across multiple heterogeneous computer systems
CN107612950B (zh) 一种提供服务的方法、装置、系统、电子设备
CN111818145B (zh) 一种文件传输方法、装置、系统、设备及存储介质
US10372701B2 (en) Transaction processor
US6330686B1 (en) Handling protected conversation messages across IMS restart in shared queues environment
US6842763B2 (en) Method and apparatus for improving message availability in a subsystem which supports shared message queues
US8103905B2 (en) Detecting and recovering from process failures
JP2005538460A (ja) データ処理システム及び方法(非同種プロセスを統合するように適合されたデータ処理システム)
JP2006338225A (ja) コンピュータの自動インストール方法
US7650606B2 (en) System recovery
CN116324726A (zh) 加速的非易失性存储器设备检查和取证
JP4189374B2 (ja) 処理システム
CN1093661C (zh) 反向恢复型输入输出控制装置和输入输出控制方法
CN1134739C (zh) 运用分布式网络的应用程序修复方法

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
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: 20081119