Enlistment Classe

Definição

Facilita a comunicação entre um participante de transação inscrito e o gerenciador de transação durante a fase final da transação.

public class Enlistment
Herança
Enlistment
Derivado

Exemplos

O exemplo a seguir mostra uma implementação da IEnlistmentNotification interface e quando o Done método deve ser chamado.

class myEnlistmentClass : IEnlistmentNotification
{
    public void Prepare(PreparingEnlistment preparingEnlistment)
    {
        Console.WriteLine("Prepare notification received");

        //Perform transactional work

        //If work finished correctly, reply prepared
        preparingEnlistment.Prepared();

        // otherwise, do a ForceRollback
        preparingEnlistment.ForceRollback();
    }

    public void Commit(Enlistment enlistment)
    {
        Console.WriteLine("Commit notification received");

        //Do any work necessary when commit notification is received

        //Declare done on the enlistment
        enlistment.Done();
    }

    public void Rollback(Enlistment enlistment)
    {
        Console.WriteLine("Rollback notification received");

        //Do any work necessary when rollback notification is received

        //Declare done on the enlistment
        enlistment.Done();
    }

    public void InDoubt(Enlistment enlistment)
    {
        Console.WriteLine("In doubt notification received");

        //Do any work necessary when indout notification is received
        
        //Declare done on the enlistment
        enlistment.Done();
    }
}

Comentários

Quando os métodos e EnlistDurable os Transaction EnlistVolatile métodos do objeto são invocados para inscrever um participante em uma transação, eles retornam esse objeto descrevendo a inscrição.

Durante a fase final da confirmação da transação, o gerenciador de transações passa esse objeto para um gerenciador de recursos implementando a IEnlistmentNotification interface que se inscreveu em uma transação. Especificamente, o gerenciador de transações chama o Commit método ou o Rollback método do participante, dependendo se ele decidiu confirmar ou reverter a transação. O participante deve chamar o Done método desse objeto para informar ao gerenciador de transações que concluiu seu trabalho.

Um alistamento pode chamar o método a Done qualquer momento antes de ser chamado Prepared na fase de preparação. Ao fazer isso, a inscrição está lançando um voto somente leitura, o que significa que ela vota confirmação sobre a transação, mas não precisa receber o resultado final. Observe que, depois que o Done método é chamado, o participante inscrito não recebe mais notificações do gerenciador de transações.

Métodos

Done()

Indica que o participante da transação concluiu seu trabalho.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1

Acesso thread-safe

Este tipo é thread-safe.

Confira também