ビジネスプロセスには入れ子になった複数のトランザクションが含まれる場合があります。含まれる多数のトランザクションがすでに処理されたあとに、全体的なビジネストランザクションが失敗するか、取り消される場合があります。このような場合、プロセスの実行による影響を元に戻す必要があります。たとえば、旅行計画プロセスに、それぞれチケット、ホテル、車を予約する複数のトランザクションが含まれる場合があります。旅行がキャンセルされた場合、トランザクションを適切な順序で取り消すことで、予約トランザクションを補償する必要があります。このような場合、WS-BPEL では、補償アクションを定義できます。
補償ハンドラは、補償アクションを実行するアクティビティーのコンテナです。スコープ要素または呼び出し要素に補償ハンドラを 1 つ追加できます。補償ハンドラはスコープを補償アクティビティーまたは補償アクティビティーから呼び出すことができます。
スコープ要素または呼び出し要素に補償ハンドラを追加するには、次の手順に従います。