JavaTM Platform
Standard Ed. 6

javax.transaction.xa
인터페이스 XAResource



public interface XAResource

XAResource 인터페이스는, X/Open CAE 스펙 (분산 트랜잭션(transaction) 처리: XA 스펙)에 근거하는 업계표준의 XA 인터페이스의 Java 매핑입니다.

XA 인터페이스는, 분산 트랜잭션(transaction) 처리 (DTP) 환경에서의 자원 매니저와 트랜잭션(transaction) 매니저의 사이의 규약을 정의합니다. JDBC 드라이버 또는 JMS 프로바이더는 이 인터페이스를 구현해, 글로벌 트랜잭션(transaction)와 데이타베이스 또는 메세지 서비스 접속동안이 관련짓고를 지원합니다.

XAResource 인터페이스는, 트랜잭션(transaction)가 외부의 트랜잭션(transaction) 매니저에 의해 제어되는 환경에서, 응용 프로그램에 의해 사용되는 모든 트랜잭션(transaction) 자원에 의해 지원할 수 있습니다. 이러한 자원의 예로서는, 데이타베이스 관리 시스템이 있습니다. 어플리케이션은 복수의 데이타베이스 접속을 개입시켜 데이터에 액세스 할 수 있습니다. 각 데이타베이스 접속은, 트랜잭션(transaction) 매니저에 의해 트랜잭션(transaction) 자원으로서 등록됩니다. 트랜잭션(transaction) 매니저는, 글로벌 트랜잭션(transaction)에 관련하는 각 접속의 XAResource 를 가져옵니다. 트랜잭션(transaction) 매니저는,start 메소드를 사용해 글로벌 트랜잭션(transaction)를 자원에 관련지어end 메소드를 사용해 트랜잭션(transaction)와 자원이 관련짓고를 해제합니다. 자원 매니저는, 글로벌 트랜잭션(transaction)를 start 메소드의 호출과 end 메소드의 호출동안에 그 데이터에 대해서 실행되는 모든 처리에 관련짓습니다.

트랜잭션(transaction)의 위탁시에, 자원 매니저는, 2 단계의 위탁 프로토콜에 따라, 트랜잭션(transaction)를 준비, 위탁, 또는 롤백(rollback) 하도록(듯이) 트랜잭션(transaction) 매니저로부터 통지됩니다.


필드의 개요
static int TMENDRSCAN
          회복 주사를 종료합니다.
static int TMFAIL
          호출측이 관련짓고를 해제해, 트랜잭션(transaction) 브랜치(branch)에 롤백(rollback)만의 마크를 붙입니다.
static int TMJOIN
          호출측이 기존의 트랜잭션(transaction) 브랜치(branch)에 참가합니다.
static int TMNOFLAGS
          TMNOFLAGS 를 사용해, 플래그치가 선택되어 있지 않은 것을 나타냅니다.
static int TMONEPHASE
          호출측은 1 단계의 최적화를 사용하고 있습니다.
static int TMRESUME
          호출측은 중단된 트랜잭션(transaction) 브랜치(branch)와의 관련짓고를 재개합니다.
static int TMSTARTRSCAN
          회복 주사를 개시합니다.
static int TMSUCCESS
          호출측과 트랜잭션(transaction) 브랜치(branch)와의 관련짓고를 해제합니다.
static int TMSUSPEND
          호출측은 트랜잭션(transaction) 브랜치(branch)와의 관련짓고를 중단합니다 (종료는 아니다).
static int XA_OK
          트랜잭션(transaction) 처리가 정상적으로 준비되었습니다.
static int XA_RDONLY
          트랜잭션(transaction) 브랜치(branch)에서는 읽기 밖에 행해지지 않고, 위탁되었습니다.
 
