Two-Phase Commit : considérations relatives aux performances

Lorsqu’un composant d’intégrateur de transactions (TI) s’exécute dans une transaction, l’environnement d’exécution TI envoie un message à Microsoft Distributed Transaction Coordinator (DTC) dans l’environnement COM+, en s’inscrivant sur la transaction en tant que type spécial de gestionnaire de ressources LU 6.2. Une fois que TI envoie sa mémoire tampon de données à l’hôte et reçoit la réponse, elle appelle la méthode SetComplete et retourne le contrôle à COM+. À ce stade, l’application cliente ou d’autres composants qui pilotent ti peut effectuer d’autres tâches également incluses dans la même transaction. Lorsque tous les gestionnaires de ressources ont effectué leurs mises à jour et émis SetComplete, le créateur de la transaction (qui peut être COM+ lui-même pour une transaction automatique) envoie la Commit méthode à DTC. DTC envoie le message de première phase (Prepare) à tous les gestionnaires de ressources, y compris l’environnement d’exécution TI. TI génère l’élément Prepare PS Header défini dans les formats SNA et l’envoie à l’hôte. Il reçoit RequestCommit en réponse, ce qui indique que les mises à jour de l’hôte sont valides et peuvent être validées, et transmet ces informations à DTC. DTC collecte les votes de tous les gestionnaires de ressources et si tous sont préparés, il force l’écriture d’un enregistrement Commit dans le journal et envoie le message Committed. Là encore, TI le traduit en un SNA PS Header, reçoit la réponse, et le retraduit en DTC. Si tout fonctionne comme prévu, DTC annule la transaction et la conversation APPC/LU 6.2 est désallouée.

Note

Ni TI ni l’AP n’ont besoin d’être préoccupés par un verbe APPC ou CPI/C SYNCPT. La décision de « prendre un SyncPoint » est prise par l'initiateur de la transaction, est exprimée selon la sémantique des transactions OLE et implique tous les participants à la transaction, pas seulement les branches TI LU 6.2. Le rôle de TI est à un niveau inférieur ; TI agit en tant que gestionnaire de ressources pour DTC. Il se traduit entre les interfaces COM utilisées par DTC et les protocoles SNA compris par l’hôte, pour effectuer les deux phases du protocole et permettre à DTC de prendre la décision Commit entre la phase 1 et la phase 2.

Du point de vue des performances, garantir l'atomicité des mises à jour de l'hôte entraîne une surcharge de charge importante et inévitable. Il y a deux flux de messages aller-retour supplémentaires vers l'hôte pour la validation en deux phases (2PC), ainsi que les flux de messages Windows pour l'inscription, et la journalisation des transactions (écritures forcées sur le disque) gérée par le DTC et sur l'hôte. Les transactions qui ne nécessitent pas beaucoup de traitement de logique métier peuvent prendre deux fois plus de temps ou plus quand vous la comparez à la même transaction sans 2PC.

La seule fois où vous devez configurer un composant TI pour prendre en charge les transactions ACID, c’est quand le programme de transaction hôte associé (TP) modifie une ressource stratégique qui doit être maintenue cohérente avec les ressources sur le système d’exploitation Windows. Si le TP ne modifie aucune ressource pour laquelle la cohérence doit être garantie, configurez le composant TI comme ne prend pas en charge les transactions, afin que 2PC ne soit pas tenté. Vous êtes ensuite libre d’utiliser le protocole TCP/IP. Le protocole TCP/IP ne prend pas en charge 2PC.

Les composants TI ne doivent jamais être configurés comme nécessite une nouvelle transaction. Cela signifie que vous gérez la transaction à distance pour l’hôte et qu’elle entraînerait la surcharge de création d’une nouvelle transaction, l’inscription sur celle-ci et l’exécution des échanges 2PC avec l’hôte, mais la méthode TI serait une transaction elle-même. Il est plus efficace de permettre à CICS et IMS de gérer leurs propres transactions. Les mises à jour du système d'exploitation Windows ne font pas partie de cette transaction, elles valideront ou annuleront donc indépendamment.

Note

Le traitement de logique métier supplémentaire sur le même serveur réduit les limites de débit, en volant une partie du processeur. Toutefois, le coût peut être relativement faible dans l’étendue du budget global du temps de réponse.

Voir aussi

Guide des performances de l’intégrateur de transactions