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.
Un gestionnaire de transactions (TM) est une instance d’un journal. Dans KTM, les objets TM spécifient le journal et certaines fonctionnalités du TM. Il existe généralement de nombreux objets TM sur un nœud particulier. Les gestionnaires de ressources (RMs) doivent être associés à une tm spécifique. Il existe trois types de machines virtuelles :
- Tm volatile, qui n’a pas de journal.
- Tm standard, qui a un journal et est utilisé pour coordonner les transactions d’une ou plusieurs machines virtuelles.
- Gestionnaire de transactions supérieur.
Gestionnaires de transactions volatiles
Une TM volatile est une TM pour les machines virtuelles en lecture seule ou volatile. Il n’a pas de journal et ne conserve pas l’état des transactions entre les redémarrages du système.
Gestionnaires de transactions
Les machines virtuelles ont un journal, une ou plusieurs machines virtuelles durables ou volatiles, ou les deux. Le tm conserve l’état d’une transaction entre les redémarrages du système jusqu’à ce que les transactions soient terminées. Un modèle présumé d’abandon est utilisé, de sorte que les transactions qui étaient actives, mais qui n’étaient pas préparées lorsque l’objet TM est arrêté sont restaurées. Lorsque vous ouvrez une tm pour la première fois, vous devez récupérer le tm en appelant la fonction RecoverTransactionManager.
Gestionnaires de transactions supérieurs
Une TM supérieure est une TM pour d’autres machines virtuelles. Il coordonne les transactions. Il émet également des notifications TRANSACTION_NOTIFY_PREPARE au Gestionnaire de transactions du noyau (KTM). Un exemple de TM supérieur est microsoft Distributed Transaction Coordinator (DTC). Cette capacité est fournie avec une responsabilité supplémentaire en matière de temps de récupération. Pendant la récupération, rm doit d’abord appeler la fonction OpenEnlistment pour rouvrir l’inscription. Elle doit également remettre (ou remettre à nouveau) le résultat de la transaction si la transaction a été validée ; il est gratuit de fournir un résultat en appelant la fonction CommitTransaction ou la fonction RollbackTransaction. Cette obligation ne se termine pas tant qu’elle n’a pas reçu un événement de notification TRANSACTION_NOTIFY_COMMIT_COMPLETE ou TRANSACTION_NOTIFY_ROLLBACK_COMPLETE associé. Si une tm supérieure ne parvient pas à effectuer ces opérations au moment de la récupération, la KTM nettoie toutes les transactions qui n’ont pas reçu de résultats à la fin de la phase de récupération. Toutefois, cela peut entraîner des résultats de transaction incohérents.
Fonctions du Gestionnaire de transactions
Les fonctions suivantes sont utilisées avec les gestionnaires de transactions.
| Fonction | Description |
|---|---|
| CreateTransactionManager | Crée un objet TM (Transaction Manager) et retourne un handle avec l’accès spécifié. |
| GetCurrentClockTransactionManager | Obtient une valeur d’horloge virtuelle auprès d’un gestionnaire de transactions. |
| GetTransactionManagerId | Obtient un identificateur pour le gestionnaire de transactions spécifié. |
| OpenTransactionManager | Ouvre un gestionnaire de transactions existant. |
| RecoverTransactionManager | Récupère l’état d’un gestionnaire de transactions à partir de son fichier journal. |
| RollforwardTransactionManager | Récupère l’état d’un gestionnaire de transactions de son fichier journal à la valeur d’horloge virtuelle spécifiée. |