Bring Your Own Transaction (BYOT)

BYOT consente di creare un componente con o di ereditare una transazione esterna. Ovvero, un componente che non dispone già di una transazione associata può acquisire una transazione. Attualmente, le transazioni MTS sono automatiche; se un'istanza del componente si trova in una transazione viene determinata in fase di creazione. Gli attributi transazionali di un componente e il relativo creatore determinano la transazione associata a una determinata istanza. In tutti i casi, MTS controlla la durata delle transazioni. COM+ estende questa opzione per consentire l'impostazione di una transazione DTC o TIP preesistente arbitraria come proprietà della transazione del contesto di un nuovo componente. In questo modo, i componenti configurati possono essere associati alle transazioni le cui durate sono controllate da un monitor TP, OTS o DBMS.

Nota

Le transazioni BYOT devono essere usate con cautela. In determinate situazioni, possono comportare una transazione che si estende su più domini di sincronizzazione, ovvero consentono il parallelismo con una transazione, causando una condizione di deadlock. Le transazioni automatiche, anziché le transazioni BYOT, sono il modello di programmazione preferito per i writer di componenti aziendali.

 

Le interfacce per le transazioni BYOT includono l'interfaccia ICreateWithTransactionEx e l'interfaccia ICreateWithTipTransactionEx. L'interfaccia ICreateWithTransactionEx crea un oggetto che viene inserito in una transazione manuale. L'interfaccia ICreateWithTipTransactionEx crea un oggetto che viene inserito all'interno di una transazione manuale usando transaction Internet Protocol (TIP).

Ereditarietà delle transazioni manuali