Questo messaggio viene generato quando il tentativo di integrare una transazione Microsoft Distributed Transaction Coordinator (MSDTC) nuova o preesistente ha esito negativo.
Le cause del problema possono essere diverse. Lo stato dell'errore, il codice risultato specifico restituito con l'errore e gli eventuali altri errori generati quasi contemporaneamente all'errore possono aiutare a determinare le cause dell'esito negativo dell'integrazione nell'ambiente. Un tentativo non riuscito di integrazione indica spesso un problema relativo alle comunicazioni, ad esempio un errore nella risoluzione dei nomi. È inoltre possibile che il problema sia dovuto al tipo di codifica dell'applicazione chiamante oppure a problemi di blocchi o di prestazioni sul lato SQL Server.
Verificare che MSDTC sia avviato su entrambi i computer coinvolti nella transazione MSDTC. Se il servizio MSDTC è inserito in un cluster, verificare che sia online in Amministrazione cluster.
Esaminare i registri eventi dei server coinvolti nella transazione MSDTC per controllare se si sono verificati altri errori contemporaneamente a questo messaggio. Se sono presenti altri errori, risolvere innanzitutto questi, in quanto l'errore qui descritto è spesso un effetto secondario di altri errori.
Per impostazione predefinita, in Windows Server 2003 l'accesso MSDTC alla rete è disabilitato. Se in uno dei computer interessati è in esecuzione Windows 2003, verificare che MSDTC sia stato abilitato. Per ulteriori informazioni sull'abilitazione dell'accesso MSDTC alla rete in Windows 2003, vedere l'articolo 817064 della Microsoft Knowledge Base.
Verificare che le comunicazioni RPC tra i server coinvolti funzionino correttamente.
Riavviare i server coinvolti nella transazione MSDTC per cancellare tutte le informazioni relative agli indirizzi IP.
Verificare che le impostazioni di timeout della transazione per il componente COM+ chiamante siano sufficienti a evitare un timeout che generi il tentativo di integrazione di un componente separato in una transazione per la quale si è già verificato il timeout.
Se è attivata l'opzione di configurazione "lightweight pooling" di SQL Server, nota anche come "modalità fiber", disattivarla. Controllare se l'errore continua a verificarsi.
Se è attivata l'opzione di configurazione "priority boost" di SQL Server, disattivarla. Controllare se l'errore continua a verificarsi.
Vedere l'articolo 307802 della Microsoft Knowledge Base per verificare se l'ambiente in uso corrisponde a quello descritto nell'articolo. Se corrisponde, provare a modificare uno dei fattori di ambiente per vedere se il messaggio di errore non viene più visualizzato. Se il messaggio di errore non viene più visualizzato una volta che l'ambiente non corrisponde più a quello descritto nell'articolo, può essere ignorato.
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>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>