KR20170060036A - 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법 - Google Patents

멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20170060036A
KR20170060036A KR1020177009554A KR20177009554A KR20170060036A KR 20170060036 A KR20170060036 A KR 20170060036A KR 1020177009554 A KR1020177009554 A KR 1020177009554A KR 20177009554 A KR20177009554 A KR 20177009554A KR 20170060036 A KR20170060036 A KR 20170060036A
Authority
KR
South Korea
Prior art keywords
transaction
resource
manager
transactions
uncertain
Prior art date
Application number
KR1020177009554A
Other languages
English (en)
Other versions
KR102437664B1 (ko
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 오라클 인터내셔날 코포레이션
Publication of KR20170060036A publication Critical patent/KR20170060036A/ko
Application granted granted Critical
Publication of KR102437664B1 publication Critical patent/KR102437664B1/ko

Links

Images

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • 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
    • G06F17/30371
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

실시예에 따르면, 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법이 본 명세서에서 기술된다. 두-단계 커밋 트랜잭션 처리 중에 트랜잭션 로그들(TLOG) 제거를 지원하기 위해, 파티션과 관련된 적어도 하나의 리소스 관리자가 해당 파티션의 결정기 리소스로서만 지정될 수 있다. 트랜잭션 관리자는 상기 결정기 리소스 이전에 상기 중간-티어 트랜잭션한 시스템의 다른 모든 리소스 관리자들을 준비할 수 있다. 또한, 상기 트랜잭션 관리자는 상기 트랜잭션 복구를 위해 상기 결정기 리소스에 의해 제공되는 커밋될 대기중인 트랜잭션들의 상기 리스트에 의존할 수 있다. 상기 트랜잭션 관리자는 상기 결정기 리소스로부터 리턴된 불확실한 트랜잭션들의 상기 리스트와 매치하는 리소스 관리자로부터 리턴된 불확실한 트랜잭션들을 커밋할 수 있다. 그렇지않으면, 상기 트랜잭션 관리자는 상기 불확실한 트랜잭션을 롤백할 수 있다.

Description

멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법{SYSTEM AND METHOD FOR TRANSACTION RECOVERY IN A MULTITENANT APPLICATION SERVER ENVIRONMENT}
본 발명의 실시예들은 일반적으로 어플리케이션 서버들 및 클라우드 환경들에 관한 것이고, 특히 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법에 관한 것이다.
어플리케이션 서버들은 일반적으로 소프트웨어 어플리케이션이 배포되고 실행될 수 있는 관리되는 환경을 제공한다. 클라우드 기반 컴퓨팅 환경들은 어플리케이션들이 그 안에서 실행되게 하고, 클라우드에 의해 제공되는 분산된 리소스들을 사용하게 한다. 이러한 환경들은 다수의 사용자들 또는 테넌트들을 지원할 수 있고, 그 중 일부는 해당 사용자 또는 테넌트에게 특정한 구체적 요구 사항들을 가질 수 있다.
실시예에 따르면, 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법이 본 명세서에서 기술된다. 두-단계 커밋 트랜잭션 처리 중에 트랜잭션 로그들(TLOG) 제거를 지원하기 위해, 파티션과 관련된 적어도 하나의 리소스 관리자가 해당 파티션의 결정기 리소스 관리자로서 지정될 수 있다. 트랜잭션 관리자는 상기 결정기 리소스 관리자 이전에 상기 중간-티어 트랜잭션한 시스템의 다른 모든 리소스 관리자들을 준비할 수 있다. 또한, 상기 트랜잭션 관리자는 상기 트랜잭션 복구를 위해 상기 결정기 리소스에 의해 제공되는 커밋될 대기중인 트랜잭션들(outstanding transaction)의 상기 리스트에 의존할 수 있다. 상기 트랜잭션 관리자는 상기 결정기 리소스 관리자로부터 리턴된 불확실한 트랜잭션들의 상기 리스트와 매치하는 리소스 관리자로부터 리턴된 불확실한 트랜잭션들을 커밋할 수 있다. 그렇지않으면, 상기 트랜잭션 관리자는 상기 불확실한 트랜잭션을 롤백할 수 있다.
도 1은 실시예에 따르면, 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티-테넌시를 지원하기 위한 시스템을 도시한다.
도 2는 실시예에 따르면, 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티-테넌시를 지원하기 위한 시스템을 더 도시한다.
도 3은 실시예에 따르면, 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티-테넌시를 지원하기 위한 시스템을 더 도시한다.
도 4는 실시예에 따르면, 대표적인 멀티-테넌트 환경과 함께 사용하기 위한 도메인 구성을 도시한다.
도 5는 실시예에 따르면, 대표적인 멀티-테넌트 환경을 더 도시한다.
도 6은 본 발명의 실시예에 따르면, 트랜잭션한 환경의 도시를 보여준다.
도 7은 트랜잭션한 미들웨어 머신 환경에서 두-단계 커밋을 지원하는 도시를 보여준다.
도 8은 트랜잭션한 미들웨어 머신 환경에서 불확실한 트랜잭션들을 복구하는 도시를 보여준다.
도 9는 실시예에 따르면, 트랜잭션한 미들웨어 머신 환경에서 트랜잭션을 처리하기 위한 두-단계 커밋(2PC) 호출들의 엄격한 순서화(ordering)를 지원하는 도시를 보여준다.
도 10은 실시예에 따르면, 트랜잭션 로그(TLOG)를 사용하지 않고 글로벌 트랜잭션을 복구하는 도시를 보여준다.
도 11은 실시예에 따르면, 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 로그(TLOG)를 사용하지 않고 글로벌 트랜잭션을 복구하는 도시를 보여준다.
도 12는 실시예에 따르면, 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 로그(TLOG)를 사용하지 않고 트랜잭션을 복구하는 도시를 보여준다.
도 13은 실시예에 따르면, 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구의 예시적인 흐름도이다.
실시예에 따르면, 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법이 본 명세서에서 기술된다. 두-단계 커밋 트랜잭션 처리 중에 트랜잭션 로그들(TLOG) 제거를 지원하기 위해, 파티션과 관련된 적어도 하나의 리소스 관리자가 오직 해당 파티션의 결정기 리소스 관리자로서 지정될 수 있다. 트랜잭션 관리자는 상기 결정기 리소스 이전에 상기 중간-티어 트랜잭션한 시스템의 다른 모든 리소스 관리자들을 준비할 수 있다. 또한, 상기 트랜잭션 관리자는 상기 트랜잭션 복구를 위해 상기 결정기 리소스에 의해 제공되는 커밋될 대기중인 트랜잭션들의 상기 리스트에 의존할 수 있다. 상기 트랜잭션 관리자는 상기 결정기 리소스 관리자로부터 리턴된 불확실한 트랜잭션들의 상기 리스트와 매치하는 리소스 관리자로부터 리턴된 불확실한 트랜잭션들을 커밋할 수 있다. 그렇지않으면, 상기 트랜잭션 관리자는 상기 불확실한 트랜잭션을 롤백할 수 있다.
어플리케이션 서버(예컨대, 멀티-테넌트, MT) 환경
도 1은 실시예에 따르면, 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티-테넌시를 지원하는 시스템을 도시한다.
도 1에 도시된 바와 같이, 실시예에 따르면, 어플리케이션 서버(예컨대, 멀티-테넌트, MT) 환경(100) 또는 소프트웨어 어플리케이션들의 상기 배포 및 실행을 할 수 있게 하는 다른 컴퓨팅 환경은, 어플리케이션 서버 도메인을 정의하기 위해 런타임 시 사용되는 도메인(102) 구성을 포함하고 이에 따라 동작하도록 구성될 수 있다.
실시예에 따르면, 상기 어플리케이션 서버는 런타임 시 사용하기 위해 정의되는 하나 이상의 파티션들(104)을 포함할 수 있다. 각각의 파티션은 전역 고유 파티션 식별자(ID)(globally unique partition identifier) 및 파티션 구성과 관련될 수 있고, 리소스 그룹 템플릿(126)에 대한 참조 및/또는 파티션-특정 어플리케이션들 또는 리소스들(128)을 포함하는 하나 이상의 리소스 그룹들(124)을 더 포함할 수 있다. 또한, 도메인-레벨 리소스 그룹들, 어플리케이션들 및/또는 리소스들(140)은 도메인 레벨에서 정의될 수 있고, 선택적으로 리소스 그룹 템플릿을 참조하여 도메인 레벨에서 정의될 수 있다.
각각의 리소스 그룹 템플릿(160)은 하나 이상의 어플리케이션들 A(162), B(164), 리소스들 A(166), B(168) 및/또는 다른 배포가능한 어플리케이션들 또는 리소스들(170)을 정의할 수 있고, 리소스 그룹에 의해 참조될 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 파티션(104) 내의 리소스 그룹(124)은 리소스 그룹 템플릿(160)을 참조(190)할 수 있다.
일반적으로, 시스템 관리자는 파티션들, 도메인-레벨 리소스 그룹들 및 리소스 그룹 템플릿들 및 보안 영역들(security realms)을 정의할 수 있으며, 파티션 관리자는 예를 들어, 파티션-레벨 리소스 그룹들을 생성하는 것, 파티션에 어플리케이션들을 배포하는 것 또는 상기 파티션에 대한 특정 영역들을 참조하는 것에 의해, 고유의 파티션의 양상들을 정의할 수 있다.
도 2는 실시예에 따르면, 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티-테넌시를 지원하는 시스템을 더 도시한다.
도 2에 도시된 바와 같이, 실시예에 따르면, 파티션(202)은 예를 들어, 리소스 그룹 템플릿(210)에 대한 참조(206)를 포함하는 리소스 그룹(205), 가상 타겟(예컨대, 가상 호스트) 정보(207) 및 플러그가능 데이터베이스(pluggable database)(PDB) 정보(208)를 포함할 수 있다. 리소스 그룹 템플릿(예컨대, 210)은 예를 들어, 자바 메시지 서버(JMS) 서버(213), 축적 전송(store-and-forward )(SAF) 에이전트(215), 메일 세션 컴포넌트(216) 또는 자바 데이터베이스 연결(JDBC) 리소스(217)과 같은 리소스들과 함께 복수의 어플리케이션들 A(211) 및 B(212)를 정의할 수 있다.
도 2에 도시된 상기 리소스 그룹 템플릿이 예로서 제공되며, 다른 실시예들에 따르면, 서로 다른 타입들의 리소스 그룹 템플릿들 및 요소들이 제공될 수 있다.
실시예에 따르면, 파티션(예컨대, 202) 내의 리소스 그룹이 특정한 리소스 그룹 템플릿(예컨대, 210)을 참조(220)할 때, 특정한 파티션과 관련된 정보는 파티션-특정 정보(230), 예를 들어 파티션-특정 PDB 정보를 표시하기 위해, 상기 참조된 리소스 그룹 템플릿과 조합하여 사용될 수 있다. 그 다음, 상기 파티션-특정 정보는 상기 파티션에 의해 사용하기 위한 리소스들, 예를 들어 PDB 리소스를 구성하기 위해 상기 어플리케이션 서버에 의해 사용될 수 있다. 예를 들어, 파티션(202)과 관련된 파티션-특정 PDB 정보는 해당 파티션에 의해 사용하기 위한 컨테이너 데이터베이스(CDB)(236)를 적절한 PDB(238)와 함께 구성(232)하기 위해 상기 어플리케이션 서버에 의해 사용될 수 있다.
유사하게, 실시예에 따르면, 특정한 파티션과 관련된 가상 타겟 정보는 상기 파티션에 의해 사용하기 위한 파티션-특정 가상 타겟(240), 예컨대, baylandurgentcare.com, 을 정의(239)하기 위해 사용될 수 있는 바, 이는 그
다음, URL(uniform resource locator), 예컨대, http://baylandurgentcare.com을 통해 액세스가능하게 될 수 있다.
도 3은 실시예에 따르면, 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티-테넌시를 지원하는 시스템을 더 도시한다.
실시예에 따르면, config.xml 구성 파일과 같은 시스템 구성은 파티션을 정의하는데 사용되며, 이 시스템 구성은 해당 파티션 및/또는 다른 파티션 프로퍼티(property)들과 관련된 리소스 그룹들에 대한 구성 요소들을 포함한다. 값들은 프로퍼티 이름/값 쌍들을 사용하여 파티션 마다 특정될 수 있다.
실시예에 따르면, 복수의 파티션들은 관리 서버/클러스터(242) 내에서 또는 CDB(243)로의 액세스를 제공할 수 있고 웹 티어(web tier)(244)를 통해 액세스가능한 유사한 환경 내에서 실행될 수 있다. 이는, 예를 들어, 도메인 또는 파티션이 (상기 CDB의) 상기 PDB들 중 하나 이상과 관련되도록 한다.
실시예에 따르면, 이 예시 파티션 A(250) 및 파티션 B(260)에서 상기 복수의 파티션들 각각은 그 파티션과 관련된 복수의 리소스들을 포함하도록 구성될 수 있다. 예를 들어, 파티션 A는 어플리케이션 A1(252), 어플리케이션 A2(254) 및 PDB A(259)와 관련된 데이터 소스 A(257)를 포함한 JMS A(256)를 포함하는 리소스 그룹(251)을 포함하도록 구성될 수 있고, 상기 파티션은 가상 타겟 A(258)를 통해 액세스가능하다. 유사하게, 파티션 B(260)는 어플리케이션 B1(262), 어플리케이션 B2(264) 및 PDB B(269)와 관련된 데이터소스 B(266)를 포함한 JMS B(266)를 포함하는 리소스 그룹(261)을 포함하도록 구성될 수 있고, 상기 파티션은 가상 타겟 B(268)을 통해 액세스가능하다.
상기 여러 예들은 CDB 및 PDB들의 사용을 도시하지만, 다른 실시예들에 따르면, 다른 타입들의 멀티-테넌트 또는 비-멀티테넌트(non-multi-tenant) 데이터베이스들이 지원될 수 있고, 예를 들어 스키마들(schemas)의 상기 사용 또는 서로 다른 데이터베이스들의 상기 사용을 통해 특정한 구성이 각각의 파티션에 대해 제공될 수 있다.
리소스들
실시예에 따르면, 리소스는 상기 환경의 도메인에 대해 배포될 수 있는 시스템 리소스, 어플리케이션 또는 다른 리소스 또는 객체이다. 예를 들어, 실시예에 따르면, 리소스는 서버, 클러스터 또는 다른 어플리케이션 서버 타겟에 대해 배포될 수 있는 어플리케이션, JMS, JDBC, 자바메일, WLDF, 데이터 소스 또는 다른 시스템 리소스 또는 다른 타입의 객체일 수 있다.
파티션들
실시예에 따르면, 파티션은, 파티션 식별자(ID) 및 구성과 관련될 수 있고, 어플리케이션들을 포함할 수 있고 그리고/또는 리소스 그룹들 및 리소스 그룹 템플릿들의 상기 사용을 통해 도메인-와이드 리소스(domain-wide resource)들을 참조할 수 있는 도메인의 런타임 및 관리 서브디비전 또는 슬라이스이다.
일반적으로, 파티션은 고유의 어플리케이션들을 포함하고, 리소스 그룹 템플릿들을 통해 도메인 와이드 어플리케이션들을 참조하며, 고유의 구성을 가질 수 있다. 파티션가능한 엔티티(Partitionable entity)들은 리소스들, 예를 들어 JMS, JDBC, 자바메일, WLDF 리소스들, 및 JNDI 네임스페이스, 네트워크 트래픽, 작업 관리자들 및 보안 정책 및 영역들과 같은 다른 컴포넌트들을 포함할 수 있다. 멀티-테넌트 환경의 맥락에서, 상기 시스템은 테넌트와 관련된 파티션들의 상기 관리 및 런타임 양상들로의 테넌트 액세스를 제공하도록 구성될 수 있다.
실시예에 따르면, 파티션 내의 각각의 리소스 그룹은 리소스 그룹 템플릿을 선택적으로 참조할 수 있다. 파티션은 다수의 리소스 그룹들을 가질 수 있고, 다수의 리소스 그룹들 각각은 리소스 그룹 템플릿을 참조할 수 있다. 각각의 파티션은 상기 파티션의 리소스 그룹들이 참조하는 상기 리소스 그룹 템플릿들에서 특정되지 않는 구성 데이터에 대한 프로퍼티들을 정의할 수 있다. 이는 파티션이 그 파티션에서 사용할 특정값들에 대한 리소스 그룹 템플릿에 정의된 배포가능한 리소스들의 바인딩으로서 역할을 하게 한다. 일부 케이스들에서, 파티션은 리소스 그룹 템플릿에 의해 특정되는 구성 정보를 오버라이드(override)할 수 있다.
실시예에 따르면, 예를 들어 config.xml 구성 파일에 의해 정의된 파티션 구성은 복수의 구성 요소들, 예를 들어, 상기 파티션을 정의하는 상기 어트리뷰트(attribute)들 및 차일드 요소들을 포함하는 "파티션", 상기 파티션에 대해 배포되는 상기 어플리케이션들 및 리소스들을 포함하는 "리소스 그룹", 해당 템플릿에 의해 정의되는 어플리케이션들 및 리소스들을 포함하는 "리소스 그룹 템플릿", 데이터베이스-특정 서비스 이름, 사용자 이름 및 패스워드를 포함하는 "jdbc-시스템-리소스-오버라이드" 및 리소스 그룹 템플릿들 내의 매크로 교체(macro replacement)를 위해 사용될 수 있는 프로퍼티 키 값들을 포함하는 "파티션-프로퍼티들"을 포함할 수 있다.
스타트업 시, 상기 시스템은 상기 리소스 그룹 템플릿으로부터 각각의 리소스에 대한 파티션-특정 구성 요소들을 생성하기 위해 상기 구성 파일에 의해 제공되는 상기 정보를 사용할 수 있다.
리소스 그룹들
실시예에 따르면, 리소스 그룹은 도메인 또는 파티션 레벨에서 정의될 수 있고, 리소스 그룹 템플릿을 참조할 수 있는 배포가능한 리소스들의 명명된, 완전히 적격한 집합(named, fully-qualified collection)이다. 리소스 그룹 내의 상기 리소스들은 상기 관리자가 시작 또는 상기 리소스들에 연결하기 위해 필요한 모든 상기 정보, 예를 들어 데이터 소스에 연결하기 위한 상기 크리덴셜(credential)들 또는 어플리케이션에 대한 상기 타겟팅 정보를 제공했다는 점에서 완전히 적격한 것으로 고려된다.
시스템 관리자는 상기 도메인 레벨에서 또는 상기 파티션 레벨에서 리소스 그룹들을 선언할 수 있다. 상기 도메인 레벨에서, 리소스 그룹은 그룹 관련 리소스들에 편리한 방식을 제공한다. 상기 시스템은 비그룹화된 리소스들과 동일하게 도메인-레벨 리소스 그룹에서 선언된 리소스들을 관리할 수 있어서, 상기 리소스들은 시스템 스타트업 동안 시작되고, 시스템 셧-다운 동안 정지될 수 있다. 관리자는 또한, 그룹 내의 리소스를 개별적으로 정지, 시작 또는 제거할 수 있고, 상기 그룹상에서 동작함으로써 묵시적으로 상기 그룹 내의 모든 상기 리소스들에 영향을 줄 수 있다. 예를 들어, 리소스 그룹을 정지시키는 것은 아직 정지되지 않은 상기 그룹 내의 상기 모든 리소스들을 정지시키고, 상기 리소스 그룹을 시작시키는 것은 아직 시작되지 않은 상기 그룹 내의 임의의 리소스들을 시작시키며, 상기 리소스 그룹을 제거하는 것은 상기 그룹에 포함된 상기 모든 리소스들을 제거한다.
상기 파티션 레벨에서, 시스템 또는 파티션 관리자는 임의의 보안 제약들의 대상이 되는 파티션 내의 0개 이상의 리소스 그룹들을 구성할 수 있다. 예를 들어, SaaS 사용 케이스에서, 다양한 파티션-레벨 리소스 그룹들은 도메인-레벨 리소스 그룹 템플릿들을 참조할 수 있고, 반면 PaaS 사용 케이스에서, 리소스 그룹 템플릿을 참조하는 것이 아니라, 대신에 해당 파티션 내에서만 이용가능해지는 이들의 관련 리소드들 및 어플리케이션들을 표시하는 파티션-레벨 리소스 그룹들이 생성될 수 있다.
실시예에 따르면, 리소스 그룹핑은 어플리케이션들 및 이들이 상기 도메인 내에서 별개의 관리 유닛으로서 사용하는 상기 리소스들을 함께 그룹하기 위해 사용될 수 있다. 예를 들어, 하기 기술되는 의료 기록들(MedRec) 어플리케이션에서, 리소스 그룹핑은 상기 MedRec 어플리케이션 및 이의 리소스들을 정의한다. 다수의 파티션들은 각각의 파티션-특정 구성 정보를 사용하여 상기 동일한 MedRec 리소스 그룹을 실행할 수 있어서, 각각의 MedRec 인스턴스의 일부인 상기 어플리케이션들은 각각의 파티션에 특정되게 된다.
리소스 그룹 템플릿들
실시예에 따르면, 리소스 그룹 템플릿은 리소스 그룹으로부터 참조될 수 있는 도메인 레벨에서 정의되는 배포가능한 리소스들의 집합이고, 이의 리소스들을 활성화시키기 위해 요구되는 상기 정보의 일부는 상기 템플릿 자체의 일부로서 저장되지 않을 수 있으면 이것은 파티션 레벨 구성의 상기 사양(specification)을 지원한다. 도메인은 임의의 수의 리소스 그룹 템플릿들을 포함할 수 있고, 이들 각각은 예를 들어, 하나 이상의 관련 자바 어플리케이션들 및 상기 어플리케이션들에 종속되는 상기 리소스들을 포함할 수 있다. 상기 리소스들에 관한 상기 정보의 일부는 모든 파티션들에 걸쳐 동일할 수 있고, 반면 다른 정보는 파티션마다 다양할 수 있다. 모든 구성이 도메인 레벨에서 특정될 필요는 없는바 - 대신 파티션 레벨 구성이 매크로들 또는 프로퍼티 이름/값 쌍들의 상기 사용을 통해 상기 리소스 그룹 템플릿에 특정될 수 있다.
실시예에 따르면, 특정한 리소스 그룹 템플릿은 하나 이상의 리소스 그룹들에 의해 참조될 수 있다. 일반적으로, 어떤 임의의 파티션 내에서, 리소스 그룹 템플릿은 한 번에 하나의 리소스 그룹에 의해 참조될 수 있는바, 즉 상기 동일한 파티션 내에서 다수의 리소스 그룹들에 의해 동시에 참조될 수 없다. 그러나, 이는 서로 다른 파티션 내의 다른 리소스 그룹에 의해 동시에 참조될 수 있다. 상기 리소스 그룹을 포함하는 상기 객체, 예컨대 상기 도메인 또는 파티션은 상기 리소스 그룹 템플릿 내의 임의의 토큰들의 값을 설정하기 위해 프로퍼티 이름/값 할당들을 사용할 수 있다. 상기 시스템이 참조 리소스 그룹을 사용하여 리소스 그룹 템플릿을 활성화시킬 때, 이는 상기 토큰들을 리소스 그룹의 포함 객체에 설정된 값들과 교체할 수 있다. 일부 케이스들에서, 상기 시스템은 또한, 각각의 파티션/템플릿 조합에 대한 런타임 구성을 생성하기 위해 통계적으로 구성된 리소스 그룹 템플릿들 및 파티션들을 사용할 수 있다.
예를 들어, SaaS 사용 케이스에서, 상기 시스템은 상기 동일한 어플리케이션들 및 리소스들을 여러번 활성화시킬 수 있으며, 이는 이 어플리케이션들 및 리소스들을 사용할 각각의 파티션에 대해 한번씩 활성화시키는 것을 포함한다. 관리자가 리소스 그룹 템플릿을 정의할 때, 이들은 다른 곳에 공급될 상기 정보를 표시하기 위해 토큰들을 사용할 수 있다. 예를 들어, CRM-관련 데이터 리소스에 연결할 시 사용하기 위한 상기 사용자이름이 \${CRMDataUsername}로서 상기 리소스 그룹 템플릿에 표시될 수 있다.
테넌트들
실시예에 따르면, 멀티-테넌트(MT) 어플리케이션 서버 환경과 같은 멀티-테넌트 환경에서, 테넌트는 하나 이상의 파티션들 및/또는 하나 이상의 테넌트-인지 어플리케이션들에 의해 표현될 수 있거나 또는 이와 달리 하나 이상의 파티션들 및/또는 하나 이상의 테넌트-인지 어플리케이션들과 관련될 수 있는 엔티티이다.
예를 들어, 테넌트들은 서로 다른 외부의 회사들 또는 특정 기업 내의 서로 다른 부서들(예컨대, HR 및 재무 부서들)과 같은 별개의 사용자 조직들을 표현할 수 있고, 이들 각각은 서로 다른 파티션과 관련될 수 있다. 테넌트 전역 고유 신원(tenant globally unique identity)(테넌트 ID)은 특정한 시점에 특정한 테넌트와의 특정한 사용자의 상기 관련성이다. 상기 시스템은 예를 들어, 사용자 신원 스토어를 참조하는 것에 의해 특정한 사용자가 어느 테넌트에 속하는지를 상기 사용자 신원으로부터 도출할 수 있다. 상기 사용자 신원은 상기 시스템으로 하여금, 이들로만 한정되는 것은 아니지만, 상기 사용자가 속할 수 있는 테넌트를 포함하여 사용자가 수행하도록 인가된 상기 동작들을 실시할 수 있게 한다.
실시예에 따르면, 상기 시스템은 서로 다른 테넌트들의 상기 관리 및 런타임이 서로 격리되게 한다. 예를 들어, 테넌트들은 자신의 어플리케이션들 및 이들이 엑세스할 수 있는 리소스들의 일부 행동들을 구성할 수 있다. 상기 시스템은 특정한 테넌트가 다른 테넌트에 속하는 아티팩트(artifact)들을 관리할 수 없게 보장할 수 있고, 런타임 시 특정한 테넌트 대신 작동하는 상기 어플리케이션들이 그 테넌트와 관련된 리소스들만 참조하고 다른 테넌트들과 관련된 리소스들을 참조하지 못하게 할 수 있다.
실시예에 따르면, 테넌트-비인지 어플리케이션은 테넌트들을 명시적으로 다루는 로직을 포함하지 않는 어플리케이션이어서, 상기 어플리케이션이 사용하는 임의의 리소스들은 어떤 사용자가 상기 어플리케이션이 응답하는 요청을 제출했는지에 관계없이 액세스가능할 수 있다. 대조적으로, 테넌트-인지 어플리케이션은 테넌트들을 명시적으로 다루는 로직을 포함한다. 예를 들어, 사용자의 신원에 기초하여, 상기 어플리케이션은 상기 사용자가 속하는 상기 테넌트를 도출할 수 있고, 해당 정보를 테넌트-특정 리소스들에 액세스하기 위해 사용할 수 있다.
실시예에 따르면, 상기 시스템은 사용자들이 테넌트-인지하도록 명시적으로 기록된 어플리케이션들을 배포할 수 있게 하며, 따라서 어플리케이션 개발자들은 현재 테넌트의 상기 테넌트 ID를 획득할 수 있다. 그 다음, 상기 테넌트-인지 어플리케이션은 상기 어플리케이션의 단일 인스턴스를 사용하는 다수의 테넌트들을 처리하기 위해 상기 테넌트 ID를 사용할 수 있다.
예를 들어, 단일 의사의 사무실 또는 병원을 지원하는 상기 MedRec 어플리케이션은 두 개의 서로 다른 파티션들 또는 테넌트들, 예컨대 Bayland Urgent Care 테넌트 및 Valley Health 테넌트에 노출될 수 있으며, 이들 각각은 상기 기초 어플리케이션 코드를 변경함이 없이, 별개의 PDB들과 같은 별개의 테넌트-특정 리소스들에 액세스할 수 있다.
대표적인 도메인 구성 및 멀티- 테넌트 환경
실시예에 따르면, 어플리케이션들은 상기 도메인 레벨에서 리소스 그룹 템플릿에 대해 또는 파티션 범위의(scoped to) 또는 상기 도메인 범위의 리소스 그룹에 대해 배포될 수 있다. 어플리케이션 구성은 어플리케이션마다 또는 파티션마다 특정되는 배포 계획들을 사용하여 오버라이드될 수 있다. 배포 계획들은 또한 리소스 그룹의 일부로 특정될 수 있다.
도 4는 실시예에 따르면, 대표적인 멀티-테넌트 환경에서 사용하기 위한 도메인 구성을 도시한다.
실시예에 따르면, 상기 시스템이 파티션을 시작할 때, 이는 상기 제공되는 구성에 따라, 각각의 데이터베이스 인스턴스들에 대해, 가상 타겟들(예컨대, 가상 호스트들) 및 연결 풀들을 각각의 파티션에 대한 것을 포함하여 생성한다.
전형적으로, 각각의 리소스 그룹 템플릿은 하나 이상의 관련 어플리케이션들 및 상기 어플리케이션들이 종속되는 상기 리소스들을 포함할 수 있다. 각각의 파티션은 상기 파티션과 관련된 특정 값들에 리소스 그룹 템플릿들 내의 상기 배포가능한 리소스들의 바인딩을 제공하는 것에 의해 상기 파티션이 참조하는 상기 리소스 그룹 템플릿들에 특정되지 않은 구성 데이터를 제공할 수 있으며, 일부 케이스들에서, 상기 리소스 그룹 템플릿에 의해 특정된 어떤 구성 정보를 오버라이드하는 것을 포함한다. 이는 상기 시스템이 각각의 파티션이 정의한 상기 프로퍼티 값들을 사용하여 각각의 파티션에 대해 서로 다르게 리소스 그룹 템플릿에 의해 표현되는 어플리케이션을 활성화시킬 수 있게 한다.
일부 예들에서, 파티션은 리소스 그룹 템플릿들을 참조하지 않거나 또는 고유의 파티션 범주의 배포가능한 리소스들을 직접적으로 정의하는 리소스 그룹들을 포함할 수 있다. 파티션 내에 정의되는 어플리케이션들 및 데이터 소스들은 일반적으로 해당 파티션에만 이용가능하다. 리소스들은 파티션: <partitionName>/<resource JNDI name>, 또는 domain:<resource JNDI name>를 사용하여 파티션들에 걸쳐 액세스될 수 있도록 배포될 수 있다.
예를 들어, MedRec 어플리케이션은 복수의 자바 어플리케이션들, 데이터 소스, JMS 서버 및 메일 세션을 포함할 수 있다. 다수의 테넌트들에 대한 상기 MedRec 어플리케이션을 실행하기 위해, 상기 시스템 관리자는 단일 MedRec 리소스 그룹 템플릿(286)을 정의할 수 있고, 상기 템플릿에 상기 배포가능한 리소스들을 선언할 수 있다.
도메인 레벨의 배포가능한 리소스들과는 대조적으로, 리소스 그룹 템플릿에 선언된 상기 배포가능한 리소스들은 상기 템플릿에 완전히 구성되지 않을 수 있거나 또는 있는 그대로 활성화되지 못할 수 있는바, 그 이유는 이 리소스들에 일부 구성 정보가 결여되어 있기 때문이다.
예를 들어, 상기 MedRec 리소스 그룹 템플릿은 상기 어플리케이션들에 의해 사용되는 데이터 소스를 선언할 수 있지만, 이는 상기 데이터베이스에 연결하기 위한 URL을 특정하지 않을 수 있다. 서로 다른 테넌트들과 관련된 파티션들, 예를 들어 파티션 BUC-A(290)(Bayland Urgent Care, BUC) 및 파티션 VH-A(292)(Valley Health, VH)는 상기 MedRec 리소스 그룹 템플릿을 참조(296, 297)하는 MedRec 리소스 그룹(293, 294)을 각각 포함하는 것에 의해 하나 이상의 리소스 그룹 템플릿들을 참조할 수 있다. 그 다음, 상기 참조는 상기 Bayland Urgent Care 테넌트가 사용하기 위한 BUC-A 파티션과 관련된 가상 호스트 baylandurgentcare.com(304) 및 상기 Valley Health 테넌트가 사용하기 위한 상기 VH-A 파티션과 관련된 가상 호스트 valleyhealth.com(308)를 포함하는, 각각의 테넌트에 대한 상기 가상 타겟들/가상 호스트들을 생성(302, 306)하기 위해 사용될 수 있다.
도 5는 실시예에 따르면, 대표적인 멀티-테넌트 환경을 더 도시한다. 도 5에 도시된 바와 같이, 그리고 두 파티션들이 상기 MedRec 리소스 그룹 템플릿을 참조하는 상기 예에 이어, 실시예에 따르면, 서블릿 엔진(310)이 복수의 테넌트 환경들, 이 예에서는 Bayland Urgent Care Physician 테넌트 환경(320) 및 Valley Health Physician 테넌트 환경(330)을 지원하기 위해 사용될 수 있다.
실시예에 따르면, 각각의 파티션(321, 331)은 해당 테넌트 환경에 대해 유입 트래픽을 수락하기 위한 서로 다른 가상 타겟, 및 파티션 및 이의 리소스들(324, 334) 에 연결하기 위한 서로 다른 URL(322, 332)를 정의할 수 있으며 이 예에서는 bayland urgent care 데이터베이스 또는 valley health 데이터베이스를 각각 포함한다. 상기 데이터베이스 인스턴스들은 호환가능한 스키마를 사용할 수 있고, 이는 상기 동일한 어플리케이션 코드가 두 데이터베이스들에 대해 실행될 것이기 때문이다. 상기 시스템이 상기 파티션들을 시작할 때, 이는 상기 가상 타겟들, 및 상기 각각의 데이터베이스 인스턴스들로의 연결 풀들을 생성할 수 있다.
트랜잭션한 환경 및 글로벌 트랜잭션
도 6은 본 발명의 실시예에 따르면, 트랜잭션한 환경의 도시를 보여준다. 도 6에 도시된 바와 같이, 트랜잭션 환경(600)은 어플리케이션 프로그램(602), 하나 이상의 트랜잭션 관리자들(TM)(603), 복수의 리소스 관리자들(RM)(604-606), 및 하나 이상의 지속 저장소(persistence store)들, 예컨대 상기 데이터베이스(610)를 포함할 수 있다.
본 발명의 실시예에 따르면, 상기 어플리케이션 프로그램(602)은 트랜잭션을 구성하는 동작들을 특정할 수 있다. 도시된 바와 같이, 상기 어플리케이션 프로그램(602)은 트랜잭션을 개시, 커밋 또는 중지하기 위해 상기 트랜잭션 관리자(603)와 통신하며, 그리고 상기 트랜잭션 관리자(603)는 상기 트랜잭션의 상기 시작, 종료 및 배치를 상기 어플리케이션 프로그램(602)으로 되돌려 보낼 수 있다. 또한, 상기 어플리케이션 프로그램(602)은 트랜잭션 정보를 복수의 리소스 관리자들(RM)(604-606)과 교환할 수 있는 상기 트랜잭션 관리자(603)에 대한 트랜잭션 경계들을 정의할 수 있다. 게다가, 상기 어플리케이션 프로그램(602)은 작업을 수행하기 위해 임베디드 스트럭처 쿼리(Embedded Structured Query)(SQL)를 통해 복수의 리소스 관리자들(604-606)과 통신할 수 있다.
상기 복수의 리소스 관리자들(604-606)은 지속 저장소들, 예컨대 상기 데이터베이스(610)(또는 데이터베이스들)에 대한 액세스를 제공할 수 있다. 본 발명의 실시예에 따르면, 상기 복수의 리소스 관리자들(604-606)은 지속 저장소들에 투명하게 데이터베이스 연결들 및 연결 해제들을 처리하기 위해 XA(eXtended Architecture) 인터페이스들을 구현할 수 있다. 상기 XA 인터페이스들은 트랜잭션 조정, 커밋먼트(commitment) 및 복구를 위한 프로토콜을 기술하는 사양(specification)에 기초할 수 있다. 트랜잭션에 참여하는 XA 리소스는 XA 리소스 관리자와 백엔드 지속 저장소를 포함할 수 있다.
본 발명의 다양한 실시예에 따르면, 트랜잭션한 시스템은 하나보다 많은 서버상에서 실행될 수 있고 하나보다 많은 리소스 관리자로부터 데이터에 액세스할 수 있는 글로벌 트랜잭션을 지원할 수 있다.
글로벌 트랜잭션은 원자성(atomicity), 일관성, 격리성 및 내구성 (ACID)으로 명명된, 4가지 프로퍼티들로 특징되는 동작들의 특정 시퀀스로서 취급될 수 있다. 상기 글로벌 트랜잭션은 상기 트랜잭션의 모든 부분들이 성공하거나 또는 아무런 효과가 없는 작업의 논리적 단위일 수 있다. 또한, 하나의 일관된 상태에서 다른 상태로 상기 리소스들을 올바르게 변환하는 동작들이 수행된다. 게다가, 글로벌 트랜잭션 내에서, 비록 동일한 트랜잭션의 다른 프로세스들이 상기 데이터에 액세스할 수 있지만, 중간 결과들은 일반적으로 다른 트랜잭션들에서는 액세스가능하지 않다. 또한, 글로벌 트랜잭션의 완료된 시퀀스의 영향들은 실패에 의해 일반적으로 변경되지 않는다.
또한, 실시예에 따르면, 글로벌 트랜잭션은 단일 리소스 관리자에 각각 액세스하는 다수의 로컬 트랜잭션들을 포함할 수 있다. 로컬 트랜잭션은 단일 데이터베이스 또는 파일에 액세스할 수 있고 해당 고유 데이터베이스에서 동시성 컨트롤 및 업데이트들의 원자성 수행을 책임지는 상기 리소스 관리자에 의해 컨트롤될 수 있다. 임의의 로컬 트랜잭션은 상기 액세스를 완성하는데 성공적이거나 또는 성공적이지 않을 수 있다.
실시예에 따르면, 상기 트랜잭션 관리자(603)는 글로벌 트랜잭션 식별자들 (GTRIDs)을 트랜잭션 환경(600)의 상기 서로 다른 트랜잭션들에 할당할 수 있다. 상기 트랜잭션 관리자(603)는 상기 트랜잭션의 상기 진행을 모니터할 수 있고, 트랜잭션 완성을 보장하고 실패 복구를 제공할 책임이 있을 수 있다. 게다가, 상기 트랜잭션 관리자(603)는 두-단계 커밋들의 호출들을 상기 리소스 관리자들(604-605)로 송신하는 것과 같은 트랜잭션 정보를 교환하기 위해 XA 인터페이스들을 통해 상기 복수의 리소스 관리자들(604-605)과 통신할 수 있다.
두-단계 커밋 ( 2PC )
두-단계 커밋(2PC) 프로토콜은 느슨히-연결된 글로벌 트랜잭션과 같은 트랜잭션을 실행하는 데 사용될 수 있다. 상기 두-단계-커밋 프로토콜(2PC)은 준비 단계와 커밋 단계를 포함할 수 있다. 상기 준비 단계에서, 조정 트랜잭션 관리자(TM)는 상기 참여 리소스 관리자들(RMs)에게 상기 트랜잭션을 커밋하거나 또한 중단하기 위해 상기 필요한 단계들을 수행하도록 지시한다. 상기 커밋 단계에서, 상기 트랜잭션 관리자(TM)는 상기 준비 단계의 상기 결과들에 기초하여, 상기 트랜잭션을 커밋할지 또는 중단할지 여부를 결정한다.
도 7은 트랜잭션한 미들웨어 머신 환경에서 두-단계 커밋을 지원하는 도시를 보여준다. 도 7에 도시된 바와 같이, 트랜잭션한 환경(700)은 다양한 트랜잭션들의 상기 실행을 지원하는 트랜잭션 관리자(701) 및 하나 이상의 데이터 소스들을, 예컨대 데이터베이스(705), 관리하는 하나 이상의 리소스 관리자들(702-704)을 포함할 수 있다.
예를 들어, 상기 트랜잭션 관리자(701)는 트랜잭션 브랜치 A(711), 트랜잭션 브랜치 B(712) 및 트랜잭션 브랜치 C(713)를 포함하는 트랜잭션을 실행할 수 있으며, 각 브랜치는 각각 리소스 관리자(702-704)에 대해 실행될 수 있다. 상기 트랜잭션에서 임의의 브랜치가 실패하면, 상기 트랜잭션 관리자(701)는 상기 리소스 관리자(702-704)가 상기 트랜잭션을 커밋할 것인지 또는 롤백할 것인지를 여부를 결정할 수 있게 한다.
도 7에 도시된 바와 같이, 상기 트랜잭션 관리자(701)는 준비 명령어를 3개의 모든 브랜치들(단계들 1, 2 및 3)상의 상기 리소스 관리자(702-704)에 송신할 수 있다. 상기 리소스 관리자들(702-704)이 "OK" 투표(vote)를 리턴한 후(단계들 4, 5 및 6), 상기 트랜잭션 관리자(701)는 트랜잭션 로그(TLOG)를 상기 데이터베이스(705)에 기록할 수 있다(단계 7).
상기 트랜잭션 로그는 파일들 또는 데이터베이스에 기록될 수 있으며, 따라서 상기 트랜잭션 관리자(701)는 상기 커밋 단계 동안 임의의 브랜치가 실패하더라도 상기 트랜잭션을 복구하기 위한 충분한 정보를 가질수 있다.
그 다음, 상기 트랜잭션 관리자(701)는 상기 리소스 관리자(702-704)에게 3 개의 모든 브랜치를 커밋하도록 지시할 수 있다(단계들 8, 9 및 10). 상기 리소스 관리자(702-704)는 상기 커밋 단계를 성공적으로 완료한 후에 상기 트랜잭션 관리자(701)에 알릴 수 있다(단계들 11, 12 및 13).
트랜잭션 로그( TLOG )에 기초한 트랜잭션 복구
본 발명의 실시예에 따르면, 트랜잭션 로그(TLOG)는 트랜잭션 관리자에 의해 트랜잭션들을 커밋하기 위한 상기 결정들을 저장할 수 있다. 예를 들어, 상기 TLOG는 상기 트랜잭션 관리자가 상기 서로 다른 참여 XA 리소스들을 추적할 수 있도록 유지될 수 있는 리소스 체크포인트 레코드를 저장할 수 있다.
트랜잭션 관리자가 상기 준비 단계 후에 모든 트랜잭션 브랜치들로부터 성공 투표를 수신할 때, 트랜잭션은 상기 TLOG에 기록될 수 있다. TLOG의 상기 트랜잭션 레코드는 적어도 트랜잭션 관리자에 의해 할당된 GTRID 및 상기 트랜잭션이 실행되는 리소스 관리자에 의해 할당된 로컬 XID를 더 포함하는 트랜잭션 식별자(XID)를 포함할 수 있다.
또한, 상기 TLOG는 커밋된 것으로 표시된 비행-중 트랜잭션들의 상기 상태의 레코드들을 홀드(hold)할 수 있다. 상기 TLOG는 준비가 되었지만 아직 중간-티어 트랜잭션한 시스템에서 커밋되지 않은, 예를 들어 시스템 충돌 후, 트랜잭션들인 불확실한 트랜잭션들을 복구하는 데 유용하다. 상기 불확실한 트랜잭션들을 복구하지 않으면, 상기 시스템은 충돌 후에 올바르지않고 일관성없는 상태가 될 수 있다.
예를 들어, 두-단계 커밋 트랜잭션 중에 시스템이 실패하는 경우, 하나의 벡엔드 데이터 저장소에 대한 상기 업데이트들이 커밋했을 수 있지만, 동일한 트랜잭션에서 다른 데이터 저장소에 대한 상기 업데이트들이 커밋되도록 아직 지시되지 않았을 수 있다(예컨대, 상기 데이터 저장소의 업데이트들은 아직 펜딩(pending)). 상기 시스템의 상기 실패한 부분들이 다시 시작되면, 펜딩 업데이트들을 홀딩한 상기 데이터 저장소들은 상기 업데이트들 커밋되거나 롤백될지 여부를 알 수 없다.
도 8은 트랜잭션한 미들웨어 머신 환경에서 불확실한 트랜잭션들을 복구하는 도시를 보여준다. 도 8에 도시된 바와 같이, 상기 트랜잭션한 미들웨어 머신 환경(800)은 트랜잭션 관리자(801), 및 복수의 리소스 관리자들(802-804), 및 지속 저장소, 즉 데이터베이스(805)를 포함한다.
상기 트랜잭션 관리자(801)는 상기 TLOG를 읽는 것/참조하는 것에 의해 글로벌 트랜잭션이 불확실한지 여부를 자동적으로 결정할 수 있다(단계 1). 그 다음, 상기 트랜잭션 관리자(801)는 상기 참여 리소스 관리자들(802-804)의 상기 관련된 백엔드 데이터 저장소들을 폴링(poll) 할 수 있다. 상기 참여 리소스 관리자들(802-804) 각각은 상기 트랜잭션 관리자(801)가 상기 트랜잭션들을 롤백할지 또는 커밋 할지 알지 못하는 상기 트랜잭션들인 불확실한 트랜잭션들의 상기 리스트를 리턴할 수 있다(단계들 2, 4 및 6).
또한, 상기 트랜잭션 관리자(801)는 각각의 불확실한 트랜잭션을 상기 TLOG와 매치시키고, 서로 다른 리소스 관리자들(802-804)에서 상기 불확실한 트랜잭션들을 커밋 또는 롤백하도록 진행할 수 있다(단계들 3, 5 및 7). 예를 들어, 불확실한 트랜잭션이 상기 TLOG에 나타날 때, XAResource.commit()은 상기 TLOG에 특정된 리소스 관리자에게 상기 불확실한 트랜잭션을 커밋하기 위해 호출될 수 있다. 반면에, 트랜잭션이 상기 TLOG내에 있지 않을 때, 즉 충돌 전에 상기 트랜잭션에 커밋 결정이 이루어지지 않은 경우, XAResource.rollback()은 해당 트랜잭션 식별자(XID)에 기초한 리소스 관리자 상에서 이를 롤백 하기 위해 호출될 수 있다.
도 8에 도시된 바와 같이, 트랜잭션은 리소스 관리자(802) 상에 준비될 수 있고 상기 리소스 관리자(802)가 상기 트랜잭션 관리자(801)에 상기 성공 투표를 송신할 수 있기 전에 상기 시스템이 충돌한다. 그 다음, 상기 트랜잭션 관리자(801)는 모든 트랜잭션 브랜치들로부터 성공 투표를 수신할 수 없을 수 있고, 따라서 상기 TLOG에서 상기 트랜잭션을 로그할 수 없을 수 있다. 따라서, 상기 트랜잭션 관리자(801)는 그들 각각의 리소스 관리자들(802-804)상 모든 브랜치 트랜잭션들을 롤백할 수 있다. 따라서, 일관되고 예측가능한 트랜잭션 복구 어프로치를 사용하여, 트랜잭션 관리자는 일부 브랜치들이 커밋되고 일부 브랜치들은 롤백되는 혼합된 휴리스틱 완성(mixed heuristic completion)을 피할 수 있다.
트랜잭션 관리자 복구 로그들의 상기 필요성 완화
트랜잭션한 환경에서, 복구를 수행하고 ACID 프로퍼티들을 보장하기 위해 복구 정보를 안정된 저장소에 유지해야할 상기 필요성은 일반적으로 두-단계의 설계 요구 사항이다. 그러나, 리소스 관리자들을 상기 실제 프로토콜 네트워크가 호출하는 것과 마찬가지로, 복구 정보를 안정된 저장소(예컨대, TLOG)에 유지할 상기 필요성은, 2PC 트랜잭션들에 대한 성능 비용을 초래할 수 있다. 또한 상기 저장소의 상기 관리로 인한 관리 비용과 마찬가지로 고-가용성 안정된 저장소에 필요한 상기 공유된 파일 시스템 또는 데이터베이스 저장소로 인한 상당한 자산 용량 비용이 발생할 수 있다. 이러한 비용들은 (동시성의)복제와 관리를 필요로 하는 사이트-전체 재해 복구의 상기 케이스에만 상승한다. 이러한 시스템들에서, 주요한 사이트 근처에 상주하는 데이터베이스는 두번째 활성 사이트의 어플리케이션 서버로부터 액세스되며 이 데이터베이스는 순차적으로 두번째/대기 사이트와 동기식으로 동기화되어야한다. 매우 일반적인 케이스에서, 종종 거리에 의해 의도적으로 분리된 적어도 두개 사이트들에 걸쳐서 통신할 필요성이 있고 모든 단일 트랜잭션에 대해 상기 사이트들 모두에서 안정된 저장을 수행할 필요성이 있다.
예를 들어, 상기 XA 두-단계 로깅 알고리즘을 활용하는 전형적인 2PC 트랜잭션은 다음 단계들을 포함할 수 있다. 상기 어플리케이션은 트랜잭션에서 다수의 XA 리소스들을 사용할 수 있고 상기 트랜잭션에 대해 커밋을 발행한다. 그 다음, 상기 트랜잭션 관리자는 모든 XA 리소스 참여자들(예컨대, 리소스 관리자들)에 대해 준비(예컨대, XAResource.prepare)를 발행할 수 있다. 그 다음, 상기 트랜잭션 관리자는 상기 트랜잭션 로그를 적어도 상기 트랜잭션의 상기 형식 id 및 글로벌 트랜잭션 id를 포함하는 안정된 저장소(예컨대, 데이터베이스)에 유지할 수 있다. 상기 리소스 관리자로부터 성공적인 (OK) 투표들을 수신한 후, 상기 트랜잭션 관리자는 모든 상기 XA 리소스 참여자들에게 커밋(XAResource.commit)을 보낼수 있다. 그 다음, 상기 트랜잭션 관리자는 (일반적으로 느슨하게, 여러 묶음으로 등) 상기 트랜잭션 레코드를 제거/삭제할 수 있다. 만약 실패하는 경우, 상기 유지된 트랜잭션 레코드들은 모든 포함된 리소스 관리자들에 대해 수행된 XAResource.recover 호출들로부터 리턴된 상기 불확실한 트랜잭션 ID들과 매치되고 따라서 커밋 또는 롤백에 의한 복구가 수행된다.
실시예에 따르면, 트랜잭션 관리자가 복구 로그들을 기록하고 유지할 필요성을 완화하는 것은 여분의 통신 및 지속성 오버헤드에 대한 필요성을 완화하는 것에 의해 기존 시스템들에 비해 상당한 개선을 제공할 수 있는 최적화가 될 수 있다.
본 발명에 실시예에 따르면, 두-단계 커밋 호출들의 엄격한 순서화와 적어도 하나의 리소스 참여자를 복구의 결정기 리소스로서 분류하는 것을 포함하는 기술을 사용하여 트랜잭션 복구 및 ACID 프로퍼티들을 여전히 제공하는 동안 트랜잭션 로그의 상기 필요성을 완화하는 것이 가능하다.
실시예에 따르면, 트랜잭션 관리자는 트랜잭션에서 다수의 리소스들을 사용할수 있고 상기 트랜잭션에 대해 커밋을 발행한다. 상기 다수의 리소스들 중 특정 리소스는 트랜잭션의 결정기(본 명세서에서는 결정기 리소스 및 결정기 리소스 관리자라고도 함)로서 지정되도록 구성될 수 있다. 멀티테넌트 어플리케이션 서버 환경의 케이스에서, 파티션은 트랜잭션마다 적어도 하나의 파티션 특정 결정기 리소스를 특정할 수 있다. 결정기 리소스가 구성/선택되지 않으면 상기 트랜잭션 시스템은 구성에서 상기 결정기 리소스를 하나 지명하고 유지할 수 있다. 멀티테넌트 어플리케이션 서버 환경에서 결정기 리소스가 구성되지 않은 경우, 파티션 내의 인스턴스화된 리소스 그룹과 관련된 어플리케이션과 같은 어플리케이션은 파티션-특정 결정 기 자원을 지명할 수 있고 구성에서 상기 파티션 특정 결정기 자원을 유지할 수 있다.
실시예에 따르면, 상기 결정기 리소스로서 지정된 상기 리소스를 포함하는 리소스들의 그룹(예컨대, 콤비네이션)이 처음 사용되는 때 또는 두-단계 트랜잭션에서 리소스들의 새 콤비네이션이 처음 사용되는 때, 리소스들의 상기 콤비네이션(예컨대, 리소스 관리자들의 콤비네이션)은 상기 트랜잭션 처리 서브시스템에 의해 자동적으로 캡쳐될 수 있고 구성에 유지될 수 있다. 상기 구성 지속성은 해당 트랜잭션에 대해 상기 첫번째 준비가 발행되기 바로 전에 발생한다. 상기 구성 변경이 실패하는 경우 상기 트랜잭션은 롤백될 수 있다. 필요하지 않지만, 복구 중에 XAResource.recover 호출들을 요구하는 리소스들의 상기 세트를 줄이는 것으로서 최적화를 더 제공할 수 있다.
실시예에 따르면, 리소스가 상기 결정기 리소스로서 지정되고 엄격한 순서화가 실행되는 트랜잭션 중에, 상기 트랜잭션 관리자는 임의의 트랜잭션 로깅을 수행하지 않는다. 상기 트랜잭션 관리자는 상기 "결정기" 리소스를 마지막으로 준비하도록 모든 리소스 참여자들에 대해 준비 (XAResource.prepare)를 발행할 수 있다. 상기 결정기 리소스 이외의 리소스 상에 상기 준비 호출이 실패하면, 상기 결정기는 준비되지 않을 것이고 상기 트랜잭션은 롤백될 수 있다. 상기 결정기 리소스의 상기 준비 중에 실패가 발생하면, 상기 결정기 리소스들의 상기 롤백에 따라 모든 비-결정기 리소스들이 롤백될 수 있다.
실시예에 따르면, 상기 트랜잭션 관리자는 결정기 리소스가 성공적으로 준비되었음을 표시한 후에만 상기 트랜잭션의 리소스에 대해 커밋을 발행할 수 있다. 그 다음, 상기 트랜잭션 관리자는 커밋(XAResource.commit)을 발행한다. 상기 트랜잭션 관리자는 마지막으로 상기 결정기 리소스를 커밋하여 모든 XA 리소스 참여자들에 대해 XAResource.commit을 발행한다. 상기 준비 호출과 마찬가지로, 상기 결정기 리소스는 모든 비-결정기 리소스들이 성공적으로 커밋될 때까지 커밋하지 않을 것이다. 글로벌 재시도 커밋은 포기 타이머가 만료될 때까지 발행될 수 있다.
실시예에 따르면, 만약 실패하면, XAResource.recover 스캔은 구성의 모든 비-결정기 리소스들에서 수행될 수 있고 상기 불확실한 트랜잭션 ID들은 상기 결정기 리소스의 XAResource.recovery로부터 리턴된 상기 불확실한 트랜잭션 ID와 매치된다. 상기 결정기 리소스의 리스트에 매치(예컨대, 기존 트랜잭션 ID)하는 경우, 커밋에 의해 복구가 발행될 수 있다. 그렇지 않으면, 매치가 발견되지 않는 경우 롤백이 발행될 수 있다.
상기-설명된 기술은 다음 섹션들에서 더 자세히 설명될 수 있다.
상기 두-단계 커밋 ( 2PC ) 호출들의 엄격한 순서화
본 발명의 실시예에 따르면, 상기 시스템은 상기 두-단계 커밋 호출들의 엄격한 순서화에 기초하여, 트랜잭션 처리 중에 중간-티어 트랜잭션 로그들(TLOGs)을 제거할 수 있다.
도 9는 실시예에 따르면, 트랜잭션한 미들웨어 머신 환경에서 트랜잭션을 처리하기 위한 두-단계 커밋(2PC) 호출들의 엄격한 순서화를 지원하는 도시를 보여준다. 도 9에 도시된 바와 같이, 글로벌 트랜잭션과 같은, 트랜잭션(910)은 트랜잭션 관리자(TM)(901), 복수의 리소스 관리자들(RMs)(902-904)을 포함하는 중간-티어 트랜잭션한 시스템 (900)에서 지원될 수 있다. 상기 리소스 관리자들(RMs)(902-903)은 상기 글로벌 트랜잭션(910)에 참여하고, 상기 리소스 관리자(904)는 상기 글로벌 트랜잭션(910)에 참여하지 않는다. 실시예에 따르면, 상기 트랜잭션(910)은 다수의 트랜잭션 관리자들에 걸쳐있지 않다.
실시예에 따르면, 상기 리소스 관리자(902)는 도 9에 묘사된 상기 트랜잭션에 대한 상기 결정기 리소스로서 지정될 수 있다. 이 지정은, 예를 들어, 상기 트랜잭션 관리자에 의해, 또는 파티션에 의해 수행될 수 있으며, 이 상황에서 상기 결정기 리소스는 다른 파티션으로부터 액세스가능하지 않은 파티션-특정 결정기 리소스가 될 수 있다. 상기 결정기 리소스로서의 상기 리소스 관리자(RM)(902)의 상기 지정은, 상기 트랜잭션 머신 환경에 대한 구성 내에 유지 될 수 있다. 결정기 리소스가 구성의 트랜잭션에서 지정되지 않을 때, 상기 트랜잭션 관리자(901)는 상기 결정기 리소스로서 데이터 소스를 지명할 수 있고(단계 1) 이것을 상기 구성 내에 유지할 수 있다. 게다가, 상기 결정기 리소스(902)는 메시지 큐(message queue)와 같은 데이터베이스와 다른 리소스일 수 있다.
또한, 리소스가 처음 사용될 때 또는 상기 두-단계 글로벌 트랜잭션(910)을 처리하는 중에 리소스들의 새로운 콤비네이션이 처음 사용될 때마다, 상기 새로운 리소스 또는 상기 리소스들의 새로운 조합은, 상기 트랜잭션 관리자 (901)에 의해 자동적으로, 구성 파일과 같은 상기 구성에 캡쳐되고 유지될 수 있다. 상기 구성 지속성은 상기 두-단계 트랜잭션에 대해 첫 번째 준비 요청이 발행되기 전에 발생할 수 있다. 이 구성 변경이 실패하면, 상기 트랜잭션(910)은 롤백될 수 있다.
본 발명의 실시예에 따르면, 상기 트랜잭션 관리자(901)은 상기 결정기 리소스, 예컨대 리소스 관리자(902)는 마지막으로 준비되는 것을 보장할 수 있고, 모든 리소스 관리자들이 상기 준비 후에 okay 투표를 리턴하는 경우, 상기 트랜잭션 관리자는 또한 상기 결정기 리소스(902)가 2PC 트랜잭션(910)에 대해 모든 참여 리소스 관리자들 사이에서 커밋되는 것을 보장할 수 있다.
도 9에 도시된 바와 같이, 상기 트랜잭션 관리자(901)는 결정기 리소스를 준비하기 전에(단계 4), 처음으로 상기 리소스 관리자(RM)(903)를 준비할 수 있다(단계 2). 상기 참여 리소스 관리자들(RMs)(902-903)로부터 OK 투표를 수신한 후(단계들 3 및 5), 상기 결정기 리소스 뒤에(단계 8) 상기 트랜잭션 관리자(901)는 상기 리소스 관리자(RM)(903)를 커밋할 수 있다(단계 6). 상기 트랜잭션은 상기 트랜잭션 관리자(901)가 상기 리소스 관리자(902-903) 각각으로부터 성공 표시를 수신한 후에 완료될 수 있다(단계들 7 및 9).
상기 커밋의 엄격한 순서화 및 준비 호출들을 수행하는 것에 의해, 상기 트랜잭션 관리자(901)는 상기 준비 단계가 성공적으로 처리된 후에 TLOG를 기록하는 것을 포함하는 리소스들/체크포인트들의 임의의 로깅을 수행하지 않을 수 있다. 상기 시스템은 상기 트랜잭션의 상기 성능을 향상시킬 수 있는 한편, 상기 중간-티어 트랜잭션한 시스템(900)이 각각의 리소스 관리자로부터 불확실한 트랜잭션들의 리스트를 검색하는것에 의해 상기 트랜잭션(910)을 복구하도록 하고, 후속적으로 상기 결정기 리소스 관리자(예컨대, 도 9의 결정기 RM(902))와 다른 각각의 리소스 관리자(예컨대, 도 9에 묘사된 실시예의 RM(903))로부터 검색된 불확실한 트랜잭션들의 상기 리스트를 상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 리스트와 비교하는 것에 의해 트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하도록 한다.
불확실한 트랜잭션들을 복구하는 것은 상기 결정기 리소스 관리자와 다른 각각의 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 리스트를 상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트와 비교하는 것을 포함할 수 있다. 그리고 그 다음, 상기 결정기 리소스 관리자 이외의 각 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나지만 상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나지 않는 상기 불확실한 트랜잭션들을 롤백할 수 있다. 상기 2PC 트랜잭션의 상기 엄격한 순서화를 수행하는 것에 의해, 상기 시스템은 각 리소스 관리자의 상기 로그들을 상기 최종 결정기 리소스 관리자의 상기 로그와 비교하여 실패한 트랜잭션을 복구할 수 있다.
실시예에 따르면, 상기 결정기 리소스 관리자는 마지막으로 준비되는 상기 리소스 관리자이기 때문에, 상기 결정기 리소스 관리자가 준비되는 경우, 그 다음 모든 상기 선행 리소스 관리자들이 준비되어야만 한다. 상기 결정기 리소스가 성공적으로 준비되는 경우, 그 다음 상기 트랜잭션 관리는 다른 모든 리소스 관리자들이 성공적으로 준비되었는지 결정할 수 있으므로, 복구 중 모든 리소스 관리자들에서 상기 트랜잭션을 커밋하는 것이 안전하다. 상기 리소스 관리자들 중 일부가 준비되었지만, 상기 결정기 리소스 관리자(마지막 줄에 있음)가 준비되지 않은 경우, 그 다음 상기 트랜잭션 관리자는 상기 준비 단계가 완료되지 않았으며 복구 중에 상기 트랜잭션이 롤백되야한다고 결정할 수 있다. 상기 분석은 상기 참여 리소스 관리자들 및 상기 결정기 리소스 관리자의 불확실한(준비되었지만 커밋되지 않은) 트랜잭션들을 비교하는 것에만 의존하며 별도의 트랜잭션 로그를 사용할 필요성을 제거한다.
TLOG를 사용하지 않고 글로벌 트랜잭션 복구
도 10은 실시예에 따르면, 트랜잭션 로그(TLOG)를 사용하지 않고 글로벌 트랜잭션을 복구하는 도시를 보여준다. 도 10에 도시된 바와 같이, 글로벌 트랜잭션과 같은, 2PC 트랜잭션(1010)은 트랜잭션 관리자(TM)(1001), 복수의 리소스 관리자 들(RMs)(1002-1004)을 포함하는 중간-티어 트랜잭션 시스템(1000)에서 지원될 수 있다.
상기 트랜잭션(1010)이 실패 후와 같이 복구될 필요가 있을 때, 상기 트랜잭션 관리자(1001)는 예컨대, XA_recover() 호출을 결정기 리소스(1002) 상에 위치시키는 것에 의해(단계 1), 복구를 시도할 수 있다. 상기 트랜잭션 관리자(1001)는 상기 결정기 리소스(1002)로부터 불확실한 트랜잭션들(준비되었지만 커밋되지 않은 랜잭션들)의 리스트를 수신할 수 있다(단계 2). 또한, 상기 트랜잭션 관리자(1001)는 상기 글로벌 트랜잭션 테이블(GTT)(1006)을 구축/재구축하기 위해 불확실한 트랜잭션들의 상기 리스트를 사용할 수 있다(단계 3).
실시예에 따르면, 상기 결정기 리소스(1002)가 상기 두-단계 커밋 트랜잭션에서 성공적으로 준비될 때, 불확실한 트랜잭션들의 상기 리스트는 상기 트랜잭션 관리자(1001)가 상기 참여 리소스 관리자들(1002-1003)에게 커밋하도록 지시한 중간-티어 대기중인 트랜잭션들과 동일할 수 있다.
그 다음, 상기 트랜잭션 관리자(1001)는 예컨대, 상기 참여 리소스 관리자(1003)(단계 9) 및 상기 비-참여 리소스 관리자(1004)(단계 10)를 포함하는 상기 트랜잭션한 중간-티어 시스템(1000) 내의 모든 상기 다른 리소스 관리자들 상에 XA_recover() 호출을 위치시키는 것에 의해, 복구를 시도할 수 있다.
예를 들어, 상기 트랜잭션 관리자(1001)는 상기 참여 리소스 관리자(1003)로부터의 불확실한 트랜잭션들의 리스트를 수신할 수 있다(단계 5). 상기 트랜잭션 관리자(1001)는 복구 리스트를 생성하기 위해 상기 리스트 내의 상기 불확실한 트랜잭션을 상기 GTT(1006) 테이블과 매치할 수 있다(단계들 6 및 7). 그 다음, 상기 트랜잭션 관리자(1001)는 복구 리스트에 기초하여 상기 참여 리소스 관리자(1003)를 복구할 수 있다(단계 8). 예를 들어, 상기 트랜잭션 관리자(1001)는 상기 GTT(1006) 테이블과 매치되는 상기 불확실한 트랜잭션들을 커밋할 수 있고, 상기 GTT(1006) 테이블과 매치되지 않는 상기 불확실한 트랜잭션들을 롤백할 수 있다.
상기 절차들은 비-참여 리소스인 상기 리소스 관리자(1004) 상에서 수행될 수 있다. 도 10에 도시된 바와 같이, 상기 리소스 관리자(1004)에 XA_recover() 호출을 위치한 후, 상기 트랜잭션 관리자(1001)는 복구 리스트를 생성하기 위해 상기 GTT(1006)와 매치될 수 있는 상기 불확실한 트랜잭션들의 리스트를 수신할 수 있다(단계 12). 그 다음, 상기 트랜잭션 관리자(1001)는 상기 리소스 관리자(1004)상의 상기 불확실한 트랜잭션들을 커밋/롤백할 수 있다(단계들 14 및 15).
모든 상기 다른 리소스 관리자들(1003-1004)이 복구되면(단계들 9 및 15), 상기 트랜잭션 관리자(1001)는 준비된 트랜잭션들의 상기 리스트의 모든 트랜잭션들을 상기 결정기 리소스 관리자에게 커밋할 수 있다(단계들 16 및 17). 마지막으로, 트랜잭션 관리자(1001)는 상기 GTT(1006) 내의 상기 엔트리들을 제거할 수 있다(단계 18).
실시예에 따르면, 하나 이상의 리소스 관리자들이 상기 트랜잭션의 일부가 아니더라도, 상기 불확실한 트랜잭션들의 리스트로부터의 트랜잭션은 모든 다른 리소스 관리자들(1003-1004)이 복구될 때까지 상기 결정기 리소스 관리자(1002)에게 커밋될 수 없다.
실시예에 따르면, 상기 트랜잭션 관리자(1001)는 상기 트랜잭션의 상기 참여 리소스들(1002, 1003)에 대한 지식을 가질수 있고, 상기 참여 리소스들(1002, 1003)에 대한 추가 정보는 상기 준비 단계에서 상기 결정기 리소스(1002)를 따라 전달되고 유지될 수 있다. 상기 추가 정보와 함께, 상기 트랜잭션 관리자(1001)는 모든 알려진 리소스 관리자들(1002-1004)이 복구되기를 기다리지 않고, 상기 결정 기 리소스 관리자(1002)로부터 리턴된 불확실한 트랜잭션들의 상기 리스트 내의 상기 트랜잭션들을 커밋할 수 있다. 상기 트랜잭션 관리자(1001)는 상기 트랜잭션의 모든 참여자들, 즉 결정기 리소스 관리자(1002) 및 리소스 관리자 1003)가, 복구될 때까지 기다릴 필요성이 있을 수 있다. 게다가, 상기 트랜잭션한 중간-티어 시스템(1000)의 클린 셧다운 또는 재시작 중에, 스타트업 중에 불필요한 복구 및 처리를 피할 수 있는 방식으로, 상기 구성이 제거되거나 표시될 수 있다.
멀티테넌트 환경에서 TLOG를 사용하지 않고 트랜잭션 복구
도 11은 실시예에 따르면, 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 로그(TLOG)를 사용하지 않고 글로벌 트랜잭션을 복구하는 도시를 보여준다.
실시예에 따르면, 복수의 파티션들이 관리 서버/클러스터(242), 또는 CDB(243)에 대한 액세스를 제공할 수 있고 웹 티어(244)을 통해 액세스가능한 유사한 환경 내에서 실행될 수 있다. 이것은 예를 들어, 도메인 또는 파티션이 하나 이상의 상기 PDB들(상기 CDB의)과 관련되도록 한다.
실시예에 따르면, 이 예에서 파티션 A(250) 및 파티션 B(260)의 각각의 상기 복수의 파티션들은, 해당 파티션과 관련된 복수의 리소스들 및 리소스 관리자들을 포함하여 구성될 수 있다. 예를 들어, 파티션 A는 어플리케이션(1121), 리소스 관리자들(1122), 및 파티션 구성된 결정기 리소스 관리자 A(1123)를 포함하는 리소스 그룹(1120)을 포함하여 구성될 수 있고, 상기 파티션은 가상 타겟 A(258)를 통해 액세스가능하다. 유사하게, 파티션 B(260)는 어플리케이션(1131), 리소스 관리자들 (1132), 및 파티션 구성된 결정기 리소스 관리자 B(1133)를 포함하는 리소스 그룹 (1130)을 포함하여 구성될 수 있고, 상기 파티션은 가상 타겟 A(258)를 통해 액세스가능하다. 상기 관리 서버는 도면에 TM(1110' 및 1110")으로 도시된 바와 같이 각 파티션으로 인스턴스화될 수 있는 트랜잭션 관리자(1110)를 추가로 포함할 수 있다.
실시예에 따르면, 도 11에 묘사된 상기 시스템은 상술한 바와 같이 상기 엄격한 순서화를 사용하여 두 단계 커밋 트랜잭션을 실행할 수 있다. 예를 들어, 인스턴스화된 트랜잭션 관리자(1110')는 파티션 A(250)의 상기 컨텍스트에서 실행중인 어플리케이션과 관련된 리소스들에 대한 준비 호출들을 발행할 수 있다. 리소스 관리자, 리소스 관리자(1123)는 상기 트랜잭션에 대한 상기 결정기 리소스 관리자로서(예컨대, 런타임에서 또는 구성 파일을 통해) 상기 파티션에 의해 지정될 수 있다. 상기 지정은 상기 결정기 리소스 관리자가 파티션-특정 결정기 리소스 관리자이고, 다른 파티션으로부터 액세스가능하지 않음을 표시할 수 있다. 상기 결정기 리소스로서, 상기 리소스 관리자(RM)(1123)의 상기 지정은, 상기 트랜잭션 머신 환경에 대한 상기 구성내에 유지될 수 있다.
본 발명의 실시예에 따르면, 상기 트랜잭션 관리자(1110')는 상기 결정기 리소스, 예컨대, 결정기 리소스 관리자(1123)가 마지막으로 준비됨을 보장할 수 있고, 모든 리소스 관리자들이 상기 준비 후에 okay 투표를 리턴하면, 상기 트랜잭션 관리자는 두-단계 커밋 트랜잭션에 대해, 상기 결정기 리소스 관리자(1123)가 모든 참여 리소스 관리자들 중에서 마지막으로 커밋됨을 또한 보장할 수 있다.
실시예에 따르면, 상기 결정기 리소스 관리자가 파티션 특정이기 때문에, 파티션 내의 트랜잭션이 실패하는 경우, 상기 시스템은 다른 파티션들과 관련된 다른 트랜잭션들을 여전히 실행할 수 있게 한다(결정기 리소스 관리자가 다른 파티션의 상기 결정기 리소스 관리자와 동일하더라도). 각각의 결정기 리소스 관리자는 특정 파티션과 관련되기 때문에, 상기 시스템은 여전히 동일한 리소스를 사용하는 두 개의 파티션을 가질수 있으며, 상기 시스템은 다른 파티션을 실행하게 하지 않는 동안 여전히 하나의 파티션을 실행하게 할 수 있다. 즉, 상기 파티션 특정 결정기 리소스로 인하여, 하나의 파티션에서 실패한 트랜잭션이 반드시 트랜잭션을 실행하는 다른 파티션에 영향을 미칠수 있는 것은 아니다.
실시예에 따르면, 상기 파티션들과 관련된 상기 결정기 리소스 관리자들은 파티션 특정일 수 있다. 이 때문에, 그리고 리소스가 파티션 특정일 수 있다는 사실 때문에, 파티션 레벨에서 결정기 리소스들의 구성을 지원할 수 있다. 파티션-특정 리소스들은 그들의 파티션 이름을 상기 리소스이름에 이을 수 있으므로, 리소스 등록들이 중복되거나 오버라이드하는데 문제가 없다. 상기 동일한 리소스 그룹 템플릿을 사용하는 파티션들의 경우 보유할 수 있다. - 상기 리소스이름들은 고유할 수 있고 따라서 상기 결정기 사양들은 상기 파티션에 고유하게 남는다. 예를 들어, 파티션 A는 리소스 리소스 A를 포함하는, 파티션 B로서 상기 동일한 리소스 그룹 템플릿을 가질 수 있다. 그러나, 이러한 상황들에서, 파티션 A는 리소스 A를 결정기 리소스로 구성할 수 있다. 내부적으로 리소스이름들이 예를 들어, resourceA_partitionA 및 resourceA_partitionB와 같이 다르기때문이다.
도 12는 실시예에 따르면, 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 로그(TLOG)를 사용하지 않고 트랜잭션을 복구하는 도시를 보여준다. 도 12에 도시된 바와 같이, 실시예에 따르면, 복수의 파티션들이 관리 서버/클러스터(242), 또는 CDB(243)에 대한 액세스를 제공할 수 있고 웹 티어(244)을 통해 액세스가능한 유사한 환경 내에서 실행될 수 있다. 이것은 예를 들어, 도메인 또는 파티션이 하나 이상의 상기 PDB들(상기 CDB의)과 관련되도록 한다.
실시예에 따르면, 이 예에서 파티션 A(250) 및 파티션 B(260)의 각각의 상기 복수의 파티션들은, 해당 파티션과 관련된 복수의 리소스들 및 리소스 관리자들을 포함하여 구성될 수 있다. 상기 관리 서버는 도면에 TM(1210')으로 도시된 바와 같이 각 파티션으로 인스턴스화될 수 있는 트랜잭션 관리자(1210)를 추가적으로 포함할 수 있다. 파티션 A(250)는 파티션 A(1204)에 대한 리소스 관리자(참여자)(1203) 및 결정기 리소스 관리자를 포함할 수 있다.
실시예에 따르면, 2PC 트랜잭션은 예를 들어 리소스 관리자들(RM)(1203-1204)과 같은 복수의 리소스 관리자들인 파티션(예컨대, TM(1210'))에서 인스턴스화된 트랜잭션 관리자(TM)(1210)를 포함하는 멀티테넌트 환경에서 지원될 수 있다. 도 12에서는 단순화를 위해 상기 트랜잭션 복구에 참여하는 두 리소스 관리자들만 보여준다. 참여 및 비-참여 모두의, 다수의 리소스 관리자들이 또한 상기 시스템에 포함될 수 있다는 것을 인식해야한다.
상기 트랜잭션이 실패 후와 같이 복구될 필요가 있을 때, 상기 트랜잭션 관리자(1001)는 예컨대, XA_recover() 호출을 결정기 리소스(1204) 상에 위치시키는 것에 의해(단계 1), 복구를 시도할 수 있다. 상기 트랜잭션 관리자는 상기 결정기 리소스(1204)로부터 불확실한 트랜잭션들(준비되었지만 커밋되지 않은 트랜잭션들)의 리스트를 수신할 수 있다(단계 2). 또한, 상기 트랜잭션 관리자(1001)는 상기 트랜잭션 테이블을 구축/재구축하기 위해 불확실한 트랜잭션들의 상기 리스트를 사용할 수 있다.
실시예에 따르면, 상기 결정기 리소스(1204)가 상기 두-단계 커밋 트랜잭션에서 성공적으로 준비될 때, 불확실한 트랜잭션들의 상기 리스트는 상기 트랜잭션 관리자가 상기 참여 리소스 관리자들(1203)에게 커밋하도록 지시한 중간-티어 대기중인 트랜잭션들과 동일할 수 있다.
그 다음, 상기 트랜잭션 관리자는 예컨대, 상기 참여 리소스 관리자(1203)(단계 3)를 포함하는 모든 상기 다른 리소스 관리자들 상에 XA_recover() 호출을 위치시키는 것에 의해, 복구를 시도할 수 있다.
예를 들어, 상기 트랜잭션 관리자는 상기 참여 리소스 관리자(1203)로부터의 불확실한 트랜잭션들의 리스트를 수신할 수 있다(단계 4). 상기 트랜잭션 관리자는 복구 리스트를 생성하기 위해 상기 리스트 내의 상기 불확실한 트랜잭션을 상기 트랜잭션 테이블과 매치할 수 있다. 그 다음, 상기 트랜잭션 관리자는 상기 복구 리스트에 기초하여 상기 참여 리소스 관리자(1203)를 복구할 수 있고(단계 5), 상기 리소스 관리자(1203)은 성공을 리턴할 수 있다(단계 6). 예를 들어, 상기 트랜잭션 관리자는 상기 트랜잭션 테이블과 매치되는 상기 불확실한 트랜잭션들을 커밋할 수 있고, 상기 트랜잭션 테이블과 매치되지 않는 상기 불확실한 트랜잭션들을 롤백할 수 있다.
모든 상기 다른 리소스 관리자들(1203)이 복구되면, 상기 트랜잭션 관리자는 준비된 트랜잭션들의 상기 리스트의 모든 트랜잭션들을 성공을 리턴할 수 있는 상기 결정기 리소스 관리자에게 커밋할 수 있다(단계 8).
실시예에 따르면, 하나 이상의 리소스 관리자들이 상기 트랜잭션의 일부가 아니더라도, 불확실한 트랜잭션들의 상기 리스트로부터의 트랜잭션은 모든 다른 리소스 관리자들이 복구될 때까지 상기 결정기 리소스 관리자(1204)에게 커밋될 수 없다.
도 13은 실시예에 따르면, 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구의 예시적인 흐름도이다. 도 13에 도시된 바와 같이, 단계 1310에서, 상기 방법은, 하나 이상의 컴퓨터들에서 실행되는 어플리케이션 서버 환경을 포함하는 하나 이상의 컴퓨터들에서, 상기 어플리케이션 서버 환경 내에서 사용될 수 있는 복수의 배포가능한 리소스들, 도메인 내에서 배포가능한 리소스들의 그룹핑들을 정의하는 하나 이상의 리소스 그룹 템플릿들, 및 하나 이상의 파티션들을 제공할 수 있으며, 각 파티션은 테넌트와 관련될 수 있는 상기 도메인의 관리 및 런타임 서브디비전을 제공한다.
단계 1320에서, 상기 방법은 상술한 바와 같이 상기 어플리케이션 서버 환경 내에서 트랜잭션 관리자를 동작시킬수 있다.
단계 1330에서, 상기 방법은 결정기 리소스 관리자를 상기 하나 이상의 파티션들 중 하나와 관련시킬수 있다. 또한, 상기 결정기 리소스 관리자는 트랜잭션에서 사용될 수 있다.
단계 1340에서, 상기 방법은 복수의 리소스 관리자들을 제공할 수 있으며, 상기 복수의 리소스 관리자들은 또한 상기 트랜잭션에서 사용된다.
단계 1350에서, 상기 트랜잭션 관리자는 상기 복수의 리소스 관리자들 상에 성공적인 준비 액션들의 승인을 수신한 후에만 상기 결정기 리소스 관리자에게 준비 메시지를 송신하는 것에 의해, 그리고 상기 복수의 리소스 관리자들 상에 성공적인 커밋 액션들의 승인을 수신한 후에만 상기 결정기 리소스 관리자에게 커밋 메시지를 송신하는 것에 의해 트랜잭션을 처리할 수 있다.
만약 실패하면, 단계 1360에서, 상기 방법은 상기 복수의 리소스 관리자들 및 상기 결정기 리소스 관리자 각각으로부터 불확실한 트랜잭션들의 리스트를 검색할 수 있고, 그 다음 트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구할 수 있다.
본 발명은 본 발명의 상기 교시들에 따라 프로그램된 하나 이상의 프로세서들, 메모리 및/또는 컴퓨터 판독가능 저장 매체들을 포함하여 하나 이상의 종래의 범용 또는 특수용 디지털 컴퓨터, 컴퓨팅 디바이스, 머신 또는 마이크로프로세서를 사용하여 편리하게 구현될 수 있다. 적절한 소프트웨어 코딩이 소프트웨어 분야의 숙련자들에게 분명할 바와 같이 본 발명의 상기 교시들에 기초하여 숙련된 프로그래머들에 의해 쉽게 준비될 수 있다.
일부 실시예들에 따라, 본 발명은 컴퓨터 프로그램 제품을 포함하는바, 상기 컴퓨터 프로그램 제품은 명령어들이 저장된/본 발명의 상기 프로세스들 중 어느 것을 수행하도록 컴퓨터를 프로그래밍하기 위해 사용될 수 있는 저장 매체 또는 컴퓨터 판독가능 매체(매체들)이다. 저장 매체는 이들로만 한정되는 것은 아니지만, 플로피 디스크(disk)들, 광학 디스크(disc)들, DVD, CD-ROM들, 마이크로드라이브 및 자기-광학 디스크(disk)들을 포함하는 어떤 타입의 디스크, ROM들, RAM들, EPROM들, EEPROM들, DRAM들, VRAM들, 플래시 메모리 디바이스들, 자기 또는 광학 카드들, 나노시스템들(분자 메모리 IC들을 포함하는) 또는, 명령어들 및/또는 데이터를 저장하기에 적절한 어떤 타입의 매체 또는 디바이스를 포함할 수 있다.
본 발명의 상기 설명은 예시 및 설명을 목적으로 제공되었다. 본 설명은 완전한 것(exhaustive)으로 의도되거나 정확히 개시된 형태들로만 본 발명을 제한하고자 의도된 것이 아니다. 많은 수정들 및 변형들이 이 기술분야의 숙련자에게 분명할 것이다. 위 실시예들은 본 발명의 원리 및 이의 실용적 응용을 가장 잘 설명하기 위해 선택 및 기술되었으며, 그럼으로써 이 기술분야의 숙련자들은 본 발명에 대한 다양한 실시예들 및 고려되는 특별한 사용에 적합한 다양한 수정들을 이해할 수 있다. 본 발명의 범위는 다음의 특허 청구 범위 및 이의 균등물에 의해 한정되어야 함이 의도된다.

Claims (22)

  1. 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템으로서,
    하나 이상의 컴퓨터들을 포함하며, 상기 하나 이상의 컴퓨터들은:
    상기 하나 이상의 컴퓨터들에서 실행되는 어플리케이션 서버 환경, 상기 어플리케이션 서버 환경은:
    상기 어플리케이션 서버 환경 내에서 사용될 수 있는 복수의 배포가능한 리소스들,
    도메인 내에서 배포가능한 리소스들의 그룹핑(grouping)들을 정의하는 하나 이상의 리소스 그룹 템플릿들, 및
    하나 이상의 파티션들을 포함하며, 각 파티션은 테넌트와 관련될 수 있는 상기 도메인의 관리(administrative) 및 런타임 서브디비전을 제공하며;
    상기 어플리케이션 서버 환경에서 동작하는 트랜잭션 관리자;
    복수의 리소스 관리자들, 상기 복수의 리소스 관리자들은 트랜잭션에서 사용되며; 및
    결정기 리소스 관리자(determiner resource manager)를 포함하며, 상기 결정기 리소스 관리자는 상기 하나 이상의 파티션들 중 하나와 관련되며, 상기 결정기 리소스 관리자는 상기 트랜잭션에서 사용되며;
    상기 트랜잭션 관리자는:
    상기 복수의 리소스 관리자들 상에 성공적인 준비 액션들의 승인(acknowledgement)을 수신한 후에만 상기 결정기 리소스 관리자에게 준비 메시지를 송신하는 것,
    상기 복수의 리소스 관리자들 상에 성공적인 커밋(commit) 액션들의 승인을 수신한 후에만 상기 결정기 리소스 관리자에게 커밋 메시지를 송신하는 것에 의해; 그리고
    실패시,
    상기 복수의 리소스 관리자들 및 상기 결정기 리소스 관리자 각각으로부터 불확실한(in-doubt) 트랜잭션들의 리스트를 검색하는 것, 및
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것에 의해 상기 트랜잭션을 처리하도록 구성되는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템.
  2. 청구항 1에 있어서,
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것은
    상기 복수의 리소스 관리자들 각각으로부터 검색된 불확실한 트랜잭션들의 상기 리스트와 상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트와 비교하는 것을 포함하는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템.
  3. 청구항 2에 있어서,
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것은
    상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트에는 나타나지 않지만 상기 복수의 리소스 관리자들 각각으로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나는 하나 이상의 불확실한 트랜잭션들을 롤백(rolling back)하는 것을 더 포함하는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템.
  4. 청구항 2 또는 3에 있어서,
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것은
    상기 복수의 리소스 관리자들 각각으로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나고 또한 상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나는 하나 이상의 불확실한 트랜잭션들을 커밋하는 것을 더 포함하는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템.
  5. 선행하는 청구항 중 어느 한 항에 있어서,
    리소스 관리자는 상기 하나 이상의 파티션들의 상기 하나 파티션에 의해 상기 결정기 리소스 관리자로서 지정되는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템.
  6. 청구항 5에 있어서, 상기 트랜잭션 관리자는 상기 결정기 리소스 관리자의 상기 지정을 구성파일에 유지하는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템.
  7. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 실패시, 상기 시스템은 상기 복수의 리소스 관리자들 내의 모든 다른 리소스 관리자들을 복구한 후에 상기 결정기 리소스 관리자로부터 검색되는 상기 불확실한 트랜잭션들의 상기 리스트에 나타나는 트랜잭션들을 커밋하도록 구성되는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템.
  8. 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 방법으로서,
    하나 이상의 컴퓨터들에서, 상기 하나 이상의 컴퓨터들에서 실행되는 어플리케이션 서버 환경을 포함하는 것을 제공하는 단계, 상기 어플리케이션 서버 환경은:
    상기 어플리케이션 서버 환경 내에서 사용될 수 있는 복수의 배포가능한 리소스들,
    도메인 내에서 배포가능한 리소스들의 그룹핑들을 정의하는 하나 이상의 리소스 그룹 템플릿들, 및
    하나 이상의 파티션들을 포함하며, 각 파티션은 테넌트와 관련될 수 있는 상기 도메인의 관리 및 런타임 서브디비전을 제공하며;
    상기 어플리케이션 서버 환경 내에서 트랜잭션 관리자를 동작하는 단계;
    복수의 리소스 관리자들을 제공하는 단계, 상기 복수의 리소스 관리자들은 트랜잭션에서 사용되며; 및
    결정기 리소스 관리자를 상기 하나 이상의 파티션들 중 하나와 관련시키는 단계를 포함하며, 상기 결정기 리소스 관리자는 상기 트랜잭션에서 사용되며;
    상기 트랜잭션 관리자는:
    상기 복수의 리소스 관리자들 상에 성공적인 준비 액션들의 승인을 수신한 후에만 상기 결정기 리소스 관리자에게 준비 메시지를 송신하는 것,
    상기 복수의 리소스 관리자들 상에 성공적인 커밋 액션들의 승인을 수신한 후에만 상기 결정기 리소스 관리자에게 커밋 메시지를 송신하는 것에 의해; 그리고
    실패시,
    상기 복수의 리소스 관리자들 및 상기 결정기 리소스 관리자 각각으로부터 불확실한 트랜잭션들의 리스트를 검색하는 것, 및
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것에 의해 상기 트랜잭션을 처리하도록 구성되는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 방법.
  9. 청구항 8에 있어서,
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것은
    상기 복수의 리소스 관리자들 각각으로부터 검색된 불확실한 트랜잭션들의 상기 리스트와 상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트와 비교하는 것을 포함하는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 방법.
  10. 청구항 9에 있어서,
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것은
    상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트에는 나타나지 않지만 상기 복수의 리소스 관리자들 각각으로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나는 하나 이상의 불확실한 트랜잭션들을 롤백하는 것을 더 포함하는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 방법.
  11. 청구항 9 또는 10에 있어서,
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것은
    상기 복수의 리소스 관리자들 각각으로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나고 또한 상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나는 하나 이상의 불확실한 트랜잭션들을 커밋하는 것을 더 포함하는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 방법.
  12. 청구항 8 내지 11 중 어느 한 항에 있어서,
    리소스 관리자는 상기 하나 이상의 파티션들의 상기 하나 파티션에 의해 상기 결정기 리소스 관리자로서 지정되는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 방법.
  13. 청구항 12에 있어서,
    상기 트랜잭션 관리자는 상기 결정기 리소스 관리자의 상기 지정을 구성파일에 유지하는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 방법.
  14. 청구항 8 내지 13 중 어느 한 항에 있어서,
    상기 실패시, 상기 복수의 리소스 관리자들 내의 모든 다른 리소스 관리자들을 복구한 후에 상기 결정기 리소스 관리자로부터 검색되는 상기 불확실한 트랜잭션들의 상기 리스트에 나타나는 트랜잭션들을 커밋하는 것을 더 포함하는 것을 특징으로 하는 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 방법.
  15. 하나 이상의 컴퓨터 시스템들 상에서 실행하기 위한 프로그램 명령어들을 포함하는 컴퓨터 프로그램으로서, 언급된 프로그램 명령들이 실행될 때 상기 하나 이상의 컴퓨터 시스템들이 청구항 8 내지 14 중 어느 한 항의 상기 방법을 수행하게 하는 컴퓨터 프로그램.
  16. 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 저장된 명령어들을 포함하는 비-일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어들은 하나 이상의 컴퓨터들에 의해 판독되고 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 단계들을 수행하게 하며, 상기 단계는:
    하나 이상의 컴퓨터들에서, 상기 하나 이상의 컴퓨터들에서 실행되는 어플리케이션 서버 환경을 포함하는 것을 제공하는 단계, 상기 어플리케이션 서버 환경은:
    상기 어플리케이션 서버 환경 내에서 사용될 수 있는 복수의 배포가능한 리소스들,
    도메인 내에서 배포가능한 리소스들의 그룹핑들을 정의하는 하나 이상의 리소스 그룹 템플릿들, 및
    하나 이상의 파티션들을 포함하며, 각 파티션은 테넌트와 관련될 수 있는 상기 도메인의 관리 및 런타임 서브디비전을 제공하며;
    상기 어플리케이션 서버 환경 내에서 트랜잭션 관리자를 동작하는 단계;
    복수의 리소스 관리자들을 제공하는 단계, 상기 복수의 리소스 관리자들은 트랜잭션에서 사용되며; 및
    결정기 리소스 관리자를 상기 하나 이상의 파티션들 중 하나와 관련시키는 단계를 포함하며, 상기 결정기 리소스 관리자는 상기 트랜잭션에서 사용되며;
    상기 트랜잭션 관리자는:
    상기 복수의 리소스 관리자들 상에 성공적인 준비 액션들의 승인을 수신한 후에만 상기 결정기 리소스 관리자에게 준비 메시지를 송신하는 것,
    상기 복수의 리소스 관리자들 상에 성공적인 커밋 액션들의 승인을 수신한 후에만 상기 결정기 리소스 관리자에게 커밋 메시지를 송신하는 것에 의해; 그리고
    실패시,
    상기 복수의 리소스 관리자들 및 상기 결정기 리소스 관리자 각각으로부터 불확실한 트랜잭션들의 리스트를 검색하는 것, 및
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것에 의해 상기 트랜잭션을 처리하도록 구성되는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  17. 청구항 16에 있어서,
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것은
    상기 복수의 리소스 관리자들 각각으로부터 검색된 불확실한 트랜잭션들의 상기 리스트와 상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트와 비교하는 것을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  18. 청구항 17에 있어서,
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것은
    상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트에는 나타나지 않지만 상기 복수의 리소스 관리자들 각각으로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나는 하나 이상의 불확실한 트랜잭션들을 롤백하는 것을 더 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  19. 청구항 17 또는 18에 있어서,
    트랜잭션 로그를 사용하지 않고 모든 불확실한 트랜잭션들을 복구하는 것은
    상기 복수의 리소스 관리자들 각각으로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나고 또한 상기 결정기 리소스 관리자로부터 검색된 불확실한 트랜잭션들의 상기 리스트에 나타나는 하나 이상의 불확실한 트랜잭션들을 커밋하는 것을 더 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  20. 청구항 16 내지 19 중 어느 한 항에 있어서,
    리소스 관리자는 상기 하나 이상의 파티션들의 상기 하나 파티션에 의해 상기 결정기 리소스 관리자로서 지정되는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  21. 청구항 20에 있어서, 상기 트랜잭션 관리자는 상기 결정기 리소스 관리자의 상기 지정을 구성파일에 유지하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  22. 컴퓨터 프로그램 제품으로서, 비-일시적 머신 판독가능 데이터 저장 매체에 저장된 청구항 15의 상기 컴퓨터 프로그램을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
KR1020177009554A 2014-09-26 2015-09-25 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법 KR102437664B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462055858P 2014-09-26 2014-09-26
US62/055,858 2014-09-26
PCT/US2015/052471 WO2016049584A1 (en) 2014-09-26 2015-09-25 System and method for transaction recovery in a multitenant application server environment

Publications (2)

Publication Number Publication Date
KR20170060036A true KR20170060036A (ko) 2017-05-31
KR102437664B1 KR102437664B1 (ko) 2022-08-29

Family

ID=54293366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177009554A KR102437664B1 (ko) 2014-09-26 2015-09-25 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법

Country Status (6)

Country Link
US (2) US11188427B2 (ko)
EP (1) EP3198426B1 (ko)
JP (1) JP6564026B2 (ko)
KR (1) KR102437664B1 (ko)
CN (1) CN107077382B (ko)
WO (1) WO2016049584A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102518268B1 (ko) * 2022-04-13 2023-04-05 주식회사 비투엔 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10187454B2 (en) 2014-01-21 2019-01-22 Oracle International Corporation System and method for dynamic clustered JMS in an application server environment
US10476938B2 (en) 2014-01-21 2019-11-12 Oracle International Corporation System and method for multitenancy store in a multitenant application server environment
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
US10103946B2 (en) 2014-01-21 2018-10-16 Oracle International Corporation System and method for JMS integration in a multitenant application server environment
US10474998B2 (en) 2014-01-21 2019-11-12 Oracle International Corporation System and method for messaging in a multitenant application server environment
US10873627B2 (en) 2014-06-23 2020-12-22 Oracle International Corporation System and method for supporting use of an in-memory data grid with a multitenant application server environment
US10027550B2 (en) 2014-06-23 2018-07-17 Oracle International Corporation System and method for multitenant-aware console for use in a multitenant application server environment
US10469401B2 (en) 2014-09-25 2019-11-05 Oracle International Corporation System and method for supporting lifecycle plugins in a multitenant application server environment
US10348565B2 (en) 2014-09-25 2019-07-09 Oracle International Corporation System and method for rule-based elasticity in a multitenant application server environment
US9747137B2 (en) 2014-09-25 2017-08-29 Oracle International Corporation System and method for providing a partition file system in a multitenant application server environment
US10382537B2 (en) 2014-09-25 2019-08-13 Oracle International Corporation System and method for use of a global runtime in a multitenant application server environment
US11057272B2 (en) 2014-09-26 2021-07-06 Oracle International Corporation System and method for transactions in a multitenant application server environment
US10050903B2 (en) 2014-09-26 2018-08-14 Oracle International Corporation System and method for multi-tenancy enablement of enterprise JAVA (TM) applications using resource proxies and application tenancy context
US10091135B2 (en) 2014-09-26 2018-10-02 Oracle International Corporation System and method for multi-tenancy enablement of enterprise java applications using resource proxies and application tenancy context
WO2016049584A1 (en) * 2014-09-26 2016-03-31 Oracle International Corporation System and method for transaction recovery in a multitenant application server environment
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
JP6780316B2 (ja) * 2016-06-23 2020-11-04 株式会社リコー 情報処理装置、プログラム、Webアプリケーション管理方法及び情報処理システム
JP6189488B1 (ja) * 2016-06-27 2017-08-30 株式会社東芝 データベース管理装置、データベース管理方法、およびデータベース管理プログラム
US10592353B2 (en) * 2017-06-27 2020-03-17 Salesforce.Com, Inc. Systems and methods of restoring a dataset of a database for a point in time
US11075799B2 (en) 2017-08-24 2021-07-27 Oracle International Corporation System and method for provisioning in a multi-tenant application server environment
CN108279986B (zh) * 2017-12-29 2023-10-03 亿阳安全技术有限公司 一种分布式事务处理方法及装置
US10917458B2 (en) * 2018-11-12 2021-02-09 Pivotal Software, Inc. Message broker configuration
CN110489392B (zh) * 2019-08-22 2022-03-29 中国工商银行股份有限公司 多租户间的数据访问方法、装置、系统、存储介质及设备
US11409618B2 (en) 2020-09-14 2022-08-09 International Business Machines Corporation Transaction recovery
JP7235147B2 (ja) * 2020-10-15 2023-03-08 株式会社リコー 情報処理装置、プログラム、Webアプリケーション管理方法及び情報処理システム
CN114416183A (zh) * 2020-10-28 2022-04-29 武汉软艺信息技术有限公司 基于iOS系统快速还原App状态的方法和装置
KR20220160898A (ko) * 2021-05-28 2022-12-06 삼성에스디에스 주식회사 트랜잭션 처리 방법 및 장치
JP7476999B2 (ja) 2022-02-17 2024-05-01 株式会社リコー 情報処理装置、プログラム、Webアプリケーション管理方法及び情報処理システム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039798A1 (en) * 1999-03-03 2004-02-26 Ultradns, Inc. Domain name resolution system and method
US20120173581A1 (en) * 2010-12-30 2012-07-05 Martin Hartig Strict Tenant Isolation in Multi-Tenant Enabled Systems
US8839426B1 (en) * 2013-08-08 2014-09-16 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
KR20140138670A (ko) * 2012-03-16 2014-12-04 오라클 인터내셔날 코포레이션 2-단계 커미트 호출들의 엄격한 순서화에 근거하여 트랜잭션 복구를 지원하는 시스템들 및 방법들

Family Cites Families (279)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3392236B2 (ja) 1994-11-04 2003-03-31 富士通株式会社 分散トランザクション処理システム
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
WO1996027157A1 (fr) * 1995-02-28 1996-09-06 Ntt Data Communications Systems Corporation Systeme associatif decentralise et traitements de journaux et de reprise dans celui-ci
KR100260380B1 (ko) 1996-01-26 2000-07-01 윤종용 마이크로 프로세서칩의 냉각팬 제어장치 및 그 제어방법
US6041357A (en) 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
US5966706A (en) 1997-02-19 1999-10-12 At&T Corp Local logging in a distributed database management computer system
US6490610B1 (en) 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6615258B1 (en) * 1997-09-26 2003-09-02 Worldcom, Inc. Integrated customer interface for web based data management
US6260068B1 (en) * 1998-06-10 2001-07-10 Compaq Computer Corporation Method and apparatus for migrating resources in a multi-processor computer system
US5983225A (en) * 1998-01-26 1999-11-09 Telenor As Parameterized lock management system and method for conditional conflict serializability of transactions
US6182186B1 (en) 1998-06-30 2001-01-30 Sun Microsystems, Inc. Method and apparatus that utilizes lock states to lock resources
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
US6625601B1 (en) * 1999-01-07 2003-09-23 Compaq Information Technologies Group, L.P. Escrow-locking multithreaded process-pair resource manager dictionary
US6801914B2 (en) 1999-03-15 2004-10-05 Microsoft Corporation Persistent client-server database sessions
US6529921B1 (en) * 1999-06-29 2003-03-04 Microsoft Corporation Dynamic synchronization of tables
US7289964B1 (en) * 1999-08-31 2007-10-30 Accenture Llp System and method for transaction services patterns in a netcentric environment
US7290056B1 (en) * 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
US6732175B1 (en) 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6442552B1 (en) 2000-06-30 2002-08-27 Hewlett-Packard Company Method and apparatus for implementing three tier client asynchronous transparency
US6578041B1 (en) * 2000-06-30 2003-06-10 Microsoft Corporation High speed on-line backup when using logical log operations
US6922792B2 (en) 2000-10-27 2005-07-26 Eternal Systems, Inc. Fault tolerance for computer programs that operate over a communication network
US6671686B2 (en) * 2000-11-02 2003-12-30 Guy Pardon Decentralized, distributed internet data management
US20020087366A1 (en) * 2000-12-30 2002-07-04 Collier Timothy R. Tentative-hold-based protocol for distributed transaction processing
US7539746B2 (en) * 2001-02-01 2009-05-26 Emc Corporation Highly available transaction failure detection and recovery for electronic commerce transactions
US6850938B1 (en) 2001-02-08 2005-02-01 Cisco Technology, Inc. Method and apparatus providing optimistic locking of shared computer resources
US7080119B2 (en) * 2001-07-17 2006-07-18 Bea Systems, Inc. System and method for transaction processing with delegated commit feature
WO2003058375A2 (en) * 2001-10-26 2003-07-17 Zeosoft Corporation Development, management of distributed clients and servers
US7849173B1 (en) 2001-12-31 2010-12-07 Christopher Uhlik System for on-demand access to local area networks
US7949702B2 (en) 2002-01-09 2011-05-24 International Business Machines Corporation Method and apparatus for synchronizing cookies across multiple client machines
US20040015600A1 (en) * 2002-02-21 2004-01-22 Ashutosh Tiwary Workload post-processing and parameterization for a system for performance testing of N-tiered computer systems using recording and playback of workloads
US6963996B2 (en) 2002-04-30 2005-11-08 Intel Corporation Session error recovery
US7631107B2 (en) * 2002-06-11 2009-12-08 Pandya Ashish A Runtime adaptable protocol processor
US7627693B2 (en) 2002-06-11 2009-12-01 Pandya Ashish A IP storage processor and engine therefor using RDMA
US20040002958A1 (en) * 2002-06-26 2004-01-01 Praveen Seshadri System and method for providing notification(s)
US7558883B1 (en) 2002-06-28 2009-07-07 Microsoft Corporation Fast transaction commit
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
WO2004055674A1 (ja) 2002-12-18 2004-07-01 Fujitsu Limited 分散トランザクション処理装置、分散トランザクション処理プログラム、分散トランザクション処理方法および分散トランザクション処理システム
US7072807B2 (en) * 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7281050B2 (en) 2003-04-08 2007-10-09 Sun Microsystems, Inc. Distributed token manager with transactional properties
US7082432B2 (en) * 2003-04-24 2006-07-25 Sun Microsystems, Inc. Specifying transaction manager type at various application levels
US7743083B2 (en) * 2003-04-24 2010-06-22 Oracle America, Inc. Common transaction manager interface for local and global transactions
US7496574B2 (en) * 2003-05-01 2009-02-24 International Business Machines Corporation Managing locks and transactions
US7228455B2 (en) * 2003-05-09 2007-06-05 Oracle International Corporation Transaction branch management to ensure maximum branch completion in the face of failure
US7100076B2 (en) * 2003-05-09 2006-08-29 Hewlett-Packard Development Company, L.P. Minimum latency reinstatement of database transaction locks
US7346905B2 (en) * 2003-06-10 2008-03-18 International Business Machines Corporation Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment
US7739252B2 (en) * 2003-07-14 2010-06-15 Oracle America, Inc. Read/write lock transaction manager freezing
CN100547583C (zh) 2003-08-14 2009-10-07 甲骨文国际公司 数据库的自动和动态提供的方法
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US20070061441A1 (en) * 2003-10-08 2007-03-15 Landis John A Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions
JP2007510198A (ja) * 2003-10-08 2007-04-19 ユニシス コーポレーション ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化
US20070067366A1 (en) * 2003-10-08 2007-03-22 Landis John A Scalable partition memory mapping system
US7260589B2 (en) * 2003-12-04 2007-08-21 International Business Machines Corporation High performance support for XA protocols in a clustered shared database
US7340452B2 (en) 2003-12-16 2008-03-04 Oracle International Corporation Parallel single cursor model on multiple-server configurations
US7168001B2 (en) 2004-02-06 2007-01-23 Hewlett-Packard Development Company, L.P. Transaction processing apparatus and method
US20050186975A1 (en) 2004-02-10 2005-08-25 Yach David P. Apparatus, and associated method, for facilitating initiation of synchronization of database copies connected by way of a radio air interface
US7843906B1 (en) * 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
US7725432B2 (en) * 2004-05-21 2010-05-25 Bea Systems, Inc. Logging last resource system
US8615601B2 (en) 2004-05-21 2013-12-24 Oracle International Corporation Liquid computing
US7433898B1 (en) 2004-06-01 2008-10-07 Sanbolic, Inc. Methods and apparatus for shared storage journaling
US8713295B2 (en) * 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
US7587400B2 (en) 2004-08-12 2009-09-08 Oracle International Corporation Suspending a result set and continuing from a suspended result set for transparent session migration
US9262490B2 (en) * 2004-08-12 2016-02-16 Oracle International Corporation Adaptively routing transactions to servers
US7502824B2 (en) 2004-08-12 2009-03-10 Oracle International Corporation Database shutdown with session migration
US7415470B2 (en) 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session
US7860840B2 (en) * 2004-10-05 2010-12-28 Microsoft Corporation Maintaining correct transaction results when transaction management configurations change
US8055711B2 (en) 2004-10-29 2011-11-08 Emc Corporation Non-blocking commit protocol systems and methods
US9323922B2 (en) 2005-01-06 2016-04-26 Oracle International Corporation Dynamically differentiating service in a database based on a security profile of a user
US8271448B2 (en) * 2005-01-28 2012-09-18 Oracle International Corporation Method for strategizing protocol presumptions in two phase commit coordinator
US7600002B2 (en) * 2005-02-04 2009-10-06 Oracle International Corporation System and method for exposing a J2EE application server as a web service transaction participant
US7376675B2 (en) * 2005-02-18 2008-05-20 International Business Machines Corporation Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events
US7644087B2 (en) * 2005-02-24 2010-01-05 Xeround Systems Ltd. Method and apparatus for data management
US7761435B2 (en) 2005-04-29 2010-07-20 Sap Ag External persistence of session state information
US7853698B2 (en) 2005-04-29 2010-12-14 Sap Ag Internal persistence of session state information
US20070028208A1 (en) * 2005-06-07 2007-02-01 Alec Maki Runtime generative programming method and system
US8145627B2 (en) 2005-06-10 2012-03-27 Hewlett-Packard Development Company, L.P. Use of connectivity analysis to assist rule-based optimizers
US7698309B2 (en) * 2005-08-16 2010-04-13 Oracle International Corporation Advanced fine-grained administration of recovering transactions
US7430559B2 (en) * 2005-09-21 2008-09-30 Microsoft Corporation Generalized idempotent requests
US7860865B2 (en) * 2005-12-19 2010-12-28 Yahoo! Inc. System of a hierarchy of servers for query processing of column chunks in a distributed column chunk data store
US20070143339A1 (en) * 2005-12-20 2007-06-21 Springett John C Architecture for a smart enterprise framework and methods thereof
US8850051B2 (en) * 2006-02-17 2014-09-30 Broadsoft, Inc. Methods, systems, and computer program products for transaction-based internet protocol (IP) telephony call processing
US7640242B2 (en) * 2006-03-24 2009-12-29 Oracle International Corp. Light weight locking model in the database for supporting long duration transactions
US8892509B2 (en) * 2006-03-28 2014-11-18 Oracle America, Inc. Systems and methods for a distributed in-memory database
US9009116B2 (en) * 2006-03-28 2015-04-14 Oracle America, Inc. Systems and methods for synchronizing data in a cache and database
US8117153B2 (en) * 2006-03-28 2012-02-14 Oracle America, Inc. Systems and methods for a distributed cache
US7996837B2 (en) * 2006-05-03 2011-08-09 Oracle International Corporation Recovery mechanism for transactions
US7478099B1 (en) * 2006-06-28 2009-01-13 Emc Corporation Methods and apparatus for collecting database transactions
US7877373B2 (en) 2006-06-30 2011-01-25 Oracle International Corporation Executing alternative plans for a SQL statement
US7860882B2 (en) * 2006-07-08 2010-12-28 International Business Machines Corporation Method and system for distributed retrieval of data objects using tagged artifacts within federated protocol operations
US7860883B2 (en) * 2006-07-08 2010-12-28 International Business Machines Corporation Method and system for distributed retrieval of data objects within multi-protocol profiles in federated environments
US8176022B1 (en) 2006-08-26 2012-05-08 Radames Garcia Locking protocol using dynamic locks and dynamic shared memory
US7634512B2 (en) 2006-10-20 2009-12-15 Oracle International Corporation Migrating temporary data of a session
US7890457B2 (en) 2006-10-20 2011-02-15 Oracle International Corporation Transactionally consistent database workload replay
US8024299B2 (en) 2006-10-20 2011-09-20 Oracle International Corporation Client-driven functionally equivalent database replay
US7984015B2 (en) 2006-10-20 2011-07-19 Oracle International Corporation Database workload capture and replay architecture
US20080098003A1 (en) 2006-10-20 2008-04-24 Oracle International Corporation Database workload replay remapping infrastructure
US7890458B2 (en) 2006-10-20 2011-02-15 Oracle International Corporation Capturing database workload while preserving original transactional and concurrency characteristics for replay
EP2095268A4 (en) 2006-11-20 2011-08-03 Matrikon Inc ONTOLOGICAL DATABASE DRAFT
US7831772B2 (en) * 2006-12-12 2010-11-09 Sybase, Inc. System and methodology providing multiple heterogeneous buffer caches
US7844851B2 (en) * 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
US9667430B2 (en) * 2006-12-13 2017-05-30 Oracle International Corporation System and method for a SIP server with offline charging
US8078737B2 (en) * 2006-12-13 2011-12-13 Oracle International Corporation System and method for efficient storage of long-lived session state in a SIP server
WO2008097801A2 (en) * 2007-02-05 2008-08-14 Skyway Software, Inc. Method and system for creating, deploying, and utilizing a service
US8082344B2 (en) * 2007-02-12 2011-12-20 Microsoft Corporation Transaction manager virtualization
US8768890B2 (en) 2007-03-14 2014-07-01 Microsoft Corporation Delaying database writes for database consistency
US8127175B2 (en) * 2007-03-19 2012-02-28 Oracle International Corporation High availability of JCA inflowed transactions
US20080250074A1 (en) * 2007-04-04 2008-10-09 Oracle International Corporation Recoverable last resource commit
US8326816B2 (en) 2010-05-06 2012-12-04 Oracle International Corporation Fine grain synchronization for database replay
US8682916B2 (en) * 2007-05-25 2014-03-25 F5 Networks, Inc. Remote file virtualization in a switched file system
US20090007097A1 (en) * 2007-06-29 2009-01-01 Hinton Heather M Product install and configuration providing choice of new installation and re-use of existing installation
US7895475B2 (en) * 2007-07-11 2011-02-22 Oracle International Corporation System and method for providing an instrumentation service using dye injection and filtering in a SIP application server environment
US20090037492A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal Framework for Synchronizing Applications
US20090037452A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal System and Method for Synchronizing Applications
US7730091B2 (en) * 2007-08-31 2010-06-01 International Business Machines Corporation Systems, methods and computer products for database cluster modeling
US7904434B2 (en) * 2007-09-14 2011-03-08 Oracle International Corporation Framework for handling business transactions
US8819676B2 (en) 2007-10-30 2014-08-26 Vmware, Inc. Transparent memory-mapped emulation of I/O calls
US8424078B2 (en) * 2007-11-06 2013-04-16 International Business Machines Corporation Methodology for secure application partitioning enablement
US7970737B2 (en) * 2008-01-11 2011-06-28 Oracle International Corporation Recovery administration of global transaction participants
US8073962B2 (en) * 2008-03-03 2011-12-06 Oracle International Corporation Queued transaction processing
US8266099B2 (en) * 2008-05-29 2012-09-11 Vmware, Inc. Offloading storage operations to storage hardware using a third party server
US7882173B2 (en) 2008-06-30 2011-02-01 International Business Machines Corporation Interactive remote command execution over a stateless client/server network protocol
US8433680B2 (en) 2008-07-01 2013-04-30 Oracle International Corporation Capturing and restoring database session state
CN101639835A (zh) 2008-07-30 2010-02-03 国际商业机器公司 多租户场景中应用数据库分区的方法和装置
US20100030818A1 (en) 2008-07-31 2010-02-04 Yahoo! Inc. System and method for applying once a transaction delivered in a message published asynchronously in a distributed database
US8224850B2 (en) 2008-08-13 2012-07-17 Motorola Mobility, Inc. Method and system for determining users that satisfy desired conditions
US8179912B2 (en) * 2008-09-26 2012-05-15 Oracle International Corporation System and method for providing timer affinity through engine polling within a session-based server deployment
US9723048B2 (en) * 2008-10-29 2017-08-01 Oracle International Corporation System and method for providing timer affinity through notifications within a session-based server deployment
US20100169289A1 (en) * 2008-12-30 2010-07-01 International Business Machines Corporation Two Phase Commit With Grid Elements
US8060857B2 (en) * 2009-01-31 2011-11-15 Ted J. Biggerstaff Automated partitioning of a computation for parallel or other high capability architecture
US8296358B2 (en) 2009-05-14 2012-10-23 Hewlett-Packard Development Company, L.P. Method and system for journaling data updates in a distributed file system
US20100318394A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Executing transactions as an atomic unit
US8195613B2 (en) * 2009-08-06 2012-06-05 Autonomy Corporation Ltd. Transactional archiving of an electronic document
GB2472620B (en) * 2009-08-12 2016-05-18 Cloudtran Inc Distributed transaction processing
WO2011041516A1 (en) 2009-09-30 2011-04-07 Zynga Game Network Inc. Apparatuses, methods and systems for an online game manager
US8527443B2 (en) * 2009-10-08 2013-09-03 Oracle International Corporation Techniques for processing ontologies
US8150808B2 (en) * 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US9165025B2 (en) * 2009-12-11 2015-10-20 International Business Machines Corporation Transaction recovery in a transaction processing computer system employing multiple transaction managers
CN102170457A (zh) 2010-02-26 2011-08-31 国际商业机器公司 向应用的多租户提供服务的方法和装置
EP2363806A1 (en) 2010-03-03 2011-09-07 Software AG Connection handler and method for providing applications with heterogeneous connection objects
US10114678B2 (en) * 2010-03-19 2018-10-30 Micro Focus Software Inc. Techniques for managing service definitions in an intelligent workload management system
JP5464003B2 (ja) * 2010-03-26 2014-04-09 富士通株式会社 データベース管理装置およびデータベース管理プログラム
US8584124B2 (en) 2010-04-20 2013-11-12 Salesforce.Com, Inc. Methods and systems for batch processing in an on-demand service environment
US8386431B2 (en) * 2010-06-14 2013-02-26 Sap Ag Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor
US8468151B2 (en) * 2010-06-29 2013-06-18 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries based on multiple hardware accelerators
US8775626B2 (en) 2010-09-17 2014-07-08 Microsoft Corporation Using templates to configure cloud resources
KR20120045586A (ko) 2010-10-29 2012-05-09 한국전자통신연구원 다중 테넌트용 SaaS 애플리케이션 설정 장치 및 방법
US8442962B2 (en) * 2010-12-28 2013-05-14 Sap Ag Distributed transaction management using two-phase commit optimization
US9460176B2 (en) * 2010-12-29 2016-10-04 Sap Se In-memory database for multi-tenancy
US8868514B2 (en) * 2011-01-07 2014-10-21 Microsoft Corporation Transaction support for distributed data
US9389922B2 (en) * 2011-03-11 2016-07-12 International Business Machines Corporation Declarative service domain federation
CN103688259B (zh) * 2011-05-19 2017-11-17 甲骨文国际公司 用于通过压缩和纵列存储进行自动数据放置的方法
CN102346460B (zh) * 2011-05-27 2013-11-13 运软网络科技(上海)有限公司 一种基于事务的服务控制系统及其控制方法
US8539490B2 (en) * 2011-07-21 2013-09-17 Oracle International Corporation System and method for providing dynamic transaction optimizations
US8601473B1 (en) * 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US20130055243A1 (en) * 2011-08-24 2013-02-28 Dell Products, Lp Unified Management Architecture to Support Multiple Platform-as-a-Service Workloads
CN102333115A (zh) 2011-09-01 2012-01-25 杭州湾云计算技术有限公司 一种将已有Web应用转化为SaaS多租户应用的方法和装置
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
US8635152B2 (en) 2011-09-14 2014-01-21 Microsoft Corporation Multi tenancy for single tenancy applications
US8589481B2 (en) 2011-09-14 2013-11-19 Microsoft Corporation Multi tenant access to applications
GB2494867A (en) * 2011-09-19 2013-03-27 Cloudtran Inc Scalable distributed transaction processing method
US20130081109A1 (en) 2011-09-23 2013-03-28 Corent Technology, Inc. Multi-Tenant Agile Database Connector
US10127259B2 (en) * 2011-09-29 2018-11-13 Oracle International Corporation System and method for database persistence of transaction logs
US9275050B2 (en) * 2011-10-24 2016-03-01 Apptio, Inc. Global dictionaries using universal primitives
US9055065B2 (en) * 2011-11-21 2015-06-09 Red Hat, lnc. Managing participant order in distributed transactions
CN102571916B (zh) 2011-12-02 2015-11-04 曙光信息产业(北京)有限公司 一种云存储空间的租赁软件的架构与操作方法
US8914406B1 (en) * 2012-02-01 2014-12-16 Vorstack, Inc. Scalable network security with fast response protocol
CN102609271B (zh) 2012-02-20 2014-09-10 山东大学 一种元数据驱动的SaaS应用的可视化定制方法及系统
CN102571821A (zh) 2012-02-22 2012-07-11 浪潮电子信息产业股份有限公司 一种云安全访问控制模型
US9760584B2 (en) * 2012-03-16 2017-09-12 Oracle International Corporation Systems and methods for supporting inline delegation of middle-tier transaction logs to database
US10133596B2 (en) * 2012-03-16 2018-11-20 Oracle International Corporation System and method for supporting application interoperation in a transactional middleware environment
US9589037B2 (en) * 2012-03-29 2017-03-07 Hewlett Packard Enterprise Development Lp Conceptual services implementation platform
US9325768B2 (en) * 2012-04-27 2016-04-26 Oracle International Corporation System and method for clustered transactional interoperability of multiple messaging providers using a single connector mechanism
CN103455512A (zh) 2012-05-31 2013-12-18 上海博腾信息科技有限公司 Saas平台多租户数据管理模型
US8775397B2 (en) * 2012-06-26 2014-07-08 Sap Ag Database access acceleration
US9838370B2 (en) * 2012-09-07 2017-12-05 Oracle International Corporation Business attribute driven sizing algorithms
US10430391B2 (en) 2012-09-28 2019-10-01 Oracle International Corporation Techniques for activity tracking, data classification, and in database archiving
US8601144B1 (en) 2012-11-27 2013-12-03 Sansay, Inc. Systems and methods for automatic ICE relay candidate creation
US9384229B2 (en) * 2012-11-29 2016-07-05 International Business Machines Corporation Data readiness using initiator region last commit selection
GB2513532A (en) * 2012-12-05 2014-11-05 Ibm Distributed transaction routing
US9904533B2 (en) 2013-03-15 2018-02-27 Oracle International Corporation Circular buffer of software versions
US20140279899A1 (en) * 2013-03-15 2014-09-18 Unisys Corporation Data bus architecture for inter-database data distribution
US9519795B2 (en) * 2013-05-28 2016-12-13 Unisys Corporation Interconnect partition binding API, allocation and management of application-specific partitions
EP2813945A1 (en) 2013-06-14 2014-12-17 Tocario GmbH Method and system for enabling access of a client device to a remote desktop
US9600500B1 (en) * 2013-06-21 2017-03-21 Amazon Technologies, Inc. Single phase transaction commits for distributed database transactions
US9774401B1 (en) * 2013-07-15 2017-09-26 Paul Borrill Entangled links, transactions and trees for distributed computing systems
GB2517932B (en) * 2013-09-04 2021-05-05 1Spatial Group Ltd Modification and validation of spatial data
US9497145B2 (en) * 2013-09-20 2016-11-15 Oracle International Corporation System and method for supporting fault tolerant job management in a cloud platform environment
US10110506B2 (en) * 2013-09-20 2018-10-23 Oracle International Corporation System and method for quota management in a cloud platform environment
US9418364B2 (en) 2013-10-25 2016-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for distributed transactions in a data communication network
US10103946B2 (en) * 2014-01-21 2018-10-16 Oracle International Corporation System and method for JMS integration in a multitenant application server environment
US10348822B2 (en) * 2014-01-21 2019-07-09 Oracle International Corporation System and method for clustering in a multitenant application server environment
US10474998B2 (en) * 2014-01-21 2019-11-12 Oracle International Corporation System and method for messaging in a multitenant application server environment
US9967324B2 (en) * 2014-01-21 2018-05-08 Oracle International Corporation System and method for providing data sources for use in a multitenant application server environment
US10635491B2 (en) * 2014-01-21 2020-04-28 Oracle International Corporation System and method for use of a multi-tenant application server with a multitasking virtual machine
US10476938B2 (en) * 2014-01-21 2019-11-12 Oracle International Corporation System and method for multitenancy store in a multitenant application server environment
US10356161B2 (en) * 2014-01-21 2019-07-16 Oracle International Corporation System and method for classloading in a multitenant application server environment
US9807119B2 (en) * 2014-01-21 2017-10-31 Oracle International Corporation System and method for supporting web services in a multitenant application server environment
US9973384B2 (en) * 2014-01-21 2018-05-15 Oracle International Corporation System and method for enterprise java bean support in a multitenant application server environment
US10187454B2 (en) * 2014-01-21 2019-01-22 Oracle International Corporation System and method for dynamic clustered JMS in an application server environment
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
US9501312B2 (en) * 2014-01-30 2016-11-22 Red Hat, Inc. Using compensation transactions for multiple one-phase commit participants
US9576039B2 (en) * 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
US20160283512A1 (en) * 2014-03-26 2016-09-29 Unisys Corporation Distributed file storage in a continuous computing fabric environment
US9361190B2 (en) 2014-04-24 2016-06-07 International Business Machines Corporation Recovery of a transaction after XA end
US9524186B2 (en) * 2014-04-28 2016-12-20 Oracle International Corporation System and method for supporting common transaction identifier (XID) optimization based on resource manager (RM) instance awareness in a transactional environment
US20150319265A1 (en) * 2014-04-30 2015-11-05 Hewlett-Packard Development Company, L.P. Unique identifier for a transaction
US10594619B2 (en) * 2014-06-23 2020-03-17 Oracle International Corporation System and method for supporting configuration of dynamic clusters in a multitenant application server environment
CN106462466B (zh) * 2014-06-23 2020-07-14 甲骨文国际公司 用于在多租户应用服务器环境中提供工作管理器的系统和方法
US10873627B2 (en) * 2014-06-23 2020-12-22 Oracle International Corporation System and method for supporting use of an in-memory data grid with a multitenant application server environment
WO2015200372A1 (en) * 2014-06-23 2015-12-30 Oracle International Corporation System and method for portable partitions in a multitenant application server environment
US10027550B2 (en) * 2014-06-23 2018-07-17 Oracle International Corporation System and method for multitenant-aware console for use in a multitenant application server environment
KR102399421B1 (ko) * 2014-06-23 2022-05-19 오라클 인터내셔날 코포레이션 멀티테난트 어플리케이션 서버 환경에서의 파티션 마이그레이션을 위한 시스템 및 방법
US10009225B2 (en) * 2014-06-23 2018-06-26 Oracle International Corporation System and method for supporting multiple partition edit sessions in a multitenant application server environment
US9959421B2 (en) * 2014-06-23 2018-05-01 Oracle International Corporation System and method for monitoring and diagnostics in a multitenant application server environment
US10015242B2 (en) * 2014-06-23 2018-07-03 Oracle International Corporation System and method for supporting restful management in a multitenant application server environment
US9697052B2 (en) * 2014-06-23 2017-07-04 Oracle International Corporation System and method for partition templates in a multitenant application server environment
WO2015200379A1 (en) * 2014-06-23 2015-12-30 Oracle International Corporation System and method for supporting security in a multitenant application server environment
US9792099B2 (en) * 2014-06-24 2017-10-17 Oracle International Corporation System and method for supporting deployment in a multitenant application server environment
US11477278B2 (en) * 2014-06-24 2022-10-18 Oracle International Corporation System and method for supporting partitions in a multitenant application server environment
US10284486B2 (en) * 2014-07-10 2019-05-07 Oracle International Corporation System and method for resource isolation and consumption in a multitenant application server environment
KR102449753B1 (ko) * 2014-07-14 2022-09-30 오라클 인터내셔날 코포레이션 멀티 테넌트 어플리케이션 서버 환경에서 네임스페이스들을 지원하기 위한 시스템 및 방법
US10193754B2 (en) * 2014-07-14 2019-01-29 Oracle International Corporation System and method for supporting connectors in a multitenant application server environment
US10084843B2 (en) * 2014-07-14 2018-09-25 Oracle Internatonal Corporation System and method for web container partitions in a multitenant application server environment
WO2016024986A1 (en) 2014-08-15 2016-02-18 Hewlett-Packard Development Company, L.P. Three phase commit for a distributed file system
US9323569B2 (en) * 2014-09-10 2016-04-26 Amazon Technologies, Inc. Scalable log-based transaction management
US10373247B2 (en) * 2014-09-19 2019-08-06 Amazon Technologies, Inc. Lifecycle transitions in log-coordinated data stores
US9799017B1 (en) * 2014-09-19 2017-10-24 Amazon Technologies, Inc. Cross-data-store operations in log-coordinated storage systems
US10025802B2 (en) * 2014-09-19 2018-07-17 Amazon Technologies, Inc. Automated configuration of log-coordinated storage groups
US10007691B2 (en) * 2014-09-24 2018-06-26 Oracle International Corporation Prioritizing repopulation of in-memory compression units
KR102443172B1 (ko) * 2014-09-24 2022-09-14 오라클 인터내셔날 코포레이션 멀티테넌트 어플리케이션 서버 환경에서 패치를 지원하는 시스템 및 방법
US9930129B2 (en) * 2014-09-24 2018-03-27 Oracle International Corporation System and method for java EE and java SE proxy data sources in a multitenant application server environment
US10318280B2 (en) * 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10469401B2 (en) * 2014-09-25 2019-11-05 Oracle International Corporation System and method for supporting lifecycle plugins in a multitenant application server environment
US9747137B2 (en) * 2014-09-25 2017-08-29 Oracle International Corporation System and method for providing a partition file system in a multitenant application server environment
US10084723B2 (en) * 2014-09-25 2018-09-25 Oracle International Corporation System and method for providing an end-to-end lifecycle in a multitenant application server environment
US10348565B2 (en) * 2014-09-25 2019-07-09 Oracle International Corporation System and method for rule-based elasticity in a multitenant application server environment
US10051043B2 (en) * 2014-09-25 2018-08-14 Oracle International Corporation System and method for JMX support in a multitenant application server environment
CN107077383B (zh) * 2014-09-25 2021-05-11 甲骨文国际公司 用于在多租户应用服务器环境中确定分区标识符的系统和方法
US10382537B2 (en) * 2014-09-25 2019-08-13 Oracle International Corporation System and method for use of a global runtime in a multitenant application server environment
US10050903B2 (en) * 2014-09-26 2018-08-14 Oracle International Corporation System and method for multi-tenancy enablement of enterprise JAVA (TM) applications using resource proxies and application tenancy context
US10091135B2 (en) * 2014-09-26 2018-10-02 Oracle International Corporation System and method for multi-tenancy enablement of enterprise java applications using resource proxies and application tenancy context
US11057272B2 (en) * 2014-09-26 2021-07-06 Oracle International Corporation System and method for transactions in a multitenant application server environment
US9626271B2 (en) 2014-09-26 2017-04-18 Oracle International Corporation Multivariate metadata based cloud deployment monitoring for lifecycle operations
US9971671B2 (en) * 2014-09-26 2018-05-15 Oracle International Corporation System and method for dynamic debugging in a multitenant application server environment
WO2016049584A1 (en) * 2014-09-26 2016-03-31 Oracle International Corporation System and method for transaction recovery in a multitenant application server environment
US10523709B2 (en) * 2014-09-26 2019-12-31 Oracle International Corporation System and method for dynamic security configuration in a multitenant application server environment
US9843629B2 (en) * 2014-09-26 2017-12-12 Oracle International Corporation System and method for protocol support in a multitenant application server environment
US10430402B2 (en) * 2015-01-16 2019-10-01 Red Hat, Inc. Distributed transaction with dynamic form
US10225209B2 (en) * 2015-01-21 2019-03-05 Oracle International Corporation System and method for interceptors in a multitenant application server environment
US9977681B2 (en) * 2015-01-21 2018-05-22 Oracle International Corporation System and method for partition startup/shutdown in a multitenant application server environment
US10250512B2 (en) * 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
US10178184B2 (en) * 2015-01-21 2019-01-08 Oracle International Corporation System and method for session handling in a multitenant application server environment
US10185736B2 (en) * 2015-04-27 2019-01-22 Microsoft Technology Licensing, Llc Replicable differential store data structure
US10268743B2 (en) * 2015-06-19 2019-04-23 Sap Se Distributed database transaction protocol
US10503787B2 (en) * 2015-09-30 2019-12-10 Oracle International Corporation Sharing common metadata in multi-tenant environment
US9811386B2 (en) * 2015-10-23 2017-11-07 Oracle International Corporation System and method for multitenant execution of OS programs invoked from a multitenant middleware application
US9819609B2 (en) * 2015-10-23 2017-11-14 Oracle International Corporation System and method for multitenant execution of OS programs invoked from a multitenant middleware application
US10235440B2 (en) * 2015-12-21 2019-03-19 Sap Se Decentralized transaction commit protocol
US10572510B2 (en) * 2015-12-21 2020-02-25 Sap Se Distributed database transaction protocol
US10339127B2 (en) 2016-01-28 2019-07-02 Oracle International Corporation Guaranteed commit outcome in a distributed transaction processing system
US10290050B2 (en) * 2016-02-02 2019-05-14 International Business Machines Corporation Lease-based management for atomic commit protocols
US10165088B2 (en) * 2016-08-02 2018-12-25 International Business Machines Corporation Providing unit of work continuity in the event initiating client fails over
US10009425B1 (en) * 2016-08-05 2018-06-26 Symantec Corporation Synchronization of transactions utilizing multiple distributed cloud-based services
US10452387B2 (en) * 2016-09-16 2019-10-22 Oracle International Corporation System and method for partition-scoped patching in an application server environment
US10310841B2 (en) * 2016-09-16 2019-06-04 Oracle International Corporation System and method for handling lazy deserialization exceptions in an application server environment
US11138017B2 (en) * 2016-09-16 2021-10-05 Oracle International Corporation System and method for partition administrative targeting in an application server environment
US11237814B2 (en) * 2017-08-17 2022-02-01 Oracle International Corporation System and method for supporting custom hooks during patching in an application server environment
US10868721B2 (en) * 2017-08-17 2020-12-15 Oracle International Corporation System and method for supporting a situational configuration in an application server environment
US10715472B2 (en) * 2017-08-22 2020-07-14 Oracle International Corporation System and method for unit-of-order routing
US11070559B2 (en) * 2017-08-23 2021-07-20 Oracle International Corporation System and method for supporting object-based security
US11075799B2 (en) * 2017-08-24 2021-07-27 Oracle International Corporation System and method for provisioning in a multi-tenant application server environment
US10805350B2 (en) * 2018-02-15 2020-10-13 Oracle International Corporation System and method for providing security services using a configuration template in a multi-tenant environment
US11102002B2 (en) * 2018-12-28 2021-08-24 Dell Products, L.P. Trust domain isolation management in secured execution environments
US11544149B2 (en) * 2020-01-07 2023-01-03 Oracle International Corporation System and method for improved fault tolerance in a network cloud environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039798A1 (en) * 1999-03-03 2004-02-26 Ultradns, Inc. Domain name resolution system and method
US20120173581A1 (en) * 2010-12-30 2012-07-05 Martin Hartig Strict Tenant Isolation in Multi-Tenant Enabled Systems
KR20140138670A (ko) * 2012-03-16 2014-12-04 오라클 인터내셔날 코포레이션 2-단계 커미트 호출들의 엄격한 순서화에 근거하여 트랜잭션 복구를 지원하는 시스템들 및 방법들
US8839426B1 (en) * 2013-08-08 2014-09-16 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102518268B1 (ko) * 2022-04-13 2023-04-05 주식회사 비투엔 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법

Also Published As

Publication number Publication date
US20220058095A1 (en) 2022-02-24
CN107077382A (zh) 2017-08-18
US11994959B2 (en) 2024-05-28
CN107077382B (zh) 2021-07-16
WO2016049584A1 (en) 2016-03-31
US20160092319A1 (en) 2016-03-31
JP2017532677A (ja) 2017-11-02
EP3198426A1 (en) 2017-08-02
EP3198426B1 (en) 2023-08-30
US11188427B2 (en) 2021-11-30
KR102437664B1 (ko) 2022-08-29
JP6564026B2 (ja) 2019-08-21

Similar Documents

Publication Publication Date Title
US11994959B2 (en) System and method for transaction recovery in a multitenant application server environment
US11061884B2 (en) Method and system to accelerate transaction commit using non-volatile memory
KR102072726B1 (ko) 데이터베이스로의 미들-티어 트랜잭션 로그들의 인라인 위임을 지원하는 시스템들 및 방법들
US9146944B2 (en) Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls
KR102399421B1 (ko) 멀티테난트 어플리케이션 서버 환경에서의 파티션 마이그레이션을 위한 시스템 및 방법
US11057272B2 (en) System and method for transactions in a multitenant application server environment
CN103116596B (zh) 在分布式数据库中执行快照隔离的系统和方法
US11132350B2 (en) Replicable differential store data structure
US11599514B1 (en) Transactional version sets
US20210073198A1 (en) Using persistent memory and remote direct memory access to reduce write latency for database logging
EP3593243B1 (en) Replicating storage tables used to manage cloud-based resources to withstand storage account outage
US11709809B1 (en) Tree-based approach for transactionally consistent version sets
US10740320B2 (en) Systems and methods of operation lock management and system catalog overrides in database systems
US10970177B2 (en) Methods and systems of managing consistency and availability tradeoffs in a real-time operational DBMS
US11886422B1 (en) Transactional protocol for snapshot isolation without synchronized clocks
US11544180B2 (en) In-memory database page allocation

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant