트랜잭션 및 2단계 커밋 지원
COM 용어에서 트랜잭션은 항상 ACID(원자성, 일관성, 격리 및 내구성)인 작업 단위입니다. 메인프레임 용어에서 트랜잭션은 ACID 트랜잭션일 수도, 그렇지 않을 수도 있습니다. 메인프레임 용어에서 트랜잭션은 TP(트랜잭션 프로그램)의 작업 또는 명령 집합입니다. 용어의 이러한 차이는 혼동될 수 있습니다. TI 관리자 및 TI Designer 사용되는 트랜잭션이라는 단어는 항상 ACID 트랜잭션을 나타냅니다.
2PC(2단계 커밋)는 애플리케이션(또는 애플리케이션 간) 작업 또는 명령 집합을 모두 롤백하거나 모두 단일 트랜잭션 단위로 커밋할 수 있는 프로토콜입니다.
참고
TCP/IP 프로토콜을 통해 TI Automation 서버를 호출하는 경우 2단계 커밋 트랜잭션은 지원되지 않습니다. 2단계 커밋은 SNA APPC/LU 6.2 프로토콜을 통해서만 작동합니다.
TI 구성 요소에는 다음과 같은 네 가지 가능한 트랜잭션 속성이 있습니다.
트랜잭션 필요
새 트랜잭션 필요
트랜잭션 지원
트랜잭션을 지원하지 않음
처음 두 가지 옵션을 선택하려면 메인프레임 TP가 트랜잭션이고(즉, ACID 속성을 충족) 동기화 수준 2를 지원해야 합니다. 이는 CICS 링크 또는 IMS 버전 6.0 이상 프로그램인 경우 메인프레임 TP에 투명합니다. 세 번째 옵션을 선택하려면 동기화 수준 2 요청을 지원하고 트랜잭션 의미 체계를 적절하게 처리하려면 메인프레임 TP가 필요합니다. 네 번째 선택은 IMS 버전 6.0 이전의 IMS TP와 동기화 수준 0 또는 동기화 수준 1만 지원하는 모든 CICS TP에 필요합니다.
COM+ 트랜잭션의 scope 내에서 TI 구성 요소가 호출되면 TI는 CICS와 동기화 수준 2 대화를 설정합니다(그렇지 않으면 동기화 수준 0이 사용됨). 이는 TI 구성 요소의 클라이언트에 투명합니다. 메인프레임 TP가 CICS 링크 프로그램인 경우 CICS(CSMI)에서 IBM의 미러 트랜잭션이 동기화 수준 2 프로토콜을 처리하고 연결된 TP가 동기화 수준 0 또는 동기화 수준 2가 사용되고 있는지 여부를 인식하지 못하므로 대화의 트랜잭션 특성도 TP에 투명합니다.
TI는 클라이언트에서 각 메서드 호출의 작업을 완료할 때 SetComplete 또는 SetAbort를 호출하여 COM+ 프로그래밍 모델을 준수합니다. 오류가 검색되지 않은 경우 TI는 SetComplete를 호출합니다. 그렇지 않으면 SetAbort를 호출합니다. 또한 메인프레임 TP가 반환된 메타 데이터 오류 블록에서 DisableCommit 플래그를 설정하여 트랜잭션을 커밋해서는 안 됨을 나타내는 경우 TI는 SetAbort를 호출합니다. TI Automation 클라이언트 애플리케이션은 트랜잭션 커밋을 금지해야 하는 애플리케이션 수준 문제가 있다고 판단되는 경우 SetAbort를 호출하도록 선택할 수도 있습니다.
클라이언트의 메서드 호출이 반환되면 메인프레임의 TP가 일부 작업 단위를 수행했지만 CICS의 보호된 리소스에 대한 변경 내용은 아직 커밋되지 않았습니다. TI는 새 DTC 인터페이스를 사용하여 DTC 트랜잭션에 동기화 수준 2 대화를 참여합니다. DTC가 트랜잭션을 커밋하거나 중단할 준비가 되면 TI와 통신하여 LU 6.2 대화에서 적절한 2단계 커밋 흐름을 구동합니다. 다시 말하지만, 모든 2PC 작업은 클라이언트를 대신하여 TI에 의해 투명하게 수행됩니다.
메서드가 완료되면 TI 개체를 비활성화할 수 있지만 트랜잭션이 커밋되거나 중단될 때까지 대화를 유지 관리해야 합니다. 애플리케이션 코드가 하나 이상의 트랜잭션 메서드 호출을 수행하지만 장기간 트랜잭션을 커밋하지 않는 경우 사용자는 성능에 부정적인 영향을 미치고 시스템 리소스를 연결할 수 있습니다. 제대로 구조화되지 않은 사용자 코드로 대화를 빠르게 사용할 수 있습니다.
대화가 커밋되기를 기다리는 경우 대화가 연결된 개체와 이혼됩니다. TI는 이러한 "대기 중" 대화의 풀을 관리하고 DTC에서 적절한 알림을 받으면 필요한 동기화 수준 작업을 수행합니다. 가능하면 TI는 이러한 대화를 다시 사용하여 오버헤드를 최소화합니다.
TI는 또한 다시 동기화 서비스(SNA LU 6.2 Resync TP)를 제공합니다. 이 Windows 서비스는 SNA 정의 Resync TP(0x06f2)에 대해 자동으로 시작된 호출 가능한 서비스로 구성됩니다. Resync 서비스는 SNA 트랜잭션 관리자의 "Exchange 로그 이름" 및 "상태 비교" 함수를 구현합니다. 이를 통해 DTC(분산 트랜잭션 코디네이터)와 CICS가 시스템 시작 중 또는 시스템 또는 통신 실패 후 필요에 따라 복구 프로세스를 시작할 수 있습니다.
IBM의 SNA SyncPoint 또는 2PC 흐름에 대한 자세한 내용은 SNA SyncPoint Services 아키텍처 참조(IBM SC31-8134-00)를 참조하세요. 모든 TI 2PC 흐름은 이 아키텍처에 따라 구현됩니다.
참고
명시적 SYNCPOINT 명령을 사용하는 CICS 링크 TP를 사용하는 방법에 대한 자세한 내용은 명시적 SYNCPOINT 명령이 있는 TP를 참조하세요.
요약하면 2단계 커밋을 사용하려면 다음 요구 사항을 모두 충족해야 합니다.
로컬 및 원격 RU는 각각 호스트 통합 서버 노드에서 SyncPoint 지원을 사용하도록 설정해야 합니다.
로컬 및 원격 RU는 각각 Resync 서비스를 실행하는 컴퓨터를 가리킵니다.
RE(원격 환경)에는 동기화 수준 2 지원이 활성화되어 있어야 합니다. 이를 검사 TI 관리자에서 RE를 마우스 오른쪽 단추로 클릭하고 속성을 클릭한 다음 LU 6.2 탭을 클릭합니다.
TI 구성 요소에는 트랜잭션 지원이 지원됨, 필수 또는 새로 필요로 설정되어 있어야 합니다. 이 설정을 검사 TI 관리자에서 TI 구성 요소를 마우스 오른쪽 단추로 클릭하고 속성을 클릭한 다음 트랜잭션 탭을 클릭합니다.
동기화 수준 2 지원을 위해 원격 호스트 컴퓨터를 구성해야 합니다.