Compartir a través de


Enlistment Clase

Definición

Facilita la comunicación entre un participante de la transacción inscrito y el administrador de transacciones durante la fase final de la transacción.

public ref class Enlistment
public class Enlistment
type Enlistment = class
Public Class Enlistment
Herencia
Enlistment
Derivado

Ejemplos

En el ejemplo siguiente se muestra una implementación de la IEnlistmentNotification interfaz y cuándo se debe llamar al Done método .

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();
    }
}
Public Class EnlistmentClass
    Implements IEnlistmentNotification

    Public Sub Prepare(ByVal myPreparingEnlistment As PreparingEnlistment) Implements System.Transactions.IEnlistmentNotification.Prepare
        Console.WriteLine("Prepare notification received")

        'Perform transactional work

        'If work finished correctly, reply with prepared
        myPreparingEnlistment.Prepared()
    End Sub

    Public Sub Commit(ByVal myEnlistment As Enlistment) Implements System.Transactions.IEnlistmentNotification.Commit
        Console.WriteLine("Commit notification received")

        'Do any work necessary when commit notification is received

        'Declare done on the enlistment
        myEnlistment.Done()
    End Sub

    Public Sub Rollback(ByVal myEnlistment As Enlistment) Implements System.Transactions.IEnlistmentNotification.Rollback
        Console.WriteLine("Rollback notification received")

        'Do any work necessary when rollback notification is received

        'Declare done on the enlistment
        myEnlistment.Done()
    End Sub

    Public Sub InDoubt(ByVal myEnlistment As Enlistment) Implements System.Transactions.IEnlistmentNotification.InDoubt
        Console.WriteLine("In doubt notification received")

        'Do any work necessary when indout notification is received

        'Declare done on the enlistment
        myEnlistment.Done()
    End Sub
End Class

Comentarios

Cuando se invocan los EnlistVolatile métodos y EnlistDurable del Transaction objeto para inscribir a un participante en una transacción, devuelven este objeto que describe la inscripción.

Durante la fase final de la confirmación de la transacción, el administrador de transacciones pasa este objeto a un administrador de recursos que implementa la IEnlistmentNotification interfaz que se ha inscrito en una transacción. En concreto, el administrador de transacciones llama al Commit método o Rollback al participante, dependiendo de si este último ha decidido confirmar o revertir la transacción. El participante debe llamar al Done método de este objeto para que el administrador de transacciones sepa que ha completado su trabajo.

Una inscripción puede llamar al Done método en cualquier momento antes de llamar a Prepared en la fase de preparación. Al hacerlo, la inscripción se convierte en un voto de solo lectura, lo que significa que vota la confirmación en la transacción, pero no necesita recibir el resultado final. Tenga en cuenta que, después de llamar al Done método , el participante inscrito no recibe más notificaciones del administrador de transacciones.

Métodos

Done()

Indica que el participante de la transacción ha finalizado su trabajo.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para la ejecución de subprocesos.

Consulte también