Share via


MSSQLSERVER_3989

적용 대상:SQL Server

세부 사항

attribute
제품 이름 SQL Server
이벤트 ID 3989
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 XACT_UNSUPPORT_PARALLEL_TRAN3
메시지 텍스트 새 요청은 유효한 트랜잭션 설명자와 함께 제공해야 하므로 시작할 수 없습니다.

설명

이 오류는 세션 설정이 ON인 동안 SQL Server의 원격 인스턴스에서 호스트하는 여러 테이블을 조인하는 분산 쿼리를 XACT_ABORT 실행할 때 발생합니다. 사용자에게 다음과 같은 오류 메시지가 보고됩니다.

Msg 3989, Level 16, State 1, Line #
새 요청은 유효한 트랜잭션 설명자와 함께 제공해야 하므로 시작할 수 없습니다.

원인

다음 조건이 충족될 때 SQL Server에서 DQ(분산 쿼리)를 처리하는 방식에는 몇 가지 디자인 제한 사항이 있습니다.

  • SQL Server는 하나의 원격 SQL Server 데이터 원본의 여러 테이블을 조인합니다.
  • 쿼리를 실행하는 세션이 분산 트랜잭션에 등록되지 않았습니다.

이 경우 쿼리를 실행하려고 하면 설명 섹션에 언급된 두 가지 오류 중 하나가 발생할 수 있습니다.

사용자 작업

이 문제를 해결하려면 분산 쿼리를 '분산 트랜잭션 시작' 문으로 묶습니다.

BEGIN DISTRIBUTED TRANSACTION
/*The actual Distributed Query goes next, outside of comments*/
COMMIT TRANSACTION