Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 à celui-ci ont été fermés avant qu’une validation ou 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. Les opérations suivantes se produisent :
Le client appelle la fonction CreateTransaction pour créer la transaction et reçoit un handle à cette transaction comme valeur de retour.
La transaction peut être ouverte ou héritée par un nombre quelconque 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 ayant atteint l’état préparé doivent être récupérées entre les défaillances système si la transaction utilise la 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.
Transactions et threads
Les transactions ne sont pas identiques aux threads. Plusieurs threads ou processus peuvent faire partie d’une transaction unique. À 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 la restauration de la transaction spécifiée. |
| rollbackTransactionAsync | Demande la restauration de la transaction spécifiée. Cette fonction retourne de façon asynchrone. |
| SetTransactionInformation | Définit les informations de transaction pour la transaction spécifiée. |