메소드의 개요
 void commit (Xid  xid, boolean onePhase)
          xid 로 지정된 글로벌 트랜잭션(transaction)를 위탁합니다.
 void end (Xid  xid, int flags)
          트랜잭션(transaction) 브랜치(branch)를 위해서(때문에) 실행된 처리를 종료합니다.
 void forget (Xid  xid)
          휴리스틱에 결착된 트랜잭션(transaction) 브랜치(branch)를 무시하도록(듯이) 자원 매니저에게 통지합니다.
 int getTransactionTimeout ()
          이 XAResource 인스턴스에 대해서 설정된 현재의 트랜잭션(transaction) 타임 아웃치를 가져옵니다.
 boolean isSameRM (XAResource  xares)
          이 메소드를 호출해, 타겟 객체로 나타내지는 자원 매니저 인스턴스가 파라미터 xares 로 나타내지는 자원 매니저 인스턴스와 같은가 어떤가를 판정할 수 있습니다.
 int prepare (Xid  xid)
          xid 로 지정된 트랜잭션(transaction)의 트랜잭션(transaction) 위탁의 준비를 하도록(듯이) 자원 매니저에게 요구합니다.
 Xid [] recover (int flag)
          자원 매니저로부터 준비된 트랜잭션(transaction) 브랜치(branch)의 리스트를 가져옵니다.
 void rollback (Xid  xid)
          트랜잭션(transaction) 브랜치(branch)를 위해서(때문에) 실행된 처리를 롤백(rollback) 하도록(듯이) 자원 매니저에게 통지합니다.
 boolean setTransactionTimeout (int seconds)
          이 XAResource 인스턴스의 현재의 트랜잭션(transaction) 타임 아웃치를 설정합니다.
 void start (Xid  xid, int flags)
          xid 로 지정된 트랜잭션(transaction) 브랜치(branch)를 위한 처리를 개시합니다.
 

필드의 상세

TMENDRSCAN

static final int TMENDRSCAN
회복 주사를 종료합니다.

관련 항목:
정수 필드치

TMFAIL

static final int TMFAIL
호출측이 관련짓고를 해제해, 트랜잭션(transaction) 브랜치(branch)에 롤백(rollback)만의 마크를 붙입니다.

관련 항목:
정수 필드치

TMJOIN

static final int TMJOIN
호출측이 기존의 트랜잭션(transaction) 브랜치(branch)에 참가합니다.

관련 항목:
정수 필드치

TMNOFLAGS

static final int TMNOFLAGS
TMNOFLAGS 를 사용해, 플래그치가 선택되어 있지 않은 것을 나타냅니다.

관련 항목:
정수 필드치

TMONEPHASE

static final int TMONEPHASE
호출측은 1 단계의 최적화를 사용하고 있습니다.

관련 항목:
정수 필드치

TMRESUME

static final int TMRESUME
호출측은 중단된 트랜잭션(transaction) 브랜치(branch)와의 관련짓고를 재개합니다.

관련 항목:
정수 필드치

TMSTARTRSCAN

static final int TMSTARTRSCAN
회복 주사를 개시합니다.

관련 항목:
정수 필드치

TMSUCCESS

static final int TMSUCCESS
호출측과 트랜잭션(transaction) 브랜치(branch)와의 관련짓고를 해제합니다.

관련 항목:
정수 필드치

TMSUSPEND

static final int TMSUSPEND
호출측은 트랜잭션(transaction) 브랜치(branch)와의 관련짓고를 중단합니다 (종료는 아니다).

관련 항목:
정수 필드치

XA_RDONLY

static final int XA_RDONLY
트랜잭션(transaction) 브랜치(branch)에서는 읽기 밖에 행해지지 않고, 위탁되었습니다.

관련 항목:
정수 필드치

XA_OK

static final int XA_OK
트랜잭션(transaction) 처리가 정상적으로 준비되었습니다.

관련 항목:
정수 필드치
메소드의 상세

commit

void commit(Xid  xid,
            boolean onePhase)
            throws XAException 
xid 로 지정된 글로벌 트랜잭션(transaction)를 위탁합니다.

파라미터:
xid - 글로벌 트랜잭션(transaction) 식별자
onePhase - true 의 경우, 자원 매니저는 1 단계의 위탁 프로토콜을 사용해, xid 를 위해서(때문에) 행해진 처리를 위탁할 필요가 있다
예외:
XAException - 에러가 발생한 것을 나타냅니다. 취할 수 있는 XAException 치는, XA_HEURHAZ, XA_HEURCOM, XA_HEURRB, XA_HEURMIX, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, 또는 XAER_PROTO

자원 매니저가 트랜잭션(transaction)를 위탁하고 있지 않고, 파라미터 onePhase 가 true 로 설정되어 있는 경우, 자원 매니저는 XA_RB* 예외의 1 개를 throw 하는 일이 있다. 이 경우, 돌아올 때에, 자원 매니저는 트랜잭션(transaction) 브랜치(branch)의 처리를 롤백(rollback) 해, 보관 유지하고 있던 모든 자원을 해제했다


