FIX: 두 개의 트랜잭션이 TABLOCK 잠금 힌트 또는 XLOCK 잠금 참고를 포함 하는 테이블에 대해 DML 작업을 수행 하려고 하는 경우 교착 상태가 발생 한다

증상

Microsoft SQL Server Compact 3.5에서 다음 시나리오를 고려 하십시오.
  • 두 개의 트랜잭션이 순차 가능 격리 해야합니다.
  • (쿼리/DML) DML 작업을 수행 하려면 TABLOCK 잠금 힌트 또는 XLOCK 잠금 참고를 포함 하는 같은 테이블에 두 트랜잭션 모두를 보십시오.
이 경우 교착 상태가 발생할 수 있습니다.

원인

XLOCK에 대 한 서로 대 한 대기 하는 경우 두 트랜잭션 모두이 문제가 발생 합니다. 쿼리를 컴파일할 때 두 트랜잭션 테이블에 공유 잠금이 구하여 다음 순차 가능 격리 잠금을 보유 합니다. 두 트랜잭션 실행, XLOCK 잠금 참고를 포함 하는 동일한 테이블에 대 한 쿼리를 수행 하려고 하는 경우 두 트랜잭션 모두 기다립니다 서로 XLOCK에 대 한. 따라서 교착 상태가 발생합니다.

참고: 또한 TABLOCK 잠금 힌트를 포함 하는 동일한 테이블에서 DML 작업을 수행 하는 경우 두 트랜잭션 모두이 문제가 발생 합니다.

해결 방법

SQL Server Compact 3.5 서비스 팩 2

이 문제를 해결은 누적 업데이트 2에서 먼저 릴리스 되었습니다. SQL Server 2008 r 2에 대 한이 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
2289547 누적 업데이트 2 SQL Server Compact 3.5 서비스 팩 2에 대 한

상태

Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.

자세한 내용

교착 상태에 대 한 자세한 내용은 다음 Microsoft Developer Network (MSDN) 웹 사이트를 방문 하십시오.DML에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.
소프트웨어 업데이트 용어에 대한 자세한 내용을 보려면, 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 문서를 확인하십시오.

Microsoft 소프트웨어 업데이트를 설명 하는 데 사용 되는 표준 용어에 대 한 824684 설명

속성

문서 ID: 983516 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백