다음을 통해 공유


트랜잭션 메시지 일괄 처리

일부 어댑터는 내부 BizTalk Server 트랜잭션을 사용하여 외부 트랜잭션을 조정해야 합니다. 예를 들어 BizTalk Server 함께 제공되는 SQL 어댑터는 SQL Server 트랜잭션을 BizTalk Server 트랜잭션과 조정해야 합니다. 이렇게 하려면 어댑터가 BizTalk Server 트랜잭션 개체에 액세스해야 합니다. 일괄 처리가 BizTalk Server 제출되기 전에 트랜잭션 개체가 명시적으로 만들어지고 일괄 처리와 연결됩니다. 트랜잭션 개체가 연결된 일괄 처리를 트랜잭션 일괄 처리라고 합니다. 고유한 MSDTC(Microsoft Distributed Transaction Coordinator) 트랜잭션 개체를 제공하여 BizTalk Server 들어오고 나가는 데이터를 "한 번만 보장"할 수 있습니다.

SQL 어댑터 같은 트랜잭션 데이터베이스 어댑터의 경우 일괄 처리에 단일 트랜잭션이 사용되므로 외부 데이터베이스에서 교착 상태가 발생할 수 있습니다. 이러한 이유로 SQL 어댑터의 일괄 처리 크기는 1로 하드 코드되어 있습니다.

어댑터가 다른 데이터베이스, MSMQ 등의 추가 리소스 관리자를 등록해야 할 경우에는 해당 트랜잭션의 범위 내에서 명시적 외부 트랜잭션을 만들어 메시징 엔진에 전달해야 합니다. 외부 트랜잭션을 만들어 일괄 처리에 연결하는 작업을 트랜잭션 일괄 처리라고 합니다. 트랜잭션 어댑터는 외부 MSDTC(Microsoft Distributed Transaction Coordinator) 트랜잭션을 명시적으로 만들어 트랜잭션 일괄 처리를 사용하는 어댑터입니다.

어댑터가 트랜잭션에 BizTalk Server 제공하는 이유 중 하나는 BizTalk Server 또는 외부 시스템에 데이터 레코드가 있는지 확인하기 위한 것입니다. 이 레코드를 통해 메시지가 한 번만 전달되도록 보장됩니다.

참고

MSDTC에 대한 자세한 내용은 분산 트랜잭션 코디네이터를 참조하세요.

FILE 어댑터는 트랜잭션에 액세스할 필요가 없는 어댑터의 한 예입니다. 이는 FILE 어댑터가 관리하는 외부 파일 작업이 트랜잭션 작업이 아니기 때문입니다. 이 경우 어댑터는 BizTalk Server 트랜잭션 개체를 제공하지 않습니다. 반면에 SQL 어댑터는 SQL 데이터베이스와 상호 작용하며 BizTalk Server 메시지 상호 작용 이외의 추가 작업이 있을 수 있습니다. 이 경우 외부 MSDTC 트랜잭션은 어댑터가 BizTalk Server 전달하는 것이 적합할 수 있습니다.

섹션 내용