Conditions de traitement des transactions

Avant de commencer à utiliser KTM, vous devez connaître les définitions des termes suivants : transaction, gestionnaire de ressources, client transactionnel, gestionnaire de transactions, flux de journaux, inscription et système de traitement des transactions.

Transaction
Une transaction est une collection d’opérations de données. Toutes les opérations doivent réussir pour que la transaction réussisse. Si toutes les opérations réussissent, la transaction peut être validée (c’est-à-dire que ses résultats peuvent être rendus permanents et publics). Si une opération échoue, la transaction doit être restaurée (autrement dit, toutes les modifications doivent être supprimées afin que les données soient dans le même état qu’elles étaient avant le début des opérations de la transaction).

Les opérations d’une transaction sont atomiques, cohérentes, isolées et durables (ACID).

  • Elles sont atomiques, car elles doivent être validées ou restaurées dans leur ensemble.

  • Elles sont cohérentes, car les opérations produisent toujours un résultat précis, qu’elles soient validées ou restaurées.

  • Ils sont isolés, car les résultats de chaque transaction ne sont pas visibles pour les autres transactions tant que les opérations de la transaction n’ont pas été validées ou restaurées.

  • Ils sont durables car, une fois les opérations de la transaction validées ou restaurées, les résultats des opérations sont permanents.

Un exemple de transaction est l’ensemble des opérations qui doivent être effectuées lorsque vous utilisez un guichet automatique (ATM) pour transférer de l’argent de votre compte courant vers votre compte d’épargne. Le débit de votre compte courant et le crédit sur votre compte d’épargne doivent apparaître comme une seule opération atomique.

Une opération qui fait partie d’une transaction est également appelée opération transactionnelle.

gestionnaire de ressources
Un gestionnaire de ressources est un composant logiciel qui gère les ressources de données qui peuvent être mises à jour par des opérations traitées. Par exemple, si vous concevez un système de base de données, vous pouvez fournir un gestionnaire de ressources qui stocke et récupère les données de la base de données. Un système de traitement transactionnel simple (TPS) peut n’avoir qu’un seul gestionnaire de ressources.

Un gestionnaire de ressources fournit généralement également une interface publique que les clients transactionnels peuvent appeler pour accéder aux données du gestionnaire de ressources. Par exemple, le gestionnaire de ressources d’une base de données peut fournir un ensemble de fonctions que les clients peuvent appeler pour lire et écrire dans la base de données.

Un TPS plus complexe peut avoir plusieurs gestionnaires de ressources, chacun gérant une base de données distincte ou une autre ressource tout en participant aux transactions du système.

Pour plus d’informations sur les gestionnaires de ressources, consultez Création d’un Resource Manager.

Dans certains cas, un gestionnaire de ressources est supérieur aux autres gestionnaires de ressources et peut lancer des opérations de validation. Dans KTM, ces gestionnaires de ressources sont appelés gestionnaires de transactions supérieurs.

client transactionnel
Un client transactionnel est un composant logiciel qui accède à une base de données prise en charge par un gestionnaire de ressources, généralement en appelant des fonctions que le gestionnaire de ressources exporte. Le client est chargé de créer des transactions, d’effectuer un ensemble d’opérations qu’un gestionnaire de ressources prend en charge, puis d’informer le gestionnaire de transactions (KTM) que la transaction doit être validée ou restaurée.

Pour plus d’informations sur les clients transactionnels, consultez Création d’un client transactionnel.

gestionnaire de transactions
Un gestionnaire de transactions, tel que KTM, fournit l’infrastructure qui permet aux clients transactionnels et aux gestionnaires de ressources de communiquer entre eux. Il suit également l’état de chaque transaction (mais pas les données que les clients et les gestionnaires de ressources gèrent).

Le gestionnaire de transactions peut également coordonner les opérations de récupération après un plantage du système.

Le gestionnaire de transactions n’a aucune connaissance des données ou des opérations qui composent une transaction. Les données et les opérations sont contrôlées par les clients et les gestionnaires de ressources.

KTM fournit des fonctions que les clients transactionnels peuvent appeler. Ces fonctions permettent aux clients de créer, valider et restaurer des transactions.

KTM fournit également des fonctions que les gestionnaires de ressources peuvent appeler. Ces fonctions permettent aux gestionnaires de ressources de s’inscrire dans les transactions afin qu’ils puissent recevoir des notifications sur les transactions. Une fois qu’un gestionnaire de ressources s’est inscrit dans une transaction, il peut recevoir une notification lorsqu’un client transactionnel est prêt à valider ou à restaurer la transaction, ou lorsqu’une opération de récupération se produit.

flux de journaux
Un flux de journal est un historique enregistré des événements qui se sont produits aux transactions. KTM gère un flux de journaux à l’aide du système CLFS (Common Log File System ). KTM enregistre les modifications d’état pour chaque transaction afin qu’elle puisse prendre en charge les opérations de restauration et de récupération quand elles sont nécessaires.

Les gestionnaires de ressources doivent également utiliser un flux de journaux pour enregistrer les données et les opérations.

Une opération de restauration nécessite que KTM et les gestionnaires de ressources restaurent une transaction et toutes les données à un état initial. KTM et les gestionnaires de ressources enregistrent l’état initial de chaque transaction dans les flux de journal afin qu’ils puissent l’extraire pendant une opération de restauration.

Les opérations de récupération se produisent après un plantage du système. Lorsque le système d’exploitation redémarre par la suite, KTM et les gestionnaires de ressources peuvent utiliser le contenu du flux de journal pour reconstruire l’état d’une transaction à l’état dans lequel elle se trouvait avant l’incident.

Pour plus d’informations sur les flux de journaux dans KTM, consultez Utilisation de flux de journaux avec KTM.

Enrôlement
Une inscription est une association entre un gestionnaire de ressources et une transaction. KTM fournit un ensemble de fonctions que les gestionnaires de ressources appellent pour créer et gérer les inscriptions. Une fois qu’un gestionnaire de ressources a créé une inscription, KTM envoie des notifications au gestionnaire de ressources lorsque l’état de la transaction change.

système de traitement des transactions
Un système de traitement des transactions (TPS) est une collection d’un gestionnaire de transactions, d’un ou de plusieurs gestionnaires de ressources, d’un ou de plusieurs flux de journaux et d’un ou plusieurs clients transactionnels qui accèdent aux ressources des gestionnaires de ressources.