MSSQLSERVER_8525MSSQLSERVER_8525

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

세부 정보Details

제품 이름Product Name SQL ServerSQL Server
이벤트 IDEvent ID 85258525
이벤트 원본Event Source MSSQLSERVERMSSQLSERVER
구성 요소Component SQLEngineSQLEngine
심볼 이름Symbolic Name
메시지 텍스트Message Text 분산 트랜잭션이 완료되었습니다.Distributed transaction completed. 이 세션을 새 트랜잭션이나 NULL 트랜잭션에 참여하게 하십시오.Either enlist this session in a new transaction or the NULL transaction.

설명Explanation

SQL ServerSQL Server와 함께 DTC(Distributed Transaction Coordinator)를 사용하기 위한 프로그래밍 모델에서는 응용 프로그램을 명시적으로 분산 트랜잭션에 참여시키고 분산 트랜잭션에서 제거해야 합니다.The programming model for using the Distributed Transaction Coordinator with SQL ServerSQL Server requires applications to explicitly enlist to and defect from a distributed transaction.

이 오류는 다음과 같은 4가지 조건이 만족되면 발생합니다.This error occurs when the following four conditions are met:

  • 응용 프로그램이 분산 트랜잭션에 참여했습니다.The application has enlisted into a distributed transaction.

  • 어떤 이유로 인해 트랜잭션이 종료되어 커밋되거나 롤백되었습니다.The transaction has ended, either committed or rolled back, for any reason.

  • 사용자 응용 프로그램이 명시적으로 분산 트랜잭션에서 제거되지 않았거나 명시적으로 새로운 분산 트랜잭션에 참여하지 않았습니다.The user application has not explicitly defected from a distributed transaction or explicitly enlisted into a new distributed transaction.

  • 응용 프로그램이 기존 분산 트랜잭션에서 제거하거나 새로운 분산 트랜잭션에 참여하는 작업 이외의 트랜잭션 작업(예: 쿼리 실행 또는 로컬 트랜잭션 시작)을 수행하려고 합니다.The application tries to do any transactional operation other than defecting from existing distributed transaction or enlisting to a new distributed transaction, such as issuing a query or starting a local transaction.

오류 상태 1은 응용 프로그램이 로컬 트랜잭션을 만드는 작업을 수행하는 경우 사용되며 상태 2는 응용 프로그램이 바운드 세션에 참여하려고 하는 경우 사용됩니다.Error state 1 is used when the application performs an operation that creates local transactions, and state 2 is used when application tries to enlist to a bound session.

사용자 동작User Action

응용 프로그램이 분산 트랜잭션에 참여한 다음에는 해당 응용 프로그램을 명시적으로 분산 트랜잭션에서 제거하거나 다른 분산 트랜잭션에 참여시켜야 합니다.After an application has enlisted into a distributed transaction, the application must explicitly defect from the distributed transaction or enlist to another distributed transaction. 이렇게 하면 응용 프로그램이 이전에 참여한 트랜잭션에서 암시적으로 제거됩니다.This will implicitly defect from a previous enlisted transaction. 분산 트랜잭션에서 제거하거나 분산 트랜잭션에 참여시키기 위한 정확한 구문은 응용 프로그램에 대한 프로그래밍 인터페이스 매뉴얼을 참조하십시오.For the exact syntax to defect from or enlist to a distributed transaction, see the programming interface manual for the application.