Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Una transazione è un oggetto che definisce un'unità logica di lavoro. La transazione è attiva fino a quando è presente un handle che fa riferimento alla transazione e viene considerato attivo se la transazione non è ancora stata sottoposta a commit o rollback. Se viene creata una transazione e tutti gli handle in esso sono stati chiusi prima che si verifichi un commit o un rollback, verrà eseguito il rollback della transazione.
Si consideri il caso di un client transazionale in modalità utente che crea una transazione per definire l'ambito delle operazioni, quindi esegue gli aggiornamenti in uno o più gestori risorse. Si verifica quanto segue:
Il client chiama la funzione CreateTransaction per creare la transazione e riceve un handle per tale transazione come valore restituito.
La transazione può essere aperta o ereditata da un numero qualsiasi di processi; ogni processo è quindi coinvolto nella transazione. L'errore di uno di questi processi causerà l'interruzione della transazione.
Questa transazione potrebbe non essere ancora persistente. Solo le transazioni che hanno raggiunto lo stato preparato devono essere recuperate in caso di errori di sistema se la transazione utilizza la registrazione presunta di interruzione.
Il client deve passare una transazione in modo esplicito a Resource Manager.
Il client esegue tutte le operazioni transazionali con una o più macchine virtuali, ad esempio file system transazionali.
Il client chiama la funzionecommittransaction.
Il gestore delle risorse riceve notifiche da KTM per preparare ed eseguire il commit dei dati.
Transazioni e thread
Le transazioni non sono uguali ai thread. Più thread o processi possono far parte di una singola transazione. Viceversa, un thread può far parte di più transazioni diverse in momenti diversi.
Funzioni di transazione
Le funzioni seguenti vengono usate con le transazioni.
| Funzione | Descrizione |
|---|---|
| CommitTransaction | Richiede il commit della transazione specificata. |
| CommitTransactionAsync | Richiede il commit della transazione specificata. |
| CreateTransaction | Crea un nuovo oggetto transazione. |
| GetTransactionInformation | Restituisce le informazioni richieste sulla transazione specificata. |
| OpenTransaction | Apre una transazione esistente. |
| RollbackTransaction | Richiede il rollback della transazione specificata. |
| RollbackTransactionAsync | Richiede il rollback della transazione specificata. Questa funzione restituisce in modo asincrono. |
| SetTransactionInformation | Imposta le informazioni sulla transazione per la transazione specificata. |