Configuração do servidor: in-doubt xact resolution

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure SQL Server na VM do Azure

Use a in-doubt xact resolutionopção para controlar o resultado padrão de transações que o Coordenador de Transações Distribuídas da Microsoft (MS DTC) não consegue resolver. A incapacidade de resolver transações pode estar relacionada ao tempo de desligamento do MS DTC ou a um resultado de transação desconhecido no momento da recuperação.

A tabela seguinte lista os possíveis valores de resultado para resolver uma transação incerta.

Valor de resultado Descrição
0 Nenhuma suposição. A recuperação falhará se o MS DTC não conseguir resolver nenhuma transação incerta.
1 Suponha confirmação. Supõe-se que alguma transação incerta de MS DTC esteja comprometida.
2 Suponha anulação. Supõe-se que alguma transação incerta de MS DTC tenha sido anulada.

Para minimizar a possibilidade de tempo de inatividade estendido, um administrador pode configurar essa opção para supor confirmação ou anulação, como mostrado no exemplo seguinte.

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

Como alternativa, o administrador pode deixar o padrão (nenhuma suposição) e permitir a falha da recuperação para ser alertado sobre uma falha de DTC, como mostrado no exemplo seguinte.

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

A opção in-doubt xact resolution é uma opção avançada. Se você usar o sp_configureprocedimento armazenado do sistema para alterar a configuração, é possível alterar in-doubt xact resolution somente quando show advanced options estiver definido como 1. A configuração entra em vigor imediatamente sem a reinicialização do servidor.

Observação

A configuração consistente desta opção em todas as instâncias do SQL Server envolvidas em qualquer transação distribuída ajudará a evitar divergências de dados.