Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um gestor de recursos, um cliente transacional ou a KTM podem reverter uma transação se determinarem que a transação não deve ser confirmada (normalmente porque foi detetado um erro).
Para reverter uma transação, um gerente de recursos pode chamar ZwRollbackEnlistment. Depois que o gerenciador de recursos tiver chamado ZwCreateEnlistment para se alistar em uma transação, ele poderá reverter a transação a qualquer momento antes de chamar ZwPrepareComplete.
Os clientes transacionais podem reverter suas transações chamando ZwRollbackTransaction. Depois que um cliente transacional chama ZwCreateTransaction para criar uma transação, ele pode reverter a transação a qualquer momento antes de chamar ZwCommitTransaction.
Além disso, um cliente transacional pode definir um valor de tempo limite para uma transação chamando ZwSetInformationTransaction. A KTM reverte a transação se ela não tiver sido confirmada no período de tempo especificado.
Quando é feita uma chamada para ZwRollbackEnlistment ou ZwRollbackTransaction ou quando um valor de tempo limite é excedido, a KTM envia uma notificação de TRANSACTION_NOTIFY_ROLLBACK a todos os gestores de recursos.
Quando cada gerente de recursos recebe uma notificação de TRANSACTION_NOTIFY_ROLLBACK, ele deve fazer o seguinte:
Restaure os dados da transação para o estado em que se encontravam antes de o gestor de recursos se ter inscrito na transação.
Normalmente, um gerenciador de recursos restaura os dados da transação copiando os dados iniciais salvos da transação do fluxo de log para o armazenamento público e permanente do banco de dados. Para obter mais informações sobre como usar fluxos de log, consulte Usando fluxos de log com o KTM.
Chame ZwRollbackComplete.
Depois de chamar ZwRollbackComplete, o gerenciador de recursos deve chamar ZwClose para fechar o identificador de alistamento.
Se um gerente de recursos iniciou a operação de reversão, ele deve usar sua interface de cliente para informar o cliente de que a transação falhou.