Limiti delle transazioni

I limiti di una transazione definiscono l'ambito della transazione stessa. Gli oggetti all'interno dei limiti di una transazione condividono uno stesso identificatore di transazione.

All'esecuzione di una transazione possono prendere parte varie risorse che supportano le transazioni. Se ad esempio nell'ambito di una transazione l'applicazione si connette a un database, la transazione includerà tale risorsa e i limiti della transazione verranno estesi in modo da includere il server del database. È possibile progettare le transazioni in modo che si estendano a processi e computer diversi. I limiti delle transazioni rappresentano così un'astrazione che consente di garantire la coerenza anche a livello di più processi e computer differenti.

Il controllo che è possibile esercitare sui limiti di una transazione varia a seconda del modello di transazione selezionato per l'applicazione: manuale o automatico. Nel caso di una transazione manuale è possibile controllare i limiti mediante istruzioni esplicite che fissano l'inizio e la fine della transazione stessa. Dall'interno dei limiti di una transazione è possibile iniziare una seconda transazione, detta transazione nidificata. La transazione principale non raggiunge il commit finché non l'hanno raggiunto tutte le relative transazioni subordinate.

Nel caso di una transazione automatica i limiti vengono gestiti senza alcun intervento da parte dell'utente, sulla base di un attributo dichiarativo impostato per ciascun componente. Una transazione include automaticamente gli oggetti per i quali è stata impostata la partecipazione alle transazioni e ignora viceversa gli oggetti per i quali è stata impostata l'esecuzione esterna alle transazioni. Non è possibile nidificare le transazioni quando si fa uso del modello di transazione automatico.

Vedere anche

Nozioni fondamentali sull'elaborazione delle transazioni | Modelli di transazione