Compartir a través de


Configuración de servidor: resolución de transacciones Xact dudosas

Se aplica a: SQL Server Azure SQL Managed Instance SQL Server on Azure VM

Use la opción in-doubt xact resolution para controlar el resultado predeterminado de las transacciones que el Coordinador de transacciones distribuidas de Microsoft (MS DTC) no consigue resolver. La incapacidad de resolver estas transacciones puede estar relacionada con un tiempo de inactividad de MS DTC o con un resultado de transacción inesperado en el momento de la recuperación.

La siguiente tabla enumera los valores de resultado posibles para resolver una transacción dudosa.

Valor del resultado Descripción
0 Ninguna suposición. La recuperación no es correcta si MS DTC no puede resolver ninguna transacción dudosa.
1 Suponer la confirmación. Se presupone que las transacciones MS DTC dudosas se han confirmado.
2 Suponer anulación. Se presupone que las transacciones MS DTC dudosas se han anulado.

Para minimizar la posibilidad de sufrir tiempos de inactividad prolongados, un administrador puede configurar esta opción para suponer una confirmación o una anulación, tal y como se muestra en el siguiente ejemplo.

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

De forma alternativa, un administrador puede dejar el valor predeterminado (ninguna suposición) y permitir que la recuperación no sea correcta para dejar constancia del error del DTC, tal y como se muestra en el siguiente ejemplo.

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

La opción in-doubt xact resolution es una opción avanzada. Si usa el procedimiento almacenado del sistema sp_configure para cambiar la configuración, solo puede cambiar el valor in-doubt xact resolution si show advanced options está establecido en 1. La configuración surte efecto inmediatamente, sin necesidad de reiniciar un servidor.

Nota:

La configuración coherente de esta opción en todas las instancias de SQL Server implicadas en cualquier transacción distribuida ayuda a evitar incoherencias en los datos.