다음을 통해 공유


2단계 커밋

특정 비즈니스 논리 작업에는 여러 컴퓨터에서 실행되는 여러 프로그램이 포함될 수 있습니다. 이 디자인에서는 관련된 모든 프로그램의 실행이 성공적으로 완료되지 않는 한 트랜잭션이 완료된 것으로 간주되지 않습니다. 이러한 프로그램에서 트랜잭션에 속한 다른 모든 프로그램이 해당 트랜잭션을 완료했는지 확인하려면 2PC(2단계 커밋) 프로토콜을 사용해야 합니다.

트랜잭션이라는 용어나 모든 파생 용어(예: transactional)는 오해의 소지가 있습니다. 대부분의 경우 트랜잭션이라는 용어는 2PC 프로토콜을 사용하지 않는 메인프레임 컴퓨터에서 실행되는 단일 프로그램을 설명합니다. 그러나 다른 경우에는 2PC 프로토콜을 사용하는 여러 컴퓨터의 여러 프로그램에서 수행되는 작업을 나타내는 데 사용되기도 합니다.

2PC 프로토콜은 수행된 작업을 커밋하기 전에 다음 두 단계를 수행하기 때문에 지정된 이름입니다.

  • 1단계 - 준비. 이 단계에서는 트랜잭션과 관련된 각 프로그램이 MS DTC(Microsoft Distributed Transaction Coordinator) 같은 TP Manager에 메시지를 보내 해당 작업 부분을 수행할 준비가 되었음을 TP Manager에 알립니다. 이 단계에서는 변경 내용을 커밋하거나 롤백하도록 프로그램을 준비하기 때문에 준비라고도 합니다. TP Manager가 관련된 각 프로그램에서 확인을 받으면 2단계로 진행합니다.

  • 2단계 - 커밋 또는 롤백. 이 단계에서는 TP Manager가 트랜잭션의 일부로 요청된 모든 변경 내용을 커밋하거나 롤백하도록 각 프로그램에 지시합니다. 제대로 실행된 롤백은 시스템을 원래 상태로 되돌립니다.

참고

1단계와 2단계 사이의 상태를 미결 상태라고 합니다. 애플리케이션에서 .NET을 사용하는 개발자는 TP에 액세스해야 하는 애플리케이션 파트와 그렇지 않은 파트를 결정할 수 있습니다. TI는 트랜잭션이 필요한 호출과 그렇지 않은 호출을 처리하여 이 선택을 메인프레임으로 확장합니다. TI는 Windows 기반 2단계 커밋과 메인프레임 기반 동기화 수준 2 트랜잭션 간의 전체 통합이 필요한 애플리케이션에서 필요한 모든 기능을 제공합니다. TI는 이 작업을 수행할 때 클라이언트 애플리케이션을 변경할 필요가 없으며, 메인프레임에 실행 코드를 배치하지 않고, 메인프레임 TP를 거의 변경하지 않거나 전혀 변경하지 않습니다. 클라이언트 애플리케이션은 TI 구성 요소와 다른 모든 구성 요소 참조를 구분할 필요가 없습니다.

다음 그림에서는 Windows 기반 클라이언트 애플리케이션이 Microsoft DTC(Distributed Transaction Coordinator)를 암시적으로 사용하여 SQL Server 및 CICS TP와 관련된 분산 트랜잭션의 2단계 커밋을 조정하는 방법을 보여 줍니다. DTC는 2PC 트랜잭션을 조정합니다.

트랜잭션 통합자와 DTC를 사용하여 SQL Server CICS 애플리케이션 간의 2단계 커밋을 조정하는 클라이언트 애플리케이션을 보여 주는 이미지
Transaction Integrator 및 DTC를 사용하여 SQL Server와 CICS 애플리케이션 간의 2단계 커밋을 조정하는 클라이언트 애플리케이션

참고

Transaction Integrator는 Windows 시작 처리를 사용하는 LU 6.2(APPC)를 통해 메인프레임에 연결할 때만 2PC를 지원합니다. TCP/IP를 통해 직접 연결하는 경우에는 TI를 통해 2PC를 지원할 수 없습니다.

TI 및 DTC를 사용하는 클라이언트 애플리케이션

2PC(2단계 커밋) 트랜잭션에는 여러 구성 요소가 포함됩니다. TI(Transaction Integrator)를 성공적으로 사용하려면 다음 2PC 구성 요소 및 용어를 이해해야 합니다.

동기화 지점 수준 2
TP는 동기화 수준 0, 동기화 수준 1, 동기화 수준 2의 세 가지 동기화 수준 중 하나에서 LU6.2 프로토콜을 사용하여 서로 상호 작용할 수 있습니다. 이러한 세 가지 동기화 수준 중 하나인 동기화 수준 2만 2PC 프로토콜을 사용합니다. 동기화 수준 0에는 메시지 무결성이 없지만 동기화 수준 1은 제한된 데이터 무결성을 지원합니다.

TP Manager
TP(트랜잭션 프로그램) Manager는 원자성을 달성할 수 있도록 트랜잭션의 결과를 조정하는 시스템 서비스입니다. TP Manager는 리소스 관리자가 트랜잭션이 커밋되어야 하는지 중단되어야 하는지를 일관되게 결정할 수 있도록 합니다. Windows TP Manager는 MS DTC입니다.

Resync Service
LU6.2 Resync Service는 MS DTC와 함께 작동하는 호스트 통합 서버의 구성 요소로, 2PC 트랜잭션의 어느 시점에서든 오류가 발생하여 일관된 상태로 자동 복구를 수행합니다. LU6.2 Resync 서비스는 호스트 통합 서버를 설치할 때 기본적으로 설치됩니다.

리소스 관리자
리소스 관리자는 지속형 데이터를 관리하는 시스템 서비스입니다. 서버 애플리케이션은 리소스 관리자를 사용하여 사용 가능한 재고 레코드, 보류 중인 주문, 수취 계정 등 애플리케이션의 지속형 상태를 유지 관리합니다. 리소스 관리자는 트랜잭션 관리자와 함께 사용되어 2PC 프로토콜을 통해 애플리케이션에 원자성 및 격리를 보장합니다. Microsoft SQL Server™ 및 TI는 리소스 관리자의 예입니다.

참고 항목

Windows 트랜잭션 및 메인프레임 트랜잭션
온라인 트랜잭션 처리