XAResource

XAResource (XA 리소스)

업계 표준 XA 인터페이스를 Java로 매핑한 인터페이스로, X/Open CAE 사양(분산 트랜잭션 처리: XA 사양)에 기반합니다.

출처: Java API Reference

본문

XA 인터페이스는 분산 트랜잭션 처리(DTP) 환경에서 리소스 관리자(Resource Manager)와 트랜잭션 관리자(Transaction Manager) 사이의 계약을 정의합니다.

JDBC 드라이버나 JMS 공급자는 이 인터페이스를 구현하여 전역 트랜잭션과 데이터베이스 또는 메시지 서비스 연결 사이의 연관을 지원합니다. XAResource는 외부 트랜잭션 관리자가 트랜잭션을 제어하는 환경에서 애플리케이션 프로그램이 사용하려는 모든 트랜잭션 리소스가 지원할 수 있습니다. 이러한 리소스의 예로 데이터베이스 관리 시스템이 있습니다.

애플리케이션은 여러 데이터베이스 연결을 통해 데이터에 접근할 수 있습니다. 각 데이터베이스 연결은 트랜잭션 리소스로 트랜잭션 관리자에 참여(enlist)됩니다.

  • 트랜잭션 관리자는 전역 트랜잭션에 참여하는 각 연결에 대해 XAResource를 얻습니다.
  • start 메서드로 전역 트랜잭션을 리소스에 연관시키고, end 메서드로 트랜잭션과 리소스의 연관을 해제합니다.
  • 리소스 관리자는 startend 메서드 호출 사이에 자신의 데이터에서 수행된 모든 작업에 전역 트랜잭션을 연관시킵니다.

커밋 시점에는 2단계 커밋(두 단계 커밋) 프로토콜에 따라 prepare, commit, rollback을 수행하도록 트랜잭션 관리자가 리소스 관리자에게 알립니다.

XAResourceTMNOFLAGS처럼 플래그 값과 트랜잭션 시작·종료·준비·커밋·롤백·복구를 위한 다양한 메서드 상수를 제공합니다.

더 알아보기 (Learn more)

Java 공식 API