Freigeben über


Hinzufügen eines Kompensierungsblocks

Wenn Sie keine eigene Kompensierung hinzufügen, führt die Runtime-Engine eine Standardkompensierung aus, durch die für alle verschachtelten Transaktionen innerhalb der aktuellen Transaktion Kompensierungen aufgerufen werden. Zunächst wird die Kompensierung der zuletzt abgeschlossenen Transaktion aufgerufen. Anschließend werden alle älteren verschachtelten Transaktionen der Reihe nach kompensiert.

Dies gilt auch dann, wenn die Kompensation innerhalb einer Schleifenform erfolgt: Die Kompensationen werden in umgekehrter Reihenfolge ausgeführt. Die Kompensierung für die letzte Iteration der Schleife wird zuerst aufgerufen, anschließend wird die Kompensierung für die vorherige Iteration aufgerufen usw.

Achtung

Da für erfolgreiche Kompensierungen Daten im physikalischen Speicher gespeichert werden müssen, können Kompensierungen in Schleifen die Leistung beeinträchtigen. Bei einer großen Anzahl von Iterationen kann dies ein Problem darstellen.

Wenn die Standardreihenfolge nicht Ihren Anforderungen entspricht, können Sie einen eigenen Kompensierungshandler schreiben, um die Kompensierungshandler der verschachtelten Bereiche explizit in einer festgelegten Reihenfolge aufzurufen.

So fügen Sie einen Kompensierungsblock hinzu

  1. Klicken Sie mit der rechten Maustaste auf das Shape Bereich für die Transaktion, der Sie einen Kompensationsblock hinzufügen möchten, und klicken Sie dann auf Neuer Kompensationsblock.

    Hinweis

    Um einem Bereichs-Shape einen Kompensationsblock hinzuzufügen, muss die Transaction Type-Eigenschaft des Bereichs-Shapes auf Atomic oder Long Running festgelegt sein.

    Unmittelbar nach der zugeordneten Bereichsform wird der Orchestrierung ein Kompensationsblock hinzugefügt.

  2. Fügen Sie innerhalb des Kompensationsblock-Shapes Formen hinzu, um den Prozess zum Rückgängigmachen einer committeten Transaktion zu erstellen.