Transactions
Une transaction est un objet qui définit une unité logique de travail. La transaction est active tant qu’il existe un handle référençant la transaction et qu’elle est considérée comme active si la transaction n’a pas encore été validée ou restaurée. Si une transaction est créée et que tous les handles qu’elle contient ont été fermés avant qu’une validation ou une restauration ne se produise, la transaction est restaurée.
Considérez le cas d’un client transactionnel en mode utilisateur qui crée une transaction pour étendre ses opérations, puis effectue des mises à jour sur un ou plusieurs gestionnaires de ressources. Il se produit ce qui suit :
Le client appelle la fonction CreateTransaction pour créer la transaction et reçoit un handle pour cette transaction comme valeur de retour.
La transaction peut être ouverte ou héritée par n’importe quel nombre de processus ; chaque processus est donc impliqué dans la transaction. L’échec de l’un de ces processus entraîne l’abandon de la transaction.
Cette transaction n’est peut-être pas encore persistante. Seules les transactions qui ont atteint l’état préparé doivent être récupérées sur les défaillances du système si la transaction utilise une journalisation présumée d’abandon.
Le client doit transmettre explicitement une transaction au gestionnaire de ressources.
Le client effectue toutes ses opérations transactionnelles avec une ou plusieurs machines virtuelles, telles que les systèmes de fichiers traités.
Le client appelle la fonction CommitTransaction .
Le gestionnaire de ressources reçoit des notifications de KTM pour préparer et valider ses données.
Les transactions ne sont pas les mêmes que les threads. Plusieurs threads ou processus peuvent faire partie d’une seule transaction. À l’inverse, un thread peut faire partie de plusieurs transactions différentes à différents moments.
Les fonctions suivantes sont utilisées avec les transactions.
Fonction | Description |
---|---|
CommitTransaction | Demande que la transaction spécifiée soit validée. |
CommitTransactionAsync | Demande que la transaction spécifiée soit validée. |
CreateTransaction | Crée un objet de transaction. |
GetTransactionInformation | Retourne les informations demandées sur la transaction spécifiée. |
OpenTransaction | Ouvre une transaction existante. |
RollbackTransaction | Demande que la transaction spécifiée soit restaurée. |
RollbackTransactionAsync | Demande que la transaction spécifiée soit restaurée. Cette fonction retourne de façon asynchrone. |
SetTransactionInformation | Définit les informations de transaction pour la transaction spécifiée. |