Partager via


Ajout d'un bloc de compensation

Si vous n'ajoutez pas votre propre compensation, le moteur d'exécution effectue une compensation par défaut qui appelle les compensations de toutes les transactions imbriquées au sein de la transaction actuelle. Il appelle d'abord la compensation de la transaction terminée la plus récente, puis remonte jusqu'à-ce que toutes les transactions imbriquées aient été compensées.

Cela est vrai même lorsque votre compensation a lieu à l’intérieur d’une forme de boucle : les compensations sont exécutées dans l’ordre inverse. La compensation de la dernière itération de la boucle sera la première appelée, puis la compensation de l'itération précédente sera appelée, et ainsi de suite.

Attention

Vu que les données doivent être conservées dans la mémoire physique pour que la compensation fonctionne, l'utilisation de compensations dans une boucle peut affecter les performances, ce qui peut poser problème dans le cas d'un nombre important d'itérations.

Si l'ordre par défaut ne convient pas à vos besoins, vous pouvez écrire votre propre gestionnaire de compensation qui appellera explicitement les gestionnaires de compensation des étendues imbriquées dans l'ordre de votre choix.

Pour ajouter un bloc de compensation

  1. Cliquez avec le bouton droit sur la forme Étendue de la transaction à laquelle vous souhaitez ajouter un bloc de compensation, puis cliquez sur Nouveau bloc de compensation.

    Notes

    Pour ajouter un bloc de compensation à une forme d’étendue , la propriété Type de transaction de la forme Étendue doit être définie sur Atomic ou Long Running.

    Un bloc de compensation est ajouté à l’orchestration immédiatement après la forme Étendue associée.

  2. Dans la forme Bloc de compensation , ajoutez des formes pour créer le processus d’annulation d’une transaction validée.