Partage via


Configuration de serveur : in-doubt xact resolution

S’applique à : Base de données Azure SQL Azure SQL Managed Instance SQL Server on Azure VM

Utilisez l’option in-doubt xact resolution pour contrôler le résultat par défaut des transactions que Microsoft Distributed Transaction Coordinator (MS DTC) ne peut pas résoudre. L'incapacité à résoudre des transactions peut être liée au temps d'inactivité MS DTC ou à un résultat de transaction inattendu au moment de la récupération.

Le tableau suivant récapitule les valeurs de résultat possibles pour résoudre une transaction incertaine.

Valeur du résultat Description
0 Pas de présomption. La récupération échoue si MS DTC ne peut pas résoudre les transactions incertaines.
1 Validation présumée. Considère que toutes les transactions incertaines de MS DTC sont validées.
2 Abandon présumé. Considère que toutes les transactions incertaines de MS DTC ont échoué.

Pour réduire l'éventualité d'un temps d'inactivité prolongé, l'administrateur peut décider de configurer cette option pour présumer la validation ou l'abandon, comme dans l'exemple suivant.

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'in-doubt xact resolution', 2; -- presume abort
GO
RECONFIGURE;
GO
sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO

L'administrateur peut aussi conserver la valeur par défaut (pas de présomption) et autoriser l'échec de la récupération afin d'être averti en cas de défaillance du DTC, comme dans l'exemple suivant.

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'in-doubt xact resolution', 1; -- presume commit
GO
RECONFIGURE
GO
ALTER DATABASE pubs SET ONLINE -- run recovery again
GO
sp_configure 'in-doubt xact resolution', 0 -- back to no assumptions
GO
sp_configure 'show advanced options', 0
GO
RECONFIGURE
GO

L’option in-doubt xact resolution est une option avancée. Si vous utilisez la procédure stockée système sp_configure pour changer sa valeur, vous ne pouvez modifier l’option in-doubt xact resolution que si l’option show advanced options est définie sur 1. Le paramètre prend effet immédiatement (sans redémarrage du serveur).

Remarque

Une configuration identique de cette option dans toutes les instances de SQL Server impliquées dans les transactions distribuées permet d’éviter des incohérences dans les données.