Partager via


Configuration de serveur : in-doubt xact resolution

S’applique à :SQL ServerAzure SQL Managed InstanceSQL Server sur des machines virtuelles Azure

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.

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'in-doubt xact resolution', 2; -- presume abort
GO

RECONFIGURE;
GO

EXECUTE 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.

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'in-doubt xact resolution', 1; -- presume commit
GO

RECONFIGURE;
GO

ALTER DATABASE pubs SET ONLINE -- run recovery again
;
GO

EXECUTE sp_configure 'in-doubt xact resolution', 0 -- back to no assumptions
;
GO

EXECUTE 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.