5장. Narayana 트랜잭션 관리자 사용


이 섹션에서는 javax. Cryostat. UserTransaction 인터페이스, org.springframework. Cryostat.PlatformTransactionManager 인터페이스 또는 javax. Cryostat.Transaction 인터페이스를 구현하여 Narayana 트랜잭션 관리자를 사용하는 데 대한 세부 정보를 제공합니다. 사용할 인터페이스는 애플리케이션 요구 사항에 따라 다릅니다. 이 장의 끝에는 XA 리소스 등록의 문제 해결에 대한 논의가 있습니다. 정보는 다음과 같이 구성됩니다.

Java 트랜잭션 API 세부 정보는 JTA(Java Transaction API) 1.2 사양 및 Javadoc 를 참조하십시오.

5.1. UserTransaction 오브젝트 사용

트랜잭션 혼동을 위한 javax. Cryostat.UserTransaction 인터페이스를 구현합니다. 즉, 트랜잭션을 시작, 커밋 또는 롤백합니다. 애플리케이션 코드에서 직접 사용할 가능성이 가장 높은 JTA 인터페이스입니다. 그러나 UserTransaction 인터페이스는 트랜잭션을 위임하는 방법 중 하나일 뿐입니다. 트랜잭션을 분류할 수 있는 다양한 방법에 대한 설명은 9장. 트랜잭션을 사용하는 Camel 애플리케이션 작성 에서 참조하십시오.

5.1.1. UserTransaction 인터페이스 정의

JTA UserTransaction 인터페이스는 다음과 같이 정의됩니다.

public interface javax.transaction.UserTransaction {

    public void begin();

    public void commit();

    public void rollback();

    public void setRollbackOnly();

    public int getStatus();

    public void setTransactionTimeout(int seconds);
}

5.1.2. UserTransaction 메서드에 대한 설명

UserTransaction 인터페이스는 다음 방법을 정의합니다.

begin()
새 트랜잭션을 시작하고 현재 스레드와 연결합니다.Starts a new transaction and associates it with the current thread. XA 리소스가 이 트랜잭션과 연결된 경우 트랜잭션은 암시적으로 XA 트랜잭션이 됩니다.
commit()

보류 중인 모든 변경 사항이 영구적으로 되도록 현재 트랜잭션을 정상적으로 완료합니다. 커밋 후 현재 스레드와 연결된 트랜잭션이 더 이상 없습니다.

참고

그러나 현재 트랜잭션이 롤백으로만 표시되면 commit() 이 호출될 때 트랜잭션이 실제로 롤백됩니다.

rollback()
보류 중인 모든 변경 사항이 삭제되도록 즉시 트랜잭션을 중지합니다. 롤백 후에는 더 이상 현재 스레드와 연결된 트랜잭션이 없습니다.
setRollbackOnly()
롤백이 유일한 결과이지만 아직 롤백을 수행하지 않도록 현재 트랜잭션의 상태를 수정합니다.
getStatus()

javax. Cryostat.Status 인터페이스에 정의된 대로 다음 정수 값 중 하나일 수 있는 현재 트랜잭션의 상태를 반환합니다.

  • STATUS_ACTIVE
  • STATUS_COMMITTED
  • STATUS_COMMITTING
  • STATUS_MARKED_ROLLBACK
  • STATUS_NO_TRANSACTION
  • STATUS_PREPARED
  • STATUS_PREPARING
  • STATUS_ROLLEDBACK
  • STATUS_ROLLING_BACK
  • STATUS_UNKNOWN
setTransactionTimeout()
초 단위로 지정된 현재 트랜잭션의 시간 초과를 사용자 지정합니다. 지정된 타임아웃 내에서 트랜잭션이 해결되지 않으면 트랜잭션 관리자가 자동으로 롤백합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.