KR100310287B1 - Method for recovering resource object in distributed object system - Google Patents

Method for recovering resource object in distributed object system Download PDF

Info

Publication number
KR100310287B1
KR100310287B1 KR1019990061125A KR19990061125A KR100310287B1 KR 100310287 B1 KR100310287 B1 KR 100310287B1 KR 1019990061125 A KR1019990061125 A KR 1019990061125A KR 19990061125 A KR19990061125 A KR 19990061125A KR 100310287 B1 KR100310287 B1 KR 100310287B1
Authority
KR
South Korea
Prior art keywords
transaction
log record
log
resource
approval
Prior art date
Application number
KR1019990061125A
Other languages
Korean (ko)
Other versions
KR20010057731A (en
Inventor
문기영
박남식
정인철
유영철
남궁한
김명준
Original Assignee
오길록
한국전자통신연구원
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 오길록, 한국전자통신연구원 filed Critical 오길록
Priority to KR1019990061125A priority Critical patent/KR100310287B1/en
Publication of KR20010057731A publication Critical patent/KR20010057731A/en
Application granted granted Critical
Publication of KR100310287B1 publication Critical patent/KR100310287B1/en

Links

Classifications

    • 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/0748Error 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 remote unit communicating with a single-box computer node experiencing an error/fault
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 분산객체 시스템에서의 자원객체 복구방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 장애발생시 트랜잭션 서버를 재시작하고, 트랜잭션 로그를 사용하여 자원객체를 복구할 수 있는 분산객체 시스템에서 자원객체 복구방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하기 위하여, 트랜잭션 서버를 재시동하는 제 1 단계; 로그파일 내에 승인 로그 레코드를 판독하는 제 2 단계; 상기 로그파일 내에 상기 승인 로그 레코드와 동일한 객체 식별자를 가지는 로그 레코드가 존재하는지를 판단하는 제 3 단계; 및 상기 제 3 단계의 판단결과, 상기 승인 로그 레코드와 동일한 객체 식별자를 가지는 로그 레코드가 존재하면, 트랜잭션 완료이므로 다음 승인 로그 레코드를 판독하기 위하여 상기 제 2 단계로 넘어가고, 존재하지 않으면, 상기 승인 로그 레코드를 참조하여 자원 객체를 복구하는 제 4 단계를 포함하며, 분산객체 시스템 등에 이용됨.The present invention relates to a resource object recovery method in a distributed object system and a computer-readable recording medium recording a program for realizing the method, restarting the transaction server in the event of a failure, and recovering the resource object using the transaction log A first step of restarting the transaction server to provide a computer-readable recording medium having recorded thereon a method for recovering a resource object and a program for realizing the method in a distributed object system; A second step of reading the approval log record in the log file; A third step of determining whether a log record having the same object identifier as the approval log record exists in the log file; And if there is a log record having the same object identifier as the approval log record as the determination result of the third step, the transaction is completed and the process proceeds to the second step to read the next approval log record. The fourth step of recovering the resource object by referring to the log record, and is used in distributed object systems, and the like.

Description

분산객체 시스템에서의 자원객체 복구방법{METHOD FOR RECOVERING RESOURCE OBJECT IN DISTRIBUTED OBJECT SYSTEM}Resource object recovery method in distributed object system {METHOD FOR RECOVERING RESOURCE OBJECT IN DISTRIBUTED OBJECT SYSTEM}

본 발명은 분산객체 시스템에서의 자원객체 복구방법에 관한 것으로, 특히 객체 트랜잭션 서비스의 자원 객체 인터페이스를 사용하는 자원객체의 복구를 트랜잭션 서버에서 자동으로 수행할 수 있는 분산객체 시스템에서의 자원객체 복구방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to a method for restoring a resource object in a distributed object system, and more particularly, to a method for restoring a resource object using a resource object interface of an object transaction service in a transaction server. And a computer readable recording medium having recorded thereon a program for realizing the method.

일반적으로, 코르바(CORBA : Common Object Request Broker Architecture) 객체 트랜잭션 서비스는 분산객체 트랜잭션 서비스의 위한 규격이며, 트랜잭션 클라이언트, 트랜잭션 서버 및 회복가능 서버에 대한 인터페이스를 제시하고 수행모델을 설명한다.In general, the CORBA object transaction service is a specification for distributed object transaction services. It presents interfaces to transaction clients, transaction servers, and recoverable servers and describes performance models.

코르바 객체환경에서 객체 트랜잭션을 수행하기 위해서는, 다수의 객체가 분산된 환경에서 수행되어 하나의 전역 트랜잭션으로 묶여서 처리되어야 한다. 다수의 객체에서 수행된 결과를 하나의 트랜잭션으로 묶기 위한 방법으로, 다수의 객체들이 하나의 트랜잭션으로 종료할 수 있게 보장하는 2단계 승인규약(two-phase commit protocol)이 있다.In order to perform object transactions in the CORBA object environment, multiple objects must be executed in a distributed environment and bound together into one global transaction. As a way to group the results performed on multiple objects into one transaction, there is a two-phase commit protocol that ensures that multiple objects can terminate in a single transaction.

객체 트랜잭션에서 2단계 승인규약은 전역 트랜잭션에 참여한 객체들 중에 한 객체가 트랜잭션 조정자 객체가 되어 1단계에서 참여자 객체에게 준비 메세지를 전달한다. 이때, 각 참여자 객체는 해당 객체 상태를 확인하여 승인 찬성 메세지를 상기 트랜잭션 조정자 객체에게 전송한다. 그리고, 마지막 2단계에서 상기 트랜잭션 조정자 객체는 승인을 결정하여 상기 참여자 객체들에게 승인 메세지를 전송하고, 전체 트랜잭션을 종료한다.In the object transaction, the two-phase authorization protocol is that one of the objects participating in the global transaction becomes a transaction coordinator object, and in step 1, it sends a ready message to the participant object. At this time, each participant object checks the state of the object and transmits an approval approval message to the transaction coordinator object. In the final step 2, the transaction coordinator object determines the approval, sends an approval message to the participant objects, and terminates the entire transaction.

다수의 객체가 참가한 트랜잭션을 종료하기 위한 2단계 승인을 하는 중에 객체 트랜잭션 서비스의 장애나 통신망 장애가 발생하면 해당 트랜잭션의 기본적인 원자성, 일관성, 독립성 및 지속성(ACID : Atomicity, Consistency, Isolation, Durability)의 특성을 유지하지 못한다. 따라서, 트랜잭션의 특성을 유지면서 트랜잭션을 종료하기 위해 복구 처리가 필요하다.If a failure of an object transaction service or a network failure occurs during two-stage approval to terminate a transaction involving multiple objects, the basic atomicity, consistency, independence, and persistence of the transaction (ACID: Atomicity, Consistency, Isolation, Durability) It does not retain its characteristics. Therefore, recovery processing is necessary to terminate the transaction while maintaining the characteristics of the transaction.

코르바 객체 트랜잭션 서비스에서 자료의 저장과 변경을 수행하는 자원 객체는 코르바 객체 트랜잭션 서비스 자원 인터페이스를 사용하여 2단계 승인에 참가한다. 그러나, 객체 트랜잭션 서비스 자원 인터페이스는 호출한 트랜잭션에 대한 정보없이 2단계 승인을 수행하므로 2단계 승인 프로토콜 수행 중에 발생한 장애에 대해 어떤 트랜잭션에서 2단계 승인을 수행하다가 중단되었는지 알 수가 없기 때문에 복구에 어려움이 많다.Resource objects that perform the storage and modification of data in the Corva Object Transaction Service participate in the two-phase authorization using the Corva Object Transaction Service resource interface. However, because the Object Transaction Service resource interface performs two-stage acknowledgment without information about the calling transaction, it is difficult to recover because it is not possible to know in which transaction the two-stage acknowledgment was aborted during the two-stage acknowledgment protocol. many.

종래의 자원객체 복구방법은, 응용 개발자가 자의적으로 복구를 수행하며, 이러한 복구는 사실상 응용 개발자에게 복구를 일임하는 것으로, 자원객체마다 복구 방법이 모두 다르고 복잡하여 응용 수준에서 복구처리를 구현하기가 매우 어렵고, 코르바 자원객체 인터페이스와 무관하게 수행하는 연산은 장애 발생 시 복구 위치를 잃어서 복구를 실패할 수 있는 문제가 있다.In the conventional resource object recovery method, an application developer performs recovery arbitrarily, and such recovery actually delegates a recovery to an application developer. Since recovery methods are different and complicated for each resource object, it is difficult to implement recovery processing at an application level. It is very difficult, and the operation performed irrespective of the CORVA resource object interface has a problem that the recovery may fail due to the loss of the recovery position.

또한, 종래의 자원객체 복구방법은, 자원객체를 마커라는 사용자 정의 인식표를 사용하여 재생성하고, 자원객체 레코드에 대한 마크를 사용자가 정의하며, 로그 저장 형태도 사용자 임의로 정의한다. 자원객체 복구 시에는 로그 자료 및 자원객체의 자료를 판독하여, 마커로 확인한 후, 수정함으로, 자원객체 복구방법을 정확히 아는 작업자만이 자원객체를 복구할 수 있고, 마커를 사용할 수 있는 자원만 가능하다. 그리고, 마커와 자원 객체 인터페이스와는 무관하므로 자원 객체 인터페이스를 통하는 함수와 마커를 연결하기 위해 내부적으로 매핑을 수행해야하므로, 장애가 발생하면 복구가 불가능해지는 문제가 있다.In addition, in the conventional resource object recovery method, a resource object is regenerated using a user-defined identification table called a marker, a user defines a mark for the resource object record, and a log storage form is arbitrarily defined. When recovering a resource object, log data and data of the resource object are read, checked with markers, and modified, so that only an operator who knows exactly how to recover the resource object can recover the resource object, and only resources that can use the marker can be used. Do. In addition, since the mapping is not related to the marker and the resource object interface, internal mapping must be performed in order to connect the function and the marker through the resource object interface.

따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로, 장애발생시 트랜잭션 서버를 재시작하고, 트랜잭션 로그를 사용하여 자원객체를 복구할 수 있는 분산객체 시스템에서 자원객체 복구방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to solve the above problems, realizing the resource object recovery method and the method in a distributed object system that can restart the transaction server in the event of a failure, and recover the resource object using the transaction log The object of the present invention is to provide a computer-readable recording medium having recorded thereon a program.

도 1 은 본 발명이 적용되는 분산객체 시스템에서의 자원객체 복구방법에 대한 일실시예 설명도.1 is a diagram illustrating an embodiment of a resource object recovery method in a distributed object system to which the present invention is applied.

도 2 는 본 발명에 따른 분산객체 시스템에서의 자원객체 복구방법에 대한 일실시예 처리흐름도.2 is a flowchart illustrating a method of recovering a resource object in a distributed object system according to the present invention;

* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

10 : 로그파일 20 : 트랜잭션 서버10: log file 20: transaction server

21 : 서버객체 22 : 재시동 가능 객체21: Server object 22: Restartable object

30 : 클라이언트 40 : 응용서버30: Client 40: Application Server

41 : 응용객체 50 : 복구가능 서버41: application object 50: recoverable server

51 : 자원객체51: resource object

상기 목적을 달성하기 위한 본 발명의 방법은, 분산객체 시스템에 적용되는 자원객체 복구방법에 있어서, 트랜잭션 서버를 재시동하는 제 1 단계; 로그파일 내에 승인 로그 레코드를 판독하는 제 2 단계; 상기 로그파일 내에 상기 승인 로그 레코드와 동일한 객체 식별자를 가지는 로그 레코드가 존재하는지를 판단하는 제 3 단계; 및 상기 제 3 단계의 판단결과, 상기 승인 로그 레코드와 동일한 객체 식별자를 가지는 로그 레코드가 존재하면, 트랜잭션 완료이므로 다음 승인 로그 레코드를 판독하기 위하여 상기 제 2 단계로 넘어가고, 존재하지 않으면, 상기 승인 로그 레코드를 참조하여 자원 객체를 복구하는 제 4 단계를 포함한다.A method of recovering a resource object applied to a distributed object system, the method comprising: a first step of restarting a transaction server; A second step of reading the approval log record in the log file; A third step of determining whether a log record having the same object identifier as the approval log record exists in the log file; And if there is a log record having the same object identifier as the approval log record as the determination result of the third step, the transaction is completed and the process proceeds to the second step to read the next approval log record. And a fourth step of recovering the resource object by referring to the log record.

또한, 본 발명은, 마이크로 프로세서를 구비한 자원객체 복구를 위한 분산객체 시스템에, 트랜잭션 서버를 재시동하는 제 1 기능; 로그파일 내에 승인 로그 레코드를 판독하는 제 2 기능; 상기 로그파일 내에 상기 승인 로그 레코드와 동일한 객체 식별자를 가지는 로그 레코드가 존재하는지를 판단하는 제 3 기능; 및 상기 제 3 기능의 판단결과, 상기 승인 로그 레코드와 동일한 객체 식별자를 가지는 로그 레코드가 존재하면, 트랜잭션 완료이므로 다음 승인 로그 레코드를 판독하기 위하여 상기 제 2 기능으로 넘어가고, 존재하지 않으면, 상기 승인 로그 레코드를 참조하여 자원 객체를 복구하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.The present invention also provides a distributed object system for resource object recovery with a microprocessor, comprising: a first function of restarting a transaction server; A second function of reading a grant log record in a log file; A third function of determining whether a log record having the same object identifier as the approval log record exists in the log file; And if there is a log record having the same object identifier as the grant log record as a result of the determination of the third function, the transaction is completed and the process proceeds to the second function to read the next grant log record. A computer readable recording medium having recorded thereon a program for realizing a fourth function of recovering a resource object with reference to a log record is provided.

상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1 은 본 발명이 적용되는 분산객체 시스템에서의 자원객체 복구방법에 대한 일실시예 설명도이다.1 is a diagram illustrating an embodiment of a resource object recovery method in a distributed object system to which the present invention is applied.

도면에 도시된 바와 같이, 본 발명이 적용되는 분산객체 시스템은, 로그 복구를 위하여 자원객체 참조 및 객체 식별자를 저장하는 로그파일(10)과, 서버객체(21) 및 재시동 가능 객체(22)를 포함하며 자원객체를 복구하는 트랜잭션서버(20)와, 하나의 트랜잭션으로 객체들을 호출하며 트랜잭션을 시작 및 종료하는역할을 수행하는 클라이언트(30)와, 응용객체(41)를 포함하는 응용서버(40)와, 다수의 복구가능 객체(52) 및 자원객체(51)를 포함하는 복구가능 서버(50)를 포함한다.As shown in the figure, a distributed object system to which the present invention is applied includes a log file 10 storing a resource object reference and an object identifier, a server object 21 and a restartable object 22 for log recovery. A transaction server 20 for recovering resource objects, a client 30 for calling objects in one transaction, and starting and ending transactions, and an application server 40 including an application object 41. And a recoverable server 50 comprising a plurality of recoverable objects 52 and resource objects 51.

본 발명의 이해를 돕기 위하여, 코르바 객체 트랜잭션 서비스를 상세히 설명하기로 한다.In order to facilitate understanding of the present invention, the CORBA object transaction service will be described in detail.

코르바 객체 트랜잭션 서비스에는 트랜잭션 문맥 전파방법에 따라, 사용자 객체에서 직접 문맥을 전달하는 명시적 방법과, 사용자 객체의 도움없이 서비스 내부에서 전달하는 묵시적 방법이 있다. 본 발명에서는 일반적인 묵시적 방법을 설명한다.Corva object transaction services have an explicit method of delivering context directly from a user object, and an implicit method of delivering inside a service without the help of a user object, depending on the transaction context propagation method. In the present invention, a general implicit method is described.

묵시적 트랜잭션 문맥 전파방법은, 코르바에서 관리하는 트랜잭션 문맥에 대한 제어를 가지고 내부적으로 트랜잭션 문맥을 관리한다. 응용프로그램 입장에서 보면, 아이디엘(IDL : Interactive Data Language)에서 함수 선언할 때, 트랜잭션에 참가하는 인터페이스 함수에 'CosTransactions::TransactionalObject'를 선언하고, 클라이언트 객체에서 코르바 초기화 수행 후, 트랜잭션 서버로부터 트랜잭션 문맥을 등록하고, 서버 객체를 획득한다. 상기한 바와 같은 일련의 과정을 통해 트랜잭션의 시작 및 종료를 수행한다.The implicit transaction context propagation method manages the transaction context internally with control over the transaction context managed by Corva. From the application's point of view, when declaring a function in IDL (Interactive Data Language), declare 'CosTransactions :: TransactionalObject' in the interface function that participates in the transaction. Register a transaction context and obtain a server object. The transaction is started and terminated through a series of processes as described above.

클라이언트 응용객체에서 트랜잭션을 초기화하면, 객체 트랜잭션 서비스의 인스턴스는 트랜잭션 문법을 생성하고, 상기 트랜잭션 문맥은 트랜잭션에 대한 정보를 포함한다.When initiating a transaction at a client application object, an instance of the object transaction service generates a transaction grammar, and the transaction context contains information about the transaction.

클라이언트는 코르바 객체 트랜잭션 서비스에 트랜잭션 시작을 알리고, 트랜잭션의 등록을 요청한다. 코르바 객체 트랜잭션 서비스는 트랜잭션 시작자에게 새로운 트랜잭션으로 등록한 트랜잭션 문맥을 반환한다. 상기 클라이언트는 트랜잭션 객체에 서비스를 요청하고, 요청된 서비스와 함께 트랜잭션 문맥이 연결되어 있어 자동적으로 코르바 객체 트랜잭션 서비스에서 트랜잭션 문맥이 트랜잭션에 참가하는 모든 객체들에게 전송된다.The client informs the Corva Object Transaction Service of the start of a transaction and requests registration of the transaction. The Corva Object Transaction Service returns the transaction context registered as a new transaction to the transaction initiator. The client requests a service from the transaction object, and the transaction context is linked with the requested service so that the transaction context is automatically sent to all objects in the Corva object transaction service that participate in the transaction.

그리고, 트랜잭션은 클라이언트가 트랜잭션을 종료하거나, 트랜잭션이 타임 아웃이 되면 자동적으로 종료된다. 이때, 클라이언트가 트랜잭션 종료를 요청하면, 트랜잭션 정보를 관리하는 트랜잭션 조정자는 모든 트랜잭션 참여 객체들의 의사를 물어 트랜잭션을 종료시킨다. 만일, 트랜잭션 시작자에 의한 트랜잭션 종료가 아닐 경우에는 객체 트랜잭션 서비스는 무조건 해당 트랜잭션을 종료시킨다.The transaction is automatically terminated when the client terminates the transaction or the transaction times out. At this time, if the client requests to terminate the transaction, the transaction coordinator managing the transaction information terminates the transaction by asking all the transaction participating objects. If the transaction is not terminated by the transaction initiator, the object transaction service unconditionally terminates the transaction.

코르바 객체 트랜잭션 서비스는 응용프로그램 장애, 서비스 서버 장애 및 통신장애에 대해 트랜잭션 객체에 원자성(atomicity)을 제공한다.Corva Object Transaction Service provides atomicity to transaction objects for application failures, service server failures, and communication failures.

클라이언트 관점에서의 장애처리 방법은, 클라이언트가 승인하기 전에 장애가 발생했다면 트랜잭션을 철회하는 방법, 클라이언트가 승인을 하고 응답을 받기 전에 장애가 발생하면 트랜잭션 종료는 클라이언트의 장애와 상관없이 수행되는 방법, 트랜잭션이 승인 전에 외부 장애로 인해 중단되는 트랜잭션이 철회되는 방법 및 승인과 결과보고 사이에 장애가 발생하면 조정자에게 상태를 문의하는 방법이 있다.The failure handling method from the client's point of view is to withdraw the transaction if the failure occurred before the client acknowledged. If the failure occurs before the client accepts and receives the response, the transaction termination is performed regardless of the failure of the client. Transactions that are aborted due to external failures prior to approval are withdrawn, and if a failure occurs between approval and reporting of results, the coordinator can ask the coordinator for status.

코르바 객체 트랜잭션 서비스는 장애 발생시에 트랜잭션 특성을 유지하기 위해 트랜잭션이 일단 시작되면 종료하게 한다는 것을 보장한다.The Corva Object Transaction Service ensures that a transaction is terminated once it has started to maintain transactional characteristics in the event of a failure.

코르바 객체 트랜잭션 서비스에서의 장애 도메인은 트랜잭션 시작과 종료를 제어하는 조정자와 자원 객체를 의미한다.Fault domains in the CORBA object transaction service refer to coordinator and resource objects that control transaction initiation and termination.

트랜잭션 조정자가 승인 결정전에 장애가 발생하면 해당 트랜잭션은 철회되고, 코르바 객체 트랜잭션 서비스는 장애에 대비하여 트랜잭션 결정 단계에서 로깅으로 트랜잭션 상태를 안전한 저장 장치에 저장한다.If a transaction coordinator fails before the decision is made, the transaction is aborted, and the Corva Object Transaction Service stores the transaction state in a secure storage device by logging in the transaction decision phase in case of a failure.

승인 결정로그가 있는 상태에서 트랜잭션 조정자가 재시작했을 때의 복구 서비스는 다음과 같다.The recovery service when the transaction coordinator is restarted with the admission decision log is as follows.

트랜잭션 참여자가 임의로 트랜잭션을 처리한 휴리스틱 정보를 가지고 있다면 트랜잭션 조정자는 아무것도 하지 않고, 트랜잭션이 철회로 표시되어 있으면 트랜잭션 조정자는 자원 객체와 하부 조정자들에게 철회를 명한다.If the transaction participant has heuristic information that arbitrarily processes the transaction, the transaction coordinator does nothing, and if the transaction is marked for retraction, the transaction coordinator commands the resource object and subordinate coordinator to withdraw.

트랜잭션 상태가 승인이면, 상기 트랜잭션 조정자는 준비된 자원관리자들에게 승인 메시지를 보낸다. 즉, 트랜잭션 조정자는 정상적인 종료 처리를 수행한다.If the transaction status is acknowledgment, the transaction coordinator sends an acknowledgment message to the prepared resource managers. In other words, the transaction coordinator performs normal termination.

자원객체들에게 승인 또는 철회의 트랜잭션 종료 명령이 도달하지 못하면 조정자는 반복해서 수행한다.The coordinator executes repeatedly if the resource objects do not reach the end of the transaction of approval or withdraw.

그리고, 등록된 자원객체들이 더 이상 존재하지 않으면, 트랜잭션 조정자가 장애 전에 트랜잭션을 종료했음을 뜻하며, 부조정자가 준비되어 있으면, 상위 조정자에게 트랜잭션 상태를 문의한다. 상위 조정자가 있지만 도달할 수 없으면, 부조정자는 나중에 다시 수행하고, 상위조정자가 더 이상 존재하지 않으면 트랜잭션은 철회된다.If the registered resource objects no longer exist, it means that the transaction coordinator terminated the transaction before failure. If the subordinate coordinator is ready, the transaction coordinator is queried to the upper coordinator. If the parent coordinator exists but cannot be reached, the subordinate coordinator will run again later, and if the parent coordinator no longer exists, the transaction will be withdrawn.

승인 결정전의 조정자의 모든 장애는 트랜잭션 철회로 수행하고, 장애 발생후의 트랜잭션 종료는 종료 규약으로 트랜잭션을 종료시킨다. 조정자는 등록된 자원 객체에게 승인 결정을 보낼 의무를 지닌다. 어떤 장애는 자원 객체가 초기화 요구를 한다. 이것은 자원관리자도 부조정자 역할을 해야 하기 때문이다.All failures of the coordinator prior to the admission decision are to be withdrawn from the transaction, and the termination of the transaction after the failure ends the transaction with the termination agreement. The coordinator is responsible for sending approval decisions to registered resource objects. Some failures cause resource objects to request initialization. This is because resource managers also need to act as coordinators.

상기 자원객체는 트랜잭션 장애 시 관련된 복구 가능 기능을 가지고 있다. 트랜잭션 수행이 준비된 상태에서 장애 복구 시에는 자원 조정자의 완료 응답 연산을 이용하여 트랜잭션 결과를 가지고 종료 규약을 수행하게 된다.The resource object has a recoverable function associated with a transaction failure. In case of fail recovery while the transaction is ready to be executed, the termination agreement is performed with the transaction result by using the completion response operation of the resource coordinator.

트랜잭션 조정자 중 최상위 조정자는 승인 결정전에 발생한 장애를 임의로 철회시킬 수 있다. 만일, 준비된 자원 객체가 있다면, 해당 자원 객체는 복구 처리를 한다. 자원 객체를 위한 트랜잭션 조정자의 복구 처리는 최상위 조정자가 승인을 결정했으면 트랜잭션 종료를 위해 승인 명령을 자원 객체에게 보낸다. 최상위 조정자가 철회를 결정했으면 트랜잭션 종료를 위해 철회 명령을 자원 객체에게 보낸다.The highest coordinator of the transaction coordinator can arbitrarily withdraw the failure that occurred prior to the approval decision. If there is a prepared resource object, the resource object performs a recovery process. The transaction coordinator's recovery process for a resource object sends an acknowledgment command to the resource object to terminate the transaction once the top coordinator has decided to approve. When the top coordinator decides to withdraw, it sends a withdraw command to the resource object to terminate the transaction.

자원객체는 조정자의 승인 명령에 의해 승인 의사가 있으면 승인을 응답하고, 응용을 수행하면 자원객체 상태를 로그에 저장하여 계속 유지해야 한다. 상기 로그는 복구 처리 시에 조정자의 결정을 돕는다.The resource object responds to the approval when the intention is approved by the coordinator's approval command, and when the application is executed, the resource object must be kept in the log to maintain the status. The log assists the coordinator in determining the recovery process.

장애가 발생하여 복구 서비스가 시작되면, 준비된 자원객체는 복구를 위해 로그에 저장된 상태를 읽어 온다. 자원 객체가 승인정보를 가지고 있으면서 'StExcep::OBJECT_NOT_EXIST'를 받으면 조정자가 존재하지 않으므로, 트랜잭션은 철회되고, 자원객체가 승인정보를 가지고 있으면서 'StExcep::COMM_FAILURE'이면, 조정자가 존재하는지 존재하지 않는지를 구별할 수 없다.When the recovery service is started due to a failure, the prepared resource object reads the state stored in the log for recovery. If the resource object has authorization information and receives 'StExcep :: OBJECT_NOT_EXIST', the coordinator does not exist, so the transaction is aborted, and if the resource object has authorization information and 'StExcep :: COMM_FAILURE', the coordinator exists or does not exist. Indistinguishable.

이제, 첨부된 도 2 를 참조하여 본 발명에 따른 분산객체 시스템에서의 자원객체 복구방법에 대해 상세히 설명하면 다음과 같다.Now, the resource object recovery method in the distributed object system according to the present invention with reference to the accompanying Figure 2 will be described in detail.

도 2 는 본 발명에 따른 분산객체 시스템에서의 자원객체 복구방법에 대한 일실시예 처리흐름도이다.2 is a flowchart illustrating a method of recovering a resource object in a distributed object system according to the present invention.

먼저, 상기 트랜잭션 서버(20)의 재시작 모듈을 시작하고(200), 상기 로그파일(10)에 저장된 로그 레코드를 판독한다(202). 여기서, 판독한 로그 레코드를 'A'라 칭한다.First, a restart module of the transaction server 20 is started (200), and log records stored in the log file 10 are read (202). Here, the read log record is referred to as 'A'.

그리고, 상기 판독된 로그 레코드의 종류(A)가 승인레코드 인가를 판단한다(204).Then, it is determined whether the type A of the read log record is the approval record (204).

상기 판단결과(204), 판독된 로그 레코드의 종류가 승인이면, 다음 로그 레크드를 판독하고(206), 판독된 로그 레코드의 종류가 승인이 아니면, 상기 로그파일(10)에 저장된 로그 레코드를 판독하는 과정(202)을 수행한다. 여기서, 상기 다음 로그 레크드를 판독하는 과정(206)에서 판독한 로그 레코드를 'B'라고 칭한다.The determination result 204, if the type of the read log record is approved, the next log record is read (206), and if the type of the read log record is not approved, the log record stored in the log file 10 is read. The reading process 202 is performed. Here, the log record read in the step 206 of reading the next log record is referred to as 'B'.

상기 판독한 로그 레코드(B)가 로그 파일을 끝인가를 판단한다(208).It is determined whether the read log record B ends the log file (208).

상기 판단결과(208), 로그 파일의 끝이 아니면, 판독한 로그 레코드(A)와 판독한 로그 레코드(B)의 객체 식별자가 동일한가를 판단한다(210).If it is determined that the log file A is not the end of the log file, it is determined whether or not the object identifiers of the read log record A and the read log record B are the same (210).

상기 판단결과(210), 상기 판독한 로그 레코드(A)와 판독한 로그 레코드(B)의 객체 식별자가 같으면, 상기 로그파일(10)에 저장된 로그 레코드를 판독하는 과정(202)을 수행한다. 여기서, 상기 판독한 로그 레코드(A)와 판독한 로그 레코드(B)의 객체 식별자가 동일하다는 의미는, 승인로그 다음에 종료(Done)로그가상기 로그 파일(10)에 기록되어 있다는 의미이고, 결국, 트랜잭션이 올바르게 종료되었다는 뜻이 된다.If the determination result 210 is the same as the object identifier of the read log record A and the read log record B, a process 202 of reading the log record stored in the log file 10 is performed. Here, the meaning that the object identifiers of the read log record A and the read log record B are the same means that a Done log is recorded in the log file 10 after the approval log. This means that the transaction has ended correctly.

상기 판단결과(210), 상기 판독한 로그 레코드(A)와 판독한 로그 레코드(B)의 객체 식별자가 다르면, 상기 상기 다음 로그 레크드를 판독하는 과정(206)을 수행한다.If the determination result 210, the object identifier of the read log record (A) and the read log record (B) is different, the process of reading the next log record (206) is performed.

상기 판단결과(208), 로그 파일의 끝이면, 상기 복구가능 서버(50)의 자원의 개수가 0인가를 판단한다(212).If it is determined that the log file is at the end of the log file 208, it is determined whether the number of resources of the recoverable server 50 is 0 (212).

상기 판단결과(212), 자원의 개수가 0 이면, 모든 자원객체가 복구되었다는 의미이므로, 상기 로그파일(10)에 저장된 로그 레코드를 판독하는 과정(202)을 수행하고, 자원의 개수가 0 이 아니면, 복구되지 않은 자원객체가 존재한다는 의미이므로, 자원을 승인하고, 자원의 개수를 1 감소시킴으로써 자원객체를 복구한다(214).As a result of the determination 212, if the number of resources is 0, it means that all resource objects have been recovered. Therefore, the process of reading log records stored in the log file 10 is performed 202, and the number of resources is 0. Otherwise, since it means that there is an unrecovered resource object, the resource object is restored by approving the resource and reducing the number of resources by one (214).

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited to the drawing.

상기와 같은 본 발명은, 장애발생시 트랜잭션 서버를 재시작하고, 로그 복구를 위하여 자원객체 참조 및 객체 식별자를 저장하는 트랜잭션 로그를 사용함으로써, 응용 개발자의 복구작업을 배제하고 서버 수준에서 자동으로 자원객체를 복구할 수 있는 효과가 있다.The present invention as described above, by restarting the transaction server in the event of a failure, by using the transaction log that stores the resource object references and object identifiers for log recovery, excludes the recovery work of the application developer and automatically manages the resource object at the server level It has a recoverable effect.

Claims (3)

분산객체 시스템에 적용되는 자원객체 복구방법에 있어서,In the resource object recovery method applied to a distributed object system, 트랜잭션 서버를 재시동하는 제 1 단계;Restarting the transaction server; 로그파일 내에 승인 로그 레코드를 판독하는 제 2 단계;A second step of reading the approval log record in the log file; 상기 로그파일 내에 상기 승인 로그 레코드와 동일한 객체 식별자를 가지는 로그 레코드가 존재하는지를 판단하는 제 3 단계; 및A third step of determining whether a log record having the same object identifier as the approval log record exists in the log file; And 상기 제 3 단계의 판단결과, 상기 승인 로그 레코드와 동일한 객체 식별자를 가지는 로그 레코드가 존재하면, 트랜잭션 완료이므로 다음 승인 로그 레코드를 판독하기 위하여 상기 제 2 단계로 넘어가고, 존재하지 않으면, 상기 승인 로그 레코드를 참조하여 자원 객체를 복구하는 제 4 단계As a result of the determination in the third step, if a log record having the same object identifier as the acknowledgment log record exists, the transaction is completed and the process proceeds to the second step to read the next acknowledgment log record. Fourth Step to Recover Resource Objects by Referencing Records 를 포함하는 분산객체 시스템에서의 자원객체 복구방법.Resource object recovery method in a distributed object system comprising a. 제 1 항에 있어서,The method of claim 1, 상기 제 2 단계의 로그 레코드는,The log record of the second step, 로그 복구를 위하여 자원객체 참조 및 객체 식별자를 저장하고 있는 것을 특징으로 하는 분산객체 시스템에서의 자원객체 복구방법.A resource object recovery method in a distributed object system comprising storing a resource object reference and an object identifier for log recovery. 마이크로 프로세서를 구비한 자원객체 복구를 위한 분산객체 시스템에,In a distributed object system for resource object recovery with a microprocessor, 트랜잭션 서버를 재시동하는 제 1 기능;A first function of restarting a transaction server; 로그파일 내에 승인 로그 레코드를 판독하는 제 2 기능;A second function of reading a grant log record in a log file; 상기 로그파일 내에 상기 승인 로그 레코드와 동일한 객체 식별자를 가지는 로그 레코드가 존재하는지를 판단하는 제 3 기능; 및A third function of determining whether a log record having the same object identifier as the approval log record exists in the log file; And 상기 제 3 기능의 판단결과, 상기 승인 로그 레코드와 동일한 객체 식별자를 가지는 로그 레코드가 존재하면, 트랜잭션 완료이므로 다음 승인 로그 레코드를 판독하기 위하여 상기 제 2 기능으로 넘어가고, 존재하지 않으면, 상기 승인 로그 레코드를 참조하여 자원 객체를 복구하는 제 4 기능As a result of the determination of the third function, if there is a log record having the same object identifier as the approval log record, the transaction is completed, and the control proceeds to the second function to read the next approval log record. Fourth function to recover resource objects by referring to records 를 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for realizing this.
KR1019990061125A 1999-12-23 1999-12-23 Method for recovering resource object in distributed object system KR100310287B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990061125A KR100310287B1 (en) 1999-12-23 1999-12-23 Method for recovering resource object in distributed object system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990061125A KR100310287B1 (en) 1999-12-23 1999-12-23 Method for recovering resource object in distributed object system

Publications (2)

Publication Number Publication Date
KR20010057731A KR20010057731A (en) 2001-07-05
KR100310287B1 true KR100310287B1 (en) 2001-09-28

Family

ID=19628782

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990061125A KR100310287B1 (en) 1999-12-23 1999-12-23 Method for recovering resource object in distributed object system

Country Status (1)

Country Link
KR (1) KR100310287B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100749922B1 (en) 2004-12-14 2007-08-21 한국전자통신연구원 Crash recovery system and method for a distributed file server using object based storage

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100857036B1 (en) * 2007-04-20 2008-09-05 (주)엔텔스 Method and apparatus for recovering the fault using the transaction log file in the charging system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100749922B1 (en) 2004-12-14 2007-08-21 한국전자통신연구원 Crash recovery system and method for a distributed file server using object based storage

Also Published As

Publication number Publication date
KR20010057731A (en) 2001-07-05

Similar Documents

Publication Publication Date Title
US20020035590A1 (en) Guaranteed end-to-end transaction execution in a client/server environment
US7720992B2 (en) Tentative update and confirm or compensate
JP6220850B2 (en) System and method for supporting inline delegation of middle tier transaction logs to a database
US6578159B1 (en) Transaction processing method and apparatus
JP2558052B2 (en) Transaction processing system using hypothetical commit two-phase commit protocol and operating method thereof
US6769003B2 (en) Parallel logging method for transaction processing system
US5680610A (en) Method and apparatus for testing recovery scenarios in global transaction processing systems
US5875291A (en) Method and apparatus for checking transactions in a computer system
US8676635B2 (en) Method and system for managing transactions
US7165097B1 (en) System for distributed error reporting and user interaction
US8006248B2 (en) Method, apparatus and computer program for facilitating communication between a client application and a server application
US6381617B1 (en) Multiple database client transparency system and method therefor
US9159050B2 (en) Providing atomicity for a unit of work
CN110022367A (en) A kind of transaction methods and transacter
US8180746B2 (en) Method and assignment of transaction branches by resource name aliasing
JPH11328066A (en) Method and device for supporting transaction of network management operation, and computer program product
US20090193286A1 (en) Method and System for In-doubt Resolution in Transaction Processing
US20090193280A1 (en) Method and System for In-doubt Resolution in Transaction Processing
EP0834122B1 (en) Synchronisation procedure in a routing node
JP2002073576A (en) Batch job control system
US6141679A (en) High performance distributed transaction processing methods and apparatus
US7284018B1 (en) Logless transaction coordination
CN112995262B (en) Distributed transaction submission method, system and computing equipment
KR100310287B1 (en) Method for recovering resource object in distributed object system
CN112596801A (en) Transaction processing method, device, equipment, storage medium and database

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120910

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee