Condividi tramite


Ereditarietà delle transazioni manuali

Se un oggetto con una transazione BYOT nel contesto crea un secondo oggetto , l'oggetto downstream può ereditare la transazione BYOT (se configurata per ereditare le transazioni). Il primo oggetto creato con il gateway BYOT deve essere configurato per "richiedere" o "supportare" le transazioni. Gli oggetti successivi nell'attività possono essere configurati in base ai requisiti dell'applicazione.

Per le transazioni automatiche, il runtime COM+ non tenta di eseguire il commit della transazione fino a quando l'oggetto radice non indica che è pronto (chiamando SetComplete prima di tornare da una chiamata). Gli utenti devono tenere presente che una transazione BYOT potrebbe eseguire il commit prematuro (in quanto il lavoro degli oggetti figlio non è stato completato), perché la "radice" non è in esecuzione nell'ambiente di runtime COM+ e la semantica di commit non è associata alla durata dell'oggetto. In generale, l'utente deve prestare attenzione a non violare il limite di sincronizzazione della transazione.

In caso contrario, si applica la semantica di commit COM+. COM+ non tenterà di eseguire il commit di una transazione mentre un oggetto all'interno di un limite di sincronizzazione è in chiamata. Inoltre, gli oggetti possono indicare la coerenza usando DisableCommit. Se si tenta di eseguire il commit di una transazione che include il lavoro di un oggetto denominato DisableCommit, la transazione interromperà.