이 메시지는 새로운 또는 기존의 MS DTC(Microsoft Distributed Transaction Coordinator) 트랜잭션을 참여시키려는 시도가 실패했을 때 발생합니다.
참여시키지 못하는 원인은 다양합니다. 오류 상태, 오류와 함께 반환된 특정 결과 코드 및 동일 시간에 발생한 다른 오류는 이 사용자 환경에서 참여에 실패한 이유를 확인할 수 있도록 도와줍니다. 참여 실패는 이름 확인 실패 등의 통신 문제를 나타내기도 합니다. 또한 호출하는 응용 프로그램의 코딩 방식 또는 SQL Server의 차단 문제나 성능 문제 때문일 수 있습니다.
MS DTC 트랜잭션에 관련된 두 컴퓨터 모두에서 MS DTC가 시작되었는지 확인합니다. MS DTC 서비스가 클러스터형인 경우 클러스터 관리자에서 온라인 상태인지 확인합니다.
MS DTC 트랜잭션에 관련된 서버의 이벤트 로그를 검토하여 이 메시지와 같은 시간대에 다른 오류가 발생했는지 확인합니다. 다른 오류가 있으면 그 오류를 먼저 해결하십시오. 이 경우 이 오류는 다른 오류로 인해 부수적으로 발생한 것일 수 있습니다.
기본적으로 네트워크 MS DTC 액세스는 Windows Server 2003에서 사용되지 않습니다. 관련 컴퓨터가 Windows 2003을 실행하는 경우 MS DTC가 사용 가능하도록 설정되었는지 확인합니다. Windows 2003에서 네트워크 MS DTC 액세스를 사용하는 방법은 Microsoft 기술 자료 문서 817064를 참조하십시오.
관련 서버 간의 RPC 통신이 올바르게 작동하는지 확인합니다.
MS DTC 트랜잭션에 관련된 서버를 다시 부팅하여 모든 IP 주소 정보를 플러시하십시오.
호출하는 COM+ 구성 요소에 대한 트랜잭션 제한 시간 설정이 충분한지 확인하여 시간 초과로 인해 다른 구성 요소가 이미 시간이 초과된 트랜잭션에 참여하려고 시도하지 않도록 하십시오.
SQL Server 구성 옵션 "경량 풀링"("파이버 모드"라고도 함)이 설정된 경우 해제하십시오. 오류가 여전히 발생하는지 테스트하십시오.
SQL Server 구성 옵션 "우선 순위 높임"이 설정된 경우 해제하십시오. 오류가 여전히 발생하는지 테스트하십시오.
Microsoft 기술 자료 문서 307802를 검토하여 사용자 환경이 문서의 환경과 정확히 일치하는지 확인합니다. 정확히 일치하는 경우 환경 요소 중 하나를 변경하여 메시지 발생이 중지되는지 확인합니다. 환경이 문서와 더 이상 일치하지 않게 되었을 때 메시지 발생이 중지되면 그 메시지는 무시해도 안전합니다.
이름 | 설명 | 기본값 |
사용 | 워크플로를 사용하거나 사용하지 않도록 설정합니다. | 예 |
우선 순위 | 알림 우선 순위를 정의합니다. | 1 |
심각도 | 알림 심각도를 정의합니다. | 1 |
Target | Microsoft.SQLServer.2012.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 8510 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2012ID='{7F714A4C-B7CF-4665-B1B5-4D7A3E0613D0}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2012.Enlist_of_MSDTC_transaction_failed_1_5_Rule" Target="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2012ID='{7F714A4C-B7CF-4665-B1B5-4D7A3E0613D0}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>8510</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2012.Enlist_of_MSDTC_transaction_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>