Konfiguracja serwera: wątpliwe rozwiązanie xact

Dotyczy:SQL ServerAzure SQL Managed InstanceProgram SQL Server na maszynach wirtualnych platformy Azure

in-doubt xact resolution Użyj opcji , aby kontrolować domyślny wynik transakcji, których program Microsoft Distributed Transaction Coordinator (MS DTC) nie może rozpoznać. Brak możliwości rozwiązania transakcji może być związany z czasem awarii usługi MS DTC lub nieznanym wynikiem transakcji w czasie odzyskiwania.

W poniższej tabeli wymieniono możliwe wartości wyniku umożliwiające rozwiązanie transakcji bez wątpienia.

Wartość wyniku Description
0 Brak domniemania. Odzyskiwanie nie powiedzie się, jeśli usługa MS DTC nie może rozwiązać żadnych wątpliwych transakcji.
1 Zakładaj zatwierdzenie. Zakłada, że wszelkie transakcje MS DTC wątpliwe są zatwierdzane.
2 Przyjmij przerwanie. Zakłada, że wszelkie transakcje ms DTC wątpliwe są przerywane.

Aby zminimalizować ryzyko długotrwałego przestoju, administrator może skonfigurować tę opcję tak, aby przyjmowała ustawienie presume commit albo presume abort, jak pokazano w poniższym przykładzie.

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

Alternatywnie administrator może chcieć pozostawić ustawienie domyślne (bez założenia) i dopuścić do niepowodzenia odzyskiwania, aby zostać poinformowanym o awarii DTC, jak pokazano w poniższym przykładzie.

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

Opcja in-doubt xact resolution jest opcją zaawansowaną. Jeśli używasz systemowej procedury składowanej sp_configure, aby zmienić ustawienie, możesz zmienić in-doubt xact resolution tylko wtedy, gdy show advanced options ma wartość 1. Ustawienie zostanie zastosowane natychmiast bez ponownego uruchomienia serwera.

Uwaga / Notatka

Spójna konfiguracja tej opcji we wszystkich wystąpieniach programu SQL Server zaangażowanych w wszelkie transakcje rozproszone pomaga uniknąć niespójności danych.