CN100435101C - 在软件环境中用于保持资源完整性的装置和方法 - Google Patents
在软件环境中用于保持资源完整性的装置和方法 Download PDFInfo
- Publication number
- CN100435101C CN100435101C CNB2004100343741A CN200410034374A CN100435101C CN 100435101 C CN100435101 C CN 100435101C CN B2004100343741 A CNB2004100343741 A CN B2004100343741A CN 200410034374 A CN200410034374 A CN 200410034374A CN 100435101 C CN100435101 C CN 100435101C
- 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.)
- Expired - Fee Related
Links
Images
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/079—Root cause analysis, i.e. error or fault diagnosis
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
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、API 430-450和软件资源460-480可以驻留在相同或不同的计算器件上。例如,应用程序410可以驻留在客户计算器件上,同时资源完整性引擎420、API 430-450和软件资源460-480驻留在服务器计算器件上。
应用程序410向识别在事务中包括的多个软件资源460-480的资源完整性引擎420提交用于处理的事务。所述资源完整性引擎420识别作为事务的一部分的软件资源460-480和它们各自的API 430-450。资源完整性引擎420随后经由所识别的软件资源460-480的API 430-450向所识别的软件资源460-480提交事务。这些API 430-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。而且,API 430-450提供一个接口,通过这个接口,资源完整性引擎420被通知相关联的软件资源460-480成功地或不成功地完成它的事务执行线程,即是否软件资源委托了事务。因此,与软件资源460-480的API的交互提供资源完整性引擎420执行上述功能(1)和(2)的能力,即识别独立的软件资源和验证成功委托软件资源的能力。
资源完整性引擎420在从应用程序410接收到事务时识别作为事务一部分的软件资源460-480的适当的API 430-450。资源完整性引擎420也初始化用于保持关于事务的范围状态信息的数据结构。资源完整性引擎420然后经由所识别的软件资源460-480的各自的API 430-450向所识别的软件资源460-480发送事务。资源完整性引擎420然后等待来自API 430-450的响应,即指示软件资源的成功的委托或关于软件资源的差错状态。成功委托或差错状态然后被记录在与事务相关联的数据结构中。
可以根据计算***的具体实现方式来以多种不同的方式来执行事务。例如,在一种具体的实现方式中,处理可以基于一组需要执行的顺序流的软件指令,以便当成功地委托独立的软件资源时,处理转到在事务中要共享的下一个独立的软件资源。在另一种示范实现方式中,可以利用事件通知逻辑。例如,当独立的软件资源委托时,委托资源的程序将通知资源完整性引擎已经成功地完成了所述行为。所提供的信息的一部分是资源的成功或失败的状态指示。
以上述的事件通知实现方式来描述本发明的优选实施例。但是,应当明白,也可以使用顺序处理流。在这样的情况下,由资源完整性引擎420保持的范围状态数据结构可以包括关于软件资源的顺序化的信息以及它们是否返回成功的委托的信息。如果一个软件资源返回差错状态,则在所述顺序中在返回差错的软件资源后面出现的任何软件资源将没有它们的当前状态的输入项,因为它们需要成功地委托返回差错的软件资源。
在任何一种情况下,资源完整性引擎420可以查看事务的范围状态数据结构中的状态信息,以确定事务的所有的软件资源是否委托了所述事务(上述的功能3)。资源完整性引擎420使用识别引擎来在从被提交到软件资源460-480的事务产生的可能情况之间区别(上述的功能4)。如果在范围状态数据结构中列出的软件资源的任何一个返回差错状态,则事务不成功地完成并且事务的恢复和重新提交发生。如果在范围状态数据结构中列出的软件资源的任何一个返回成功的委托,则事务成功地完成,并且执行成功事务的通常处理。“通常处理”指的是事务产生期望的行为,然后执行对于实现专有的处理,所述期望的行为诸如成功地在数据库中记录病人信息并且向另一个***发送那个信息,正确地记录银行存款,成功地飞机订票等。
例如,假定接收到病人消息,它包括写入到数据库记录中的信息。这个信息包括在消息中包括的唯一ID。另外,一旦更新数据库,则消息内容也被提供到另一个消息传递***。如果在数据库更新和向下一个***发送消息之间发生问题,则数据可能不同步。如果所述消息过去在第一***中增加一个病人并且第一***现在获得那个病人的一个更新,则它可以适当地更新那个记录。但是,如果所述更新被发送到下一个消息传递***,则将失败,因为从未接收到初始记录。
如果没有本发明,则当在第一***上重新排队初始消息以处理时(因为它从未被消息传递***委托而是仅仅在数据库***上被委托),返回一个差错来指示在数据库中的记录的复制。这将终止在已知***中对于那个事务的处理。
在使用本发明的情况下,识别引擎确定在数据库中的标识符匹配在消息中的标识符,并且允许后续的处理发生,即向下一个***上发送消息。
在未成功地委托任何软件资源的情况下,则在事务中的整套写作操作可以基本上被重复。在实际的意义上,这意味着初始软件资源失败,并且应当放弃后续软件资源的处理。但是,如果不应用差错解析和恢复操作,这不保证重复操作将导致成功地委托软件资源。所执行的具体差错解析和恢复操作是基于当试图委托事务时由软件资源遇到的差错类型。
例如,资源完整性引擎420的识别引擎可以对于由与软件资源460-480相关联的API 430-450返回并且存储在范围状态数据结构中的的差错指示符应用识别规则,以便在重新提交事务之前确定要执行的差错解析和恢复操作的类型。这样的差错解析和恢复操作可以涉及启动另一个软件操作以主动地解析差错和恢复软件资源,或者可以是消极的解析和恢复,诸如在重新向软件资源提交事务之前等待预定的时间。一旦执行了适当的差错解析和恢复操作,这资源完整性引擎420可以经由软件资源460-480的API 430-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 (20)
1.一种在软件环境中处理事务的方法,包括:
向参加事务的独立资源提交事务;
从独立资源接收响应来指示所述资源是否能够委托;
如果从资源接收到响应指示所述资源不能委托,则向不能委托的资源重新提交事务的一部分,其中如果来自资源的响应指示所述资源不能委托,则所述响应还包括所述资源不能委托的原因的标识符;
向来自资源的响应应用一个或多个规则以确定对资源执行的适当差错解析和恢复操作;以及
在重新向资源提交事务之前对资源执行差错解析和恢复操作。
2.按照权利要求1的方法,其中来自独立资源的响应是从与独立资源相关联的应用程序接口接收的一个或多个响应消息。
3.按照权利要求1的方法,还包括:
产生所述事务的事务状态数据结构;以及
向所述事务状态数据结构填充关于参加事务的每个资源的信息。
4.按照权利要求3的方法,还包括:
响应于从独立资源接收响应而更新所述事务状态数据结构。
5.按照权利要求1的方法,其中在没有事务管理器的软件环境中实现所述方法。
6.按照权利要求1的方法,还包括:
如果来自资源的响应指示资源不能委托,则确定向资源重新提交事务的一部分的数量是否超过预定的门限;以及
只有重新提交的数量小于或等于预定的门限时,向资源重新提交事务的一部分。
7.按照权利要求6的方法,还包括:
如果重新提交的数量大于预定的门限,则向差错处理器传送控制。
8.按照权利要求7的方法,其中所述差错处理器恢复由委托为事务的一部分的资源做出的改变。
9.一种在软件环境中处理事务的装置,包括:
用于向参加事务的独立资源提交事务的部件;
用于从独立资源接收响应来指示所述资源是否能够委托的部件;
用于如果从资源接收到响应指示所述资源不能委托、则向不能委托的资源重新提交事务的一部分的部件,其中如果来自资源的响应指示所述资源不能委托,则所述响应还包括所述资源不能委托的原因的标识符;
用于向来自资源的响应应用一个或多个规则以确定对资源执行的适当差错解析和恢复操作的部件;以及
用于在重新向资源提交事务之前对资源执行差错解析和恢复操作的部件。
10.按照权利要求9的装置,其中来自独立资源的响应是从与独立资源相关联的应用程序接口接收的一个或多个响应消息。
11.按照权利要求9的装置,还包括:
用于产生所述事务的事务状态数据结构的部件;以及
用于向所述事务状态数据结构填充关于参加事务的每个资源的信息的部件。
12.按照权利要求11的装置,还包括:
用于响应于从独立资源接收响应而更新所述事务状态数据结构的部件。
13.按照权利要求9的装置,其中所述装置在没有事务管理器的软件环境中工作。
14.按照权利要求9的装置,还包括:
用于如果来自资源的响应指示资源不能委托、则确定向资源重新提交事务的一部分的数量是否超过预定的门限的部件;以及
用于只有重新提交的数量小于或等于预定的门限时、向资源重新提交事务的一部分的部件。
15.按照权利要求14的装置,还包括:
用于如果重新提交的数量大于预定的门限,则向差错处理器传送控制的部件。
16.按照权利要求15的装置,其中所述差错处理器恢复由委托为事务的一部分的资源做出的改变。
17.一种在软件环境中处理事务的装置,包括:
一个或多个接口,用于与参加事务的多个资源通信;
识别引擎,连接到所述一个或多个接口,其中经由所述一个或多个接口,所述事务被提交到所述多个资源,并且从多个资源接收响应,其中所述响应指示一个对应的资源是否能够委托,其中如果来自资源的响应指示所述资源不能委托,则所述响应还包括所述资源不能委托的原因的标识符,并且其中识别引擎根据所接收的响应来确定是否向响应它们不能委托的资源重新提交事务的一部分;以及
重新提交规则数据库,它具有一个或多个规则,用于确定如何向不能委托的资源重新提交事务的所述部分;
其中所述识别引擎向来自资源的响应应用所述一个或多个规则以确定对资源执行的适当差错解析和恢复操作;以及在重新向资源提交事务之前对资源执行差错解析和恢复操作。
18.按照权利要求17的装置,还包括事务状态数据结构存储器,用于存储事务状态数据结构,所述事务状态数据结构用于识别参加事务的多个资源的每个的状态。
19.按照权利要求18的装置,其中根据从多个资源接收的响应来更新所述事务状态数据结构。
20.按照权利要求18的装置,其中识别引擎根据存储在事务状态数据结构中的状态信息来确定是否向不能委托的资源重新提交事务的一部分。
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 CN1573697A (zh) | 2005-02-02 |
CN100435101C true 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) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640535B2 (en) * | 2003-01-24 | 2009-12-29 | Bea Systems, Inc. | Method 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 |
US20090193286A1 (en) * | 2008-01-30 | 2009-07-30 | Michael David Brooks | Method and System for In-doubt Resolution in Transaction Processing |
US20090193280A1 (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 | 富士電機株式会社 | データ収集システム、データ収集システムの異常要因判定方法 |
US8725882B2 (en) | 2011-09-09 | 2014-05-13 | Oracle International Corporation | Masking database outages from clients and applications |
US8924346B2 (en) | 2011-09-09 | 2014-12-30 | Oracle International Corporation | Idempotence for database transactions |
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 |
US8549154B2 (en) | 2011-09-09 | 2013-10-01 | Oracle International Corporation | Recovering stateful read-only database sessions |
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 |
US9961011B2 (en) | 2014-01-21 | 2018-05-01 | Oracle International Corporation | System and method for supporting multi-tenancy in an application server, cloud, or other environment |
EP3198426B1 (en) * | 2014-09-26 | 2023-08-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 |
CN112732415B (zh) * | 2021-01-06 | 2024-03-29 | 深圳华锐分布式技术股份有限公司 | 基于资源交换代理***的事务处理方法、装置和设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993018454A1 (en) * | 1992-03-02 | 1993-09-16 | International Business Machines Corporation | Distributed transaction processing system |
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 | トランザクション処理システム及びトランザクションのコミット制御方法 |
US5561797A (en) * | 1993-03-15 | 1996-10-01 | International Business Machines Corporation | Method for synchronizing transaction processing in a distributed heterogeneous system |
US5680610A (en) * | 1995-01-19 | 1997-10-21 | Unisys Corporation | Method and apparatus for testing recovery scenarios in global transaction processing systems |
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 |
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 |
US6363401B2 (en) * | 1998-10-05 | 2002-03-26 | Ncr Corporation | Enhanced two-phase commit protocol |
US6374243B1 (en) * | 1998-05-27 | 2002-04-16 | Ntt Communicationware Corporation | Database access system having time-out mechanism |
US6510421B1 (en) * | 1998-12-29 | 2003-01-21 | Oracle Corporation | Performing 2-phase commit with presumed prepare |
US6526416B1 (en) * | 1998-06-30 | 2003-02-25 | Microsoft Corporation | Compensating resource managers |
EP1308839A2 (en) * | 2001-11-02 | 2003-05-07 | Guy Pardon | Commit messages with additional information and propagation of concurrency preferences in composite systems |
Family Cites Families (30)
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 | 分散システムにおけるコミットメント処理の最適化方式 |
JPH06259397A (ja) | 1993-03-04 | 1994-09-16 | Hitachi Ltd | 分散トランザクション処理システム |
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 |
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 |
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 |
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 |
JP2000187605A (ja) * | 1998-12-22 | 2000-07-04 | Kokusai Zunou Sangyo Kk | 純並列データベース管理システム |
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 |
US6934948B2 (en) | 2001-01-22 | 2005-08-23 | International Business Machines Corporation | System and method for grouping diverse operations |
US20020161859A1 (en) | 2001-02-20 | 2002-10-31 | Willcox William J. | Workflow engine and system |
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 |
US7640535B2 (en) * | 2003-01-24 | 2009-12-29 | Bea Systems, Inc. | Method 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 | 株式会社リコー | 画像入力装置 |
-
2003
- 2003-06-10 US US10/457,843 patent/US7346905B2/en not_active Expired - Fee Related
-
2004
- 2004-04-14 CN CNB2004100343741A patent/CN100435101C/zh not_active Expired - Fee Related
- 2004-05-26 GB GB0411739A patent/GB2402769B/en not_active Expired - Lifetime
- 2004-06-04 JP JP2004167646A patent/JP2005004754A/ja active Pending
-
2007
- 2007-12-28 US US11/966,614 patent/US7448035B2/en not_active Expired - Fee Related
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993018454A1 (en) * | 1992-03-02 | 1993-09-16 | International Business Machines Corporation | Distributed transaction processing system |
US5561797A (en) * | 1993-03-15 | 1996-10-01 | International Business Machines Corporation | Method for synchronizing transaction processing in a distributed heterogeneous system |
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 |
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 |
US6374243B1 (en) * | 1998-05-27 | 2002-04-16 | Ntt Communicationware Corporation | Database access system having time-out mechanism |
US6526416B1 (en) * | 1998-06-30 | 2003-02-25 | Microsoft Corporation | Compensating resource managers |
US6363401B2 (en) * | 1998-10-05 | 2002-03-26 | Ncr Corporation | Enhanced two-phase commit protocol |
US6510421B1 (en) * | 1998-12-29 | 2003-01-21 | Oracle Corporation | Performing 2-phase commit with presumed prepare |
EP1308839A2 (en) * | 2001-11-02 | 2003-05-07 | Guy Pardon | Commit messages with additional information and propagation of concurrency preferences in composite systems |
Also Published As
Publication number | Publication date |
---|---|
US7346905B2 (en) | 2008-03-18 |
US7448035B2 (en) | 2008-11-04 |
CN1573697A (zh) | 2005-02-02 |
GB0411739D0 (en) | 2004-06-30 |
US20080134219A1 (en) | 2008-06-05 |
GB2402769B (en) | 2005-12-07 |
GB2402769A (en) | 2004-12-15 |
US20040255298A1 (en) | 2004-12-16 |
JP2005004754A (ja) | 2005-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100435101C (zh) | 在软件环境中用于保持资源完整性的装置和方法 | |
US5923833A (en) | Restart and recovery of OMG-compliant transaction systems | |
US6161198A (en) | System for providing transaction indivisibility in a transaction processing system upon recovery from a host processor failure by monitoring source message sequencing | |
US8104043B2 (en) | System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller | |
US7899897B2 (en) | System and program for dual agent processes and dual active server processes | |
JP4616423B2 (ja) | 遠隔データ回復用の装置及び方法 | |
JP2558052B2 (ja) | 仮定コミット2フェーズコミットプロトコルを用いるトランザクション処理システム及びその動作方法 | |
EP1099164B1 (en) | Method and program for processing administrative requests of a distributed network application executing in a clustered computing environment | |
US8504873B1 (en) | Method and apparatus for providing in-memory checkpoint services within a distributed transaction | |
US7624309B2 (en) | Automated client recovery and service ticketing | |
JPH10124371A (ja) | 取引処理方法及びシステム | |
US10698767B1 (en) | Decentralized management of multi-service workflows | |
KR20080042881A (ko) | 트랜잭션 일치 및 문제 상태 | |
US6330686B1 (en) | Handling protected conversation messages across IMS restart in shared queues environment | |
JPH06243072A (ja) | 分散処理システムの分散トランザクションコミット制御方式 | |
CN113094362A (zh) | 一种异步消息可靠投递和处理的方法和装置 | |
WO1996041263A1 (en) | Management of units of work on a computer system log | |
US7284018B1 (en) | Logless transaction coordination | |
US6842763B2 (en) | Method and apparatus for improving message availability in a subsystem which supports shared message queues | |
JP2005538460A (ja) | データ処理システム及び方法(非同種プロセスを統合するように適合されたデータ処理システム) | |
CN112148436B (zh) | 去中心化的tcc事务管理方法、装置、设备及*** | |
US6092084A (en) | One system of a multisystem environment taking over log entries owned by another system | |
US6076095A (en) | Method of one system of a multisystem environment taking over log entries owned by another system | |
US7533132B2 (en) | Parallel replication mechanism for state information produced by serialized processing | |
JP4189374B2 (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081119 |
|
CF01 | Termination of patent right due to non-payment of annual fee |