Compensation Handler

Ein Compensation Handler wird innerhalb eines Scopes (siehe Scope) oder innerhalb einer invoke Activity deklariert und enthält eine Activity.

Ein Compensation Handler kann auf die Daten seines Scopes zugreifen. Er sieht aber den Zustand der Daten so, wie dieser am Ende der Ausführung des Scopes war. Der Compensation Handler kann keine Änderung an den Daten vornehmen, die andere Activities in der Process Instance sehen könnten.

Wenn für einen Scope kein Compensation Handler angegeben wird, dann wird ein Standard Compensation Handler verwendet. Dieser tut nichts anderes, als die Compensation Handler der unmittelbar eingeschlossenen Scopes auszulösen.

Compensation Handler können mit der compensate Activity ausgelöst werden.

Wenn innerhalb eines Compensation Handlers eine Ausnahme auftritt, die nicht behandelt wird, dann wird diese zu dem Fault- oder Compensation Handler propagiert, der den Compensation Handler aufgerufen hat.

<compensationHandler>?
activity
</compensationHandler>