Héritage de transactions manuelles
Si un objet avec une transaction BYOT dans son contexte crée un deuxième objet, l’objet en aval peut hériter de la transaction BYOT (s’il est configuré pour hériter des transactions). Le premier objet créé à l’aide de la passerelle BYOT doit être configuré pour « exiger » ou « prendre en charge » les transactions. Les objets suivants de l’activité peuvent être configurés en fonction des exigences de l’application.
Pour les transactions automatiques, le runtime COM+ ne tente pas de valider la transaction tant que l’objet racine n’indique pas qu’elle est prête (en appelant SetComplete avant de retourner à partir d’un appel). Les utilisateurs doivent savoir qu’une transaction BYOT peut être validée prématurément (en ce que le travail des objets enfants n’est pas terminé), car la « racine » ne s’exécute pas sous l’environnement d’exécution COM+ et la sémantique de validation n’est pas liée à la durée de vie de l’objet. En général, l’utilisateur doit veiller à ne pas violer la limite de synchronisation de la transaction.
Sinon, la sémantique de validation COM+ s’applique. COM+ ne tente pas de valider une transaction pendant qu’un objet dans une limite de synchronisation est en appel. En outre, les objets peuvent indiquer leur cohérence à l’aide de DisableCommit. Si une tentative est effectuée pour valider une transaction qui inclut le travail d’un objet qui a appelé DisableCommit, la transaction abandonne.