Enlistment Klass

Definition

Underlättar kommunikationen mellan en registrerad transaktionsdeltagare och transaktionshanteraren under den sista fasen av transaktionen.

public ref class Enlistment
public class Enlistment
type Enlistment = class
Public Class Enlistment
Arv
Enlistment
Härledda

Exempel

I följande exempel visas en implementering av IEnlistmentNotification gränssnittet och när Done metoden ska anropas.

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

Kommentarer

EnlistVolatile När objektets metoder EnlistDurable och Transaction anropas för att registrera en deltagare i en transaktion returnerar de det här objektet som beskriver enlistningen.

Under den sista fasen av transaktionsincheckningen skickar transaktionshanteraren det här objektet till en resurshanterare som implementerar IEnlistmentNotification gränssnittet som har registrerats i en transaktion. Mer specifikt anropar transaktionshanteraren antingen CommitRollback eller -metoden för deltagaren, beroende på om den senare har beslutat att checka in eller återställa transaktionen. Deltagaren bör anropa Done metoden för det här objektet för att låta transaktionshanteraren veta att den har slutfört sitt arbete.

En registrering kan anropa Done metoden när som helst innan den anropas Prepared i förberedelsefasen. Genom att göra det lägger värnplikten en skrivskyddad röst, vilket innebär att den röstar för transaktionen men inte behöver få det slutliga resultatet. Observera att när Done metoden har anropats får den registrerade deltagaren inga ytterligare meddelanden från transaktionshanteraren.

Metoder

Name Description
Done()

Anger att transaktionsdeltagaren har slutfört sitt arbete.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för

Trådsäkerhet

Den här typen är trådsäker.

Se även