Condividi tramite


Configurazione del server: risoluzione in-doubt xact

Si applica a: SQL Server Istanza gestita di SQL di Azure SQL Server nella VM di Azure

Usare l'opzionein-doubt xact resolution per controllare il risultato predefinito delle transazioni che non possono essere risolte da Microsoft Distributed Transaction Coordinator (MS DTC). L'impossibilità di risolvere le transazioni potrebbe essere dovuta al tempo di inattività di MS DTC oppure a un risultato sconosciuto della transazione al momento del recupero.

Nella tabella seguente vengono descritti i possibili valori del risultato della risoluzione di una transazione in dubbio.

Valore risultato Descrizione
0 No presumption (nessuna presupposizione). L'operazione di recupero ha esito negativo se MS DTC non riesce a risolvere alcuna transazione in dubbio.
1 Presume commit (presupposizione commit). Si presuppone che sia stato eseguito il commit di qualsiasi transazione in dubbio MS DTC.
2 Presume abort (presupposizione interruzione). Si presuppone l'interruzione di qualsiasi transazione in dubbio MS DTC.

Per ridurre al minimo la possibilità di tempi di inattività prolungati, un amministratore può configurare questa opzione per presupporre il commit o l'interruzione, come illustrato nell'esempio seguente.

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

In alternativa, è possibile lasciare l'opzione predefinita, no presumption, e consentire il verificarsi dell'errore dell'operazione di recupero per essere a conoscenza di un errore DTC, come illustrato nell'esempio seguente.

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’opzione in-doubt xact resolution è un'opzione avanzata. Se per modificare le impostazioni si usa la stored procedure di sistema sp_configure, sarà possibile modificare in-doubt xact resolution solo quando show advanced options è impostato su 1. L'impostazione diventa effettiva immediatamente e non richiede il riavvio del server.

Nota

Configurando questa opzione in modo coerente in tutte le istanze di SQL Server coinvolte in qualsiasi transazione distribuita, è possibile evitare inconsistenze dei dati.