jta 예제

트랜잭션을 용이하게 하는 2단계 커밋 엔진에서 사용자(예: COORDUSR)를 만들고 다음 세 가지 작업을 수행합니다. 모든 참여하지 않는 데이터 원본의 URL은 Oracle 데이터베이스 인스턴스를 가리커야 합니다. 글로벌 트랜잭션에 참여하는 여러 Oracle 리소스만 커밋 후 ACID(원자성, 일관성, 격리, 내구성) 의미 체계를 갖습니다. 요약하면 2단계 커밋은 Oracle 데이터베이스 리소스에서만 지원되지만 전체 복구는 항상 지원됩니다. 다음과 같이 데이터 원본.xml 파일에 바인딩된 JNDI 이름에 OC4J 특정 배포 설명자(예: orion-ejb-jar.xml)의 다음과 같이 매핑합니다.jdbc/OracleDS는 데이터 소스에 정의된 JNDI 이름입니다. 이 예제에서는 2단계 커밋 프로토콜을 사용하여 하나의 트랜잭션 분기를 커밋합니다. 예를 들어, MDB가 지속성을 위해 데이터베이스를 사용하는 CMP Bean에 통신하고 OC4J JMS를 통해 클라이언트로부터 메시지를 받는 경우 이 MDB에는 데이터베이스와 OC4J JMS라는 두 가지 리소스가 포함됩니다. 이 경우 2단계 커밋은 지원되지 않습니다. 예를 들어, OC4J 컨테이너에 배포된 빈 관리 트랜잭션, 서블릿 또는 Java 개체가 있는 엔터프라이즈 Java Beans(EJB)는 트랜잭션을 시작하고 종료(분리)할 수 있습니다. 예를 들어, 우리는 이와 같은 JDBC 자원을 처리해야합니다. 마찬가지로 JMS 리소스는 유사하지만 호환되지 않는 모델을 가질 수 있습니다. 비트로닉스A커넥티팩터래퍼와 비트로닉스XA데이터소스래퍼는 XA 래퍼를 작성하는 방법에 대한 좋은 예를 제공합니다. X/Open XA 아키텍처에서 트랜잭션 관리자 또는 트랜잭션 처리 모니터(TP 모니터)는 데이터베이스 및 메시지 큐와 같은 여러 리소스에서 트랜잭션을 조정합니다.

각 리소스에는 고유한 리소스 관리자가 있습니다. 리소스 관리자는 일반적으로 JDBC API와 관계형 데이터베이스에서 작업할 수 있는 JDBC API와 같은 리소스를 조작하기 위한 자체 API를 가지고 있습니다.