Sdílet prostřednictvím


Gewusst wie: Senden von Meldungen in internen Transaktionen

Aktualisiert: November 2007

Interne Transaktionen betreffen nur Message Queuing-Ressourcen und werden in Message Queuing vollständig mithilfe der MessageQueueTransaction-Klasse verwaltet. Sie instanziieren eine Instanz von MessageQueueTransaction, um den Transaktionsprozess zu behandeln, und übergeben sie an die Meldung, die Sie als Transaktion senden möchten.

Der Transaktionsprozess wird mit folgenden Methoden gesteuert:

Methode

Verwendung

Begin

Gibt den Beginn einer Transaktion an, die aus einer oder mehr Meldungen und Operationen besteht.

Commit

Wird verwendet, um einen Commit für eine Transaktion durchzuführen, wenn alle darin enthaltenen Meldungsoperationen erfolgreich ausgeführt wurden.

Abort

Führt während der Fehlerüberprüfung für eine Transaktion einen Rollback aus.

y93c2k87.alert_note(de-de,VS.90).gifHinweis:

Eine nicht verbundene oder volle Warteschlange wird nicht als Fehler betrachtet.

In den meisten Fällen sollte der Transaktionscode innerhalb einer Try...Catch...Finally-Anweisung (Visual Basic)-Anweisung (oder try-catch-finally (C#-Referenz)-Anweisung) eingeschlossen werden. Damit können Sie die Transaktion im Try-Teil der Anweisung angeben und beim Auftreten von Fehlern über die Catch-Anweisung die Abort-Methode auslösen. Ein Beispiel für dieses Muster finden Sie im nachstehenden Code.

So senden Sie Meldungen in einer internen Transaktion

  1. Erstellen Sie eine Instanz der MessageQueue-Komponente, und legen Sie deren Path-Eigenschaft auf die Warteschlange fest, auf die Sie verweisen möchten. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Instanzen von MessageQueue-Komponenten.

  2. Erstellen Sie eine Instanz der MessageQueueTransaction-Klasse, um die Transaktion zu steuern.

  3. Rufen Sie die Begin-Methode der MessageQueueTransaction-Klasse auf.

  4. Definieren Sie die Meldungen, die Sie nach dem Aufrufen von Begin senden möchten. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Instanzen von MessageQueue-Komponenten.

  5. Nach dem Senden der letzten Meldung rufen Sie für die MessageQueueTransaction-Instanz Commit auf, um die Transaktion zu schließen.

  6. Schließen Sie die gesamte Transaktion in einen Try...Catch-Fehlerüberprüfungscode ein, um auftretende Fehler zu behandeln.

  7. Wenn Sie einen Fehler feststellen, führen Sie für die Transaktion einen Rollback durch, indem Sie die Abort-Methode aufrufen.

    Der Code kann wie folgt aussehen:

    Dim transaction As New System.Messaging.MessageQueueTransaction
    transaction.Begin()
    Try
        MessageQueue1.Send("Message1", "Label1", transaction)
        MessageQueue1.Send("Message2", "Label2", transaction)
        MessageQueue1.Send("Message3", "Label3", transaction)
        transaction.Commit()
    Catch
        transaction.Abort()
    End Try
    
         System.Messaging.MessageQueueTransaction transaction =
                new System.Messaging.MessageQueueTransaction();
            transaction.Begin();
            try
            {
                messageQueue1.Send("Message1", "Label1", transaction);
                messageQueue1.Send("Message2", "Label2", transaction);
                messageQueue1.Send("Message3", "Label3", transaction);
                transaction.Commit();
            }
            catch
            {
                transaction.Abort();
            }
    

Siehe auch

Aufgaben

Gewusst wie: Erstellen von Transaktionswarteschlangen

Gewusst wie: Erstellen von Instanzen von MessageQueue-Komponenten

Konzepte

Transaktionale Meldungsverarbeitung

Weitere Ressourcen

Senden und Serialisieren von Meldungen