Lire en anglais

Partager via


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 :

  1. 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.

  2. Le client doit transmettre explicitement une transaction au gestionnaire de ressources.

  3. Le client effectue toutes ses opérations transactionnelles avec une ou plusieurs machines virtuelles, telles que les systèmes de fichiers traités.

  4. Le client appelle la fonction CommitTransaction .

  5. Le gestionnaire de ressources reçoit des notifications de KTM pour préparer et valider ses données.

Transactions et threads

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.

Fonctions de transaction

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.