DataStage 의 Distributed Transaction 스테이지
분산 트랜잭션 단계를 사용하여 여러 데이터 소스에 걸쳐 있는 트랜잭션을 실행하려면 IBM® MQ 또는 Apache Kafka에서 관리합니다. IBM Db2 for DataStage, Oracle Database for DataStage, ODBC, IBM MQ 또는 Teradata를 입력 커넥터로 사용할 수 있습니다.
개요
트랜잭션은 단일 조작으로 완료되는 일련의 조치입니다. 트랜잭션은 변경을 영구적으로 설정하는 커미트 조치로 끝납니다. 변경사항을 커미트할 수 없는 경우 트랜잭션은 모든 변경사항을 롤백합니다.
분산 트랜잭션은 하나 이상의 데이터베이스와 같은 여러 데이터 소스 및 IBM MQ 메시지 큐와 같은 트랜잭션 관리자에 걸쳐 있을 수 있는 트랜잭션입니다. 트랜잭션이 성공적으로 커미트되려면 모든 개별 데이터 소스가 성공적으로 커미트되어야 합니다. 자원을 커미트할 수 없으면 전체 트랜잭션이 롤백됩니다. 예를 들어 분산 트랜잭션은 서로 다른 데이터베이스에 있는 두 개의 은행 계좌 사이에서 금액 이체로 구성될 수 있습니다. 한 계정에서 인출하고 다른 계정으로 입금하는 작업이 성공적으로 완료된 경우에만 트랜잭션이 커미트됩니다.
- 트랜잭션 경계를 정의하고 트랜잭션을 구성하는 조치를 지정하는 응용프로그램
- 공유 데이터 소스에 대한 액세스를 제공하는 데이터베이스 또는 파일 시스템과 같은 자원 관리자
- 트랜잭션에 ID를 지정하고 해당 진행 상태를 모니터하고 트랜잭션 완료 및 실패 복구를 관리하는 트랜잭션 관리자
분산 트랜잭션 플로우에 대한 일반적인 설계의 예에서 IBM MQ 커넥터는 메시지 대기열에서 소스 메시지를 처리하고 메시지를 지속적 작업 대기열로 이동합니다. 커넥터는 데이터, 메시지 ID 및 기타 메시지 헤더 필드를 소스에서 대상 메시지로 복사합니다. 커넥터는 또한 메시지 데이터를 출력 링크로 전송합니다. 하나 이상의 스테이지가 Oracle Database for DataStage 커넥터에서 메시지 데이터 및 추가 데이터를 처리하고 처리된 데이터를 하나 이상의 링크를 통해 Distributed Transaction 스테이지로 전송합니다. 스테이지에 대한 각 입력 링크는 대상 데이터베이스에 대한 출력을 나타냅니다. 이 링크는 분산 트랜잭션의 일부로 작업 큐에서 이용되는 원래 소스 메시지의 메시지 ID를 제공합니다.
입력 탭
각 입력 링크에 대한 커넥터 등록 정보를 구성하십시오. 데이터 소스를 선택하고 연관된 연결 특성을 지정하십시오. 대상에 데이터를 쓰는 데 사용할 쓰기 메소드를 선택하고 해당 쓰기 메소드 및 대상에 필요한 특성을 지정하십시오.
스테이지 탭
트랜잭션 관리자 및 연결을 지정하십시오. 글로벌 트랜잭션 및 IBM MQ 메시징을 사용할지 여부를 선택하십시오. 메시지를 이동할 작업 큐를 지정하십시오. 실패한 단위를 거부할지 여부를 선택할 수 있습니다. 실패한 단위는 실패한 레코드를 포함하는 트랜잭션을 롤백합니다. 거부 큐를 지정하여 실패한 레코드를 저장하고 기타 거부 특성을 설정할 수 있습니다. 입력 링크를 처리할 순서를 지정할 수 있습니다. 또한 레코드가 있는 링크에 관계없이 레코드 처리 순서를 제어하도록 레코드 순서를 설정할 수도 있습니다.