end

void end(Xid  xid,
         int flags)
         throws XAException 
트랜잭션(transaction) 브랜치(branch)를 위해서(때문에) 실행된 처리를 종료합니다. 자원 매니저는, 지정된 트랜잭션(transaction) 브랜치(branch)과 XA 자원이 관련짓고를 해제해, 트랜잭션(transaction)를 완료시킵니다.

TMSUSPEND 가 플래그로 지정되면(자), 트랜잭션(transaction) 브랜치(branch)는 불완전한 상태로 일시적으로 중단됩니다. 트랜잭션(transaction) 문맥은 중단 상태이며, TMRESUME 를 지정한 start 메소드를 개입시켜 재개할 필요가 있습니다.

TMFAIL 가 지정되고 있는 경우, 처리 부분은 실패했습니다. 자원 매니저는, 트랜잭션(transaction)에 롤백(rollback) 전용의 마크를 붙이는 일이 있습니다.

TMSUCCESS 가 지정되고 있는 경우, 처리 부분은 정상적으로 완료했습니다.

파라미터:
xid - 이전에 start 메소드로 사용된 식별자와 같다 글로벌 트랜잭션(transaction) 식별자
flags - TMSUCCESS, TMFAIL, 또는 TMSUSPEND 의 언젠가
예외:
XAException - 에러가 발생한 것을 나타냅니다. 취할 수 있는 XAException 치는, XAER_RMERR, XAER_RMFAILED, XAER_NOTA, XAER_INVAL, XAER_PROTO, 또는 XA_RB*

forget

void forget(Xid  xid)
            throws XAException 
휴리스틱에 결착된 트랜잭션(transaction) 브랜치(branch)를 무시하도록(듯이) 자원 매니저에게 통지합니다.

파라미터:
xid - 글로벌 트랜잭션(transaction) 식별자
예외:
XAException - 에러가 발생한 것을 나타냅니다. 취할 수 있는 예외치는, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, 또는 XAER_PROTO

getTransactionTimeout

int getTransactionTimeout()
                          throws XAException 
이 XAResource 인스턴스에 대해서 설정된 현재의 트랜잭션(transaction) 타임 아웃치를 가져옵니다. 이 메소드를 호출하기 전에 XAResource.setTransactionTimeout 가 사용되어 있지 않았던 경우, 반환값은 자원 매니저에 대해서 설정된 디폴트의 타임 아웃입니다. 그렇지 않은 경우는, 이전의 setTransactionTimeout 호출로 사용된 값이 돌려주어집니다.

반환값:
트랜잭션(transaction) 타임 아웃치 (초단위)
예외:
XAException - 에러가 발생한 것을 나타냅니다. 취할 수 있는 예외치는, XAER_RMERR 또는 XAER_RMFAIL

isSameRM

boolean isSameRM(XAResource  xares)
                 throws XAException 
이 메소드를 호출해, 타겟 객체로 나타내지는 자원 매니저 인스턴스가 파라미터 xares 로 나타내지는 자원 매니저 인스턴스와 같은가 어떤가를 판정할 수 있습니다.

파라미터:
xares - 타겟 객체의 자원 매니저 인스턴스라고 비교된다 자원 매니저 인스턴스를 가진다 XAResource 객체
반환값:
같은 RM 인스턴스인 경우는 true, 그렇지 않은 경우는 false
예외:
XAException - 에러가 발생한 것을 나타냅니다. 취할 수 있는 예외치는, XAER_RMERR 또는 XAER_RMFAIL

prepare

int prepare(Xid  xid)
            throws XAException 
xid 로 지정된 트랜잭션(transaction)의 트랜잭션(transaction) 위탁의 준비를 하도록(듯이) 자원 매니저에게 요구합니다.

파라미터:
xid - 글로벌 트랜잭션(transaction) 식별자
반환값:
트랜잭션(transaction)의 결과에 관한 자원 매니저의 판정을 나타내는 값. 취할 수 있는 값은 XA_RDONLY 또는 XA_OK. 자원 매니저가 트랜잭션(transaction)를 롤백(rollback) 시키고 싶은 경우는, 준비를 위한 메소드로 해당하는 XAException 를 발생시킨다
예외:
XAException - 에러가 발생한 것을 나타냅니다. 취할 수 있는 예외치는, XA_RB*, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, 또는 XAER_PROTO

recover

Xid [] recover(int flag)
              throws XAException 
자원 매니저로부터 준비된 트랜잭션(transaction) 브랜치(branch)의 리스트를 가져옵니다. 트랜잭션(transaction) 매니저는 회복시에 이 메소드를 호출해, 현재 준비 상태 또는 휴리스틱에 결착된 상태에 있는 트랜잭션(transaction) 브랜치(branch)의 리스트를 가져옵니다.

파라미터:
flag - TMSTARTRSCAN, TMENDRSCAN, TMNOFLAGS 의 언젠가. TMNOFLAGS 는, 파라미터에 다른 플래그가 설정되어 있지 않은 경우에 사용할 필요가 있다
반환값:
자원 매니저는, 현재 준비 상태 또는 휴리스틱에 결착된 상태에 있다 트랜잭션(transaction) 브랜치(branch)의 제로 이상의 XID 를 돌려준다. 조작중에 에러가 발생하면(자), 자원 매니저는 해당하는 XAException 를 throw 한다
예외:
XAException - 에러가 발생한 것을 나타냅니다. 다음의 값을 지정할 수 있습니다. XAER_RMERR, XAER_RMFAIL, XAER_INVAL, 또는 XAER_PROTO

rollback

void rollback(Xid  xid)
              throws XAException 
트랜잭션(transaction) 브랜치(branch)를 위해서(때문에) 실행된 처리를 롤백(rollback) 하도록(듯이) 자원 매니저에게 통지합니다.

파라미터:
xid - 글로벌 트랜잭션(transaction) 식별자
예외:
XAException - 에러가 발생한 것을 나타냅니다.

setTransactionTimeout

boolean setTransactionTimeout(int seconds)
                              throws XAException 

XAResource 인스턴스의 현재의 트랜잭션(transaction) 타임 아웃치를 설정합니다. 이 타임 아웃치는, 한 번 설정되면(자), 다른 값을 사용해 setTransactionTimeout 이 재차 불려 갈 때까지 유효합니다. 타임 아웃치를 자원 매니저로 사용되는 디폴트 값에 리셋 하려면 , 값을 제로로 설정합니다. 타임 아웃 조작이 정상적으로 실행되면(자), 이 메소드는 true 를 돌려주어, 그렇지 않은 경우는 false 를 돌려줍니다. 자원 매니저가 트랜잭션(transaction) 타임 아웃치의 명시적인 설정을 지원하고 있지 않는 경우는,false 를 돌려줍니다.

파라미터:
seconds - 초단위의 트랜잭션(transaction) 타임 아웃치
반환값:
트랜잭션(transaction) 타임 아웃치가 정상적으로 설정되었을 경우는 true, 그렇지 않은 경우는 false
예외:
XAException - 에러가 발생한 것을 나타냅니다. 취할 수 있는 예외치는, XAER_RMERR, XAER_RMFAIL, 또는 XAER_INVAL

start

void start(Xid  xid,
           int flags)
           throws XAException 
xid 로 지정된 트랜잭션(transaction) 브랜치(branch)를 위한 처리를 개시합니다. TMJOIN 가 지정되는 경우는, 자원 매니저로 이전에 사용된 트랜잭션(transaction)의 참가를 개시합니다. TMRESUME 가 지정되는 경우는, 파라미터 xid 로 지정된 중단 트랜잭션(transaction)를 재개합니다. TMJOIN 도 TMRESUME 도 지정되지 않고,xid 로 지정된 트랜잭션(transaction)가 이전에 자원 매니저로 사용되었던 적이 있는 경우, 자원 매니저는 에러 코드 XAER_DUPID 로 XAException 예외를 throw 합니다.

파라미터:
xid - 자원에 관련지을 수 있다 글로벌 트랜잭션(transaction) 식별자
flags - TMNOFLAGS, TMJOIN, 또는 TMRESUME 의 언젠가
예외:
XAException - 에러가 발생한 것을 나타냅니다. 취할 수 있는 예외치는, XA_RB*, XAER_RMERR, XAER_RMFAIL, XAER_DUPID, XAER_OUTSIDE, XAER_NOTA, XAER_INVAL, 또는 XAER_PROTO

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.