X/Open XA

X/Open XA

컴퓨팅에서의 트랜잭션 처리의 경우 X/Open XA 표준("eXtended Architecture"의 줄임말)은 분산 트랜잭션 처리(DTP)를 위해 X[1]/Open에서 1991년에 발표한 규격입니다.

목표들

XA의 목표는 이기종 컴포넌트 간에 실행되는 "글로벌 트랜잭션"에서 원자성을 보장하는 것입니다.거래는 한 사람으로부터 다른 사람에게 돈을 송금하는 것과 같은 일의 단위이다.분산 트랜잭션은 여러 데이터 저장소(데이터베이스, 애플리케이션 서버, 메시지 대기열, 트랜잭션 캐시 등)를 업데이트합니다.무결성을 보장하기 위해 XA는 2단계 커밋(2PC)을 사용하여 트랜잭션의 모든 변경 내용이 유효(커밋) 또는 무효(롤백)되도록 합니다.

아키텍처

특히 XA는 글로벌 트랜잭션 매니저와 특정 응용 프로그램 간의 인터페이스를 설명합니다.XA를 사용하려는 응용 프로그램은 라이브러리 또는 별도의 서비스를 사용하여 XA 트랜잭션 관리자를 연결합니다.트랜잭션 매니저는 트랜잭션의 참가자(애플리케이션이 쓰는 다양한 데이터스토어)를 추적하고 그들과 협력하여 2단계 커밋을 수행합니다.즉, XA 트랜잭션 관리자는 응용프로그램과 서버 간의 상호 작용과는 별개입니다.XA는 커밋 또는 롤백 결정에 대한 로그를 유지하며, 이를 사용하여 시스템 장애 [1]시 복구할 수 있습니다.

많은 소프트웨어 벤더가 다양한 관계형 데이터베이스 및 메시지브로커를 [1]포함하여 XA(소프트웨어가 XA 트랜잭션에 참여할 수 있음을 의미)를 지원하고 있습니다.

장점과 단점

XA는 2단계 커밋을 사용하기 때문에 그 프로토콜의 장점과 단점은 일반적으로 XA에 적용됩니다.주요 장점은 XA(2PC 사용)를 통해 여러 이기종 테크놀로지 간에 원자 트랜잭션을 수행할 수 있다는 것입니다(예: 하나의 트랜잭션이 이메일 서버 및 메시지 브로커뿐만 아니라 다른 벤더의 여러 데이터베이스를 포함할 수 있습니다). 반면 기존 데이터베이스 트랜잭션은 단일 데이터베이스로 제한됩니다.

주요 단점은 2PC가 차단 프로토콜이라는 것입니다. 즉, 다른 서버는 트랜잭션 관리자가 각 트랜잭션을 커밋할지 또는 중단할지에 대한 결정을 내릴 때까지 기다려야 합니다.트랜잭션이 최종 결정을 기다리는 동안 트랜잭션 관리자가 오프라인으로 전환되면 트랜잭션 관리자가 다시 온라인 상태가 되어 결정을 내릴 때까지 트랜잭션 관리자가 움직이지 않고 데이터베이스 잠금을 유지합니다.이렇게 잠금을 연장하면 동일한 데이터베이스를 [1]사용하는 다른 응용프로그램이 중단될 수 있습니다.

게다가 트랜잭션 매니저가 크래쉬 해, 그 결정의 기록을 회복할 수 없는 경우(예를 들면, 결정이 기록된 방법의 버그나 서버의 데이터 파손에 의한 경우), 수동 조작이 필요하게 되는 경우가 있습니다.많은 XA 실장에서는 트랜잭션 매니저로부터 연락을 기다리지 않고 커밋 또는 중단 여부를 독립적으로 결정할 수 있는 "회피 해치"가 제공되지만, 이는 원자성 보증을 위반할 위험이 있으므로 긴급사태에 [1]대비합니다.

사양

XA 사양은 트랜잭션 액세스를 지원하기 위해 리소스 관리자가 수행해야 하는 작업을 설명합니다.이 규격을 따르는 자원 매니저는 XA에 준거하고 있다고 합니다.

XA 사양은 1980년대에 개발된 턱시도 시스템에 사용된 인터페이스를 기반으로 하지만 그 이후 [2]여러 시스템에 채택되었습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c d e Kleppmann, Martin (April 2, 2017). Designing Data-Intensive Applications (1 ed.). O'Reilly Media. pp. 361–364. ISBN 978-1449373320.
  2. ^ Philip A. Bernstein; Eric Newcomer (2009). Principles of transaction processing. Morgan Kaufmann. pp. 330–336. ISBN 978-1-55860-623-4.

외부 링크