La règle déclenche une alerte lorsque SQL Server ne parvient pas à enregistrer une transaction distribuée, nouvelle ou existante.
Ce message apparaît lorsque SQL Server ne parvient pas à inscrire une transaction MSDTC (Microsoft Distributed Transaction Coordinator) nouvelle ou existante.
Plusieurs raisons principales peuvent expliquer ce type d’erreur. L’état de l’erreur, le code de résultat spécifique renvoyé avec l’erreur, ainsi que toutes les autres erreurs survenues à peu près en même temps, sont autant d’éléments qui permettent d’expliquer l’échec de l’inscription. L’échec de l’inscription résulte souvent d’une défaillance des communications, par exemple un problème de résolution de nom. Il peut également être dû au mode de codage de l’application appelante, ainsi qu’à un blocage ou à des problèmes de performances sur le serveur SQL Server.
Assurez-vous que le service MS DTC a démarré sur les deux ordinateurs impliqués dans la transaction MS DTC. Si le service MS DTC est en cluster, assurez-vous qu'il est en ligne dans l'Administrateur de cluster.
Examinez les journaux d'événements des serveurs impliqués dans la transaction MS DTC afin de déterminer si d'autres erreurs se sont produites en même temps que ce message. S'il existe d'autres erreurs, résolvez-les en premier lieu, car l'erreur actuelle est souvent la conséquence des autres erreurs.
Par défaut, l'accès réseau à MS DTC est désactivé sur Windows Server 2003. Si un ordinateur impliqué dans la transaction exécute Windows Server 2003, assurez-vous que MS DTC est activé. Pour plus d'informations sur l'activation de l'accès réseau à MS DTC dans Windows 2003, consultez l'article 817064 (peut être en anglais) dans la Base de connaissances Microsoft
Assurez-vous que les communications d'appel de procédure distante (RPC) entre les serveurs impliqués fonctionnent correctement.
Redémarrez les serveurs impliqués dans la transaction MS DTC afin de vider l'ensemble des informations d'adresses IP.
Assurez-vous que le délai d'attente de transaction du composant COM+ appelant est suffisamment long pour ne pas expirer. En effet, l'expiration du délai d'attente entraîne la tentative d'inscription d'un composant distinct dans une transaction ayant déjà expiré
Si vous avez activé l'option de configuration « lightweight pooling » (regroupement léger) de SQL Server (également appelée « mode fibre »), désactivez-la. Vérifiez si l'erreur continue à se produire.
Si vous avez activé l'option de configuration « priority boost » (renforcement de priorité) de SQL Server, désactivez-la. Vérifiez si l'erreur continue à se produire.
Consultez l'article 307802 dans la Base de connaissances Microsoft pour déterminer si votre environnement correspond exactement à l'environnement décrit dans cet article. Si l'environnement est identique, essayez de modifier l'un de ses facteurs pour déterminer si l'erreur continue à se produire. Si l'erreur ne se produit plus dès que l'environnement n'est plus identique à celui décrit dans l'article, vous pouvez ignorer le message en toute sécurité.
Article 817064 de la Base de connaissances
Article 307802 de la Base de connaissances
Nom | Description | Valeur par défaut |
Activé |
| Oui |
Génère des alertes |
| Oui |
Priorité |
| 1 |
Severité |
| 1 |
Target | Microsoft.SQLServer.2014.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 8510 | ||
Event Source | $Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2014ID='{7F714A4C-B7CF-4665-B1B5-4D7A3E0613D0}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2014.Enlist_of_MSDTC_transaction_failed_1_5_Rule" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{7F714A4C-B7CF-4665-B1B5-4D7A3E0613D0}';MOM2014GroupID={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">
<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="SQL2014Core!Microsoft.SQLServer.2014.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.2014.Enlist_of_MSDTC_transaction_failed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>