Partilhar via


Configuração do servidor: resolução xact na dúvida

Aplica-se a:SQL ServerAzure SQL Managed InstanceSQL Server on Azure Virtual Machines

Use a in-doubt xact resolution opção para controlar o resultado padrão de transações que o Microsoft Distributed Transaction Coordinator (MS DTC) não consegue resolver. A incapacidade de resolver transações pode estar relacionada com o tempo de inatividade do MS DTC ou com um resultado de transação desconhecido no momento da recuperação.

A tabela a seguir lista os valores de resultado possíveis para resolver uma transação em dúvida.

Valor do resultado Description
0 Inexistência de presunção. A recuperação falhará se o MS DTC não conseguir resolver quaisquer transações em dúvida.
1 Presunção de cometimento. Presume que todas as transações em dúvida do MS DTC são cometidas.
2 Presume-se abortar. Presume que todas as transações em dúvida do MS DTC são abortadas.

Para minimizar a possibilidade de tempo de inatividade estendido, um administrador pode optar por configurar essa opção para presumir confirmar ou presumir abortar, conforme mostrado no exemplo a seguir.

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

Como alternativa, o administrador pode querer deixar o padrão (sem presunção) e permitir que a recuperação falhe para ser informado de uma falha DTC, conforme mostrado no exemplo a seguir.

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

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

Observação

A configuração consistente dessa opção em todas as instâncias do SQL Server envolvidas em quaisquer transações distribuídas ajuda a evitar inconsistências de dados.