Prise en charge des transactions et des validations en deux phases

Dans COM termwinology, une transaction est toujours une unité de travail qui est atomique, cohérente, isolée et durable (ACID). Dans la terminologie des macroordinateurs, une transaction peut ou non être une transaction ACID ; dans la terminologie des macroordinateurs, une transaction est un ensemble d’opérations ou de commandes dans un programme de transaction (TP). Cette différence de terminologie peut prêter à confusion. La transaction Word telle qu’elle est utilisée dans le gestionnaire TI et le concepteur TI fait toujours référence à une transaction ACID.

La validation en deux phases (2PC) est un protocole qui permet à un ensemble d’opérations ou de commandes d’application (ou d’application croisée) d’être toutes restaurées ou toutes validées comme une seule unité transactionnelle.

Notes

Si vous appelez un serveur d’automatisation TI via le protocole TCP/IP, il n’y a pas de prise en charge des transactions de validation en deux phases. La validation en deux phases fonctionne uniquement sur le protocole SNA APPC/LU 6,2.

Un composant TI possède quatre propriétés transactionnelles possibles :

  • Nécessite une transaction

  • Nécessite une nouvelle transaction

  • Prend en charge les transactions

  • Ne prend pas en charge les transactions

    Les deux premières options requièrent que le TP grand système soit transactionnel (c’est-à-dire conforme aux propriétés ACID) et prenne en charge le niveau de synchronisation 2. Cela est transparent pour le TP grand système s’il s’agit d’un lien CICS ou IMS version 6,0 ou ultérieure. Le troisième choix nécessite que le TP du macroordinateur prenne en charge les demandes de niveau 2 de synchronisation et gère la sémantique de la transaction de manière appropriée. Le quatrième choix est requis pour les TPs IMS avant IMS version 6,0 et pour les TPs CICS qui prennent uniquement en charge le niveau 0 ou le niveau de synchronisation 1.

    Si un composant TI est appelé dans l’étendue d’une transaction COM+, TI établit une conversation de niveau 2 de synchronisation avec CICS (sinon, le niveau de synchronisation 0 est utilisé). Cela est transparent pour le client du composant TI. Si le TP grand système est un programme de liaison CICS, la nature transactionnelle de la conversation est également transparente pour le TP, étant donné que la transaction miroir d’IBM dans CICS (CSMI) gère le protocole de niveau de synchronisation 2 et que le TP auquel il est lié n’a pas conscience du fait que le niveau de synchronisation 0 ou le niveau de synchronisation 2 est utilisé.

    TI est conforme au modèle de programmation COM+ en appelant SetComplete ou SetAbort lorsqu’il termine l’opération de chaque appel de méthode du client. Si aucune erreur n’a été détectée, TI appelle SetComplete ; dans le cas contraire, il appelle SetAbort. TI appelle également SetAbort si le TP du macroordinateur indique que la transaction ne doit pas être validée en définissant l’indicateur DisableCommit dans le bloc d’erreur de métadonnées retourné. Les applications clientes d’Automation TI peuvent également choisir d’appeler SetAbort s’ils déterminent qu’il existe des problèmes au niveau de l’application qui doivent empêcher la validation de la transaction.

    Lorsque l’appel de méthode du client retourne, le TP sur le macroordinateur a effectué une certaine unité de travail, mais les modifications apportées aux ressources protégées dans CICS ne sont pas encore validées. TI utilise de nouvelles interfaces DTC pour inscrire la conversation de niveau 2 de synchronisation sur la transaction DTC. Lorsque DTC est prêt à valider ou à abandonner la transaction, il communique avec l’Assistant TI pour piloter les flux de validation en deux phases appropriés sur la conversation LU 6,2. Là encore, l’ensemble du travail de 2PC est effectué de façon transparente par l’TI pour le compte du client.

    Bien que l’objet TI puisse être désactivé lorsque la méthode se termine, la conversation doit être maintenue jusqu’à ce que la transaction soit validée ou abandonnée. Les utilisateurs peuvent nuire aux performances et bloquer les ressources système si leur code d’application effectue un ou plusieurs appels de méthode transactionnel, mais ne valide pas la transaction pendant une longue période de temps. Les conversations peuvent être utilisées rapidement par du code utilisateur mal structuré.

    Lorsqu’une conversation est en attente de validation, elle est divorcée à partir de l’objet auquel elle a été associée. TI gère un pool de ces conversations en attente et effectue les opérations requises au niveau de la synchronisation lorsque les notifications appropriées sont reçues de DTC. Lorsque cela est possible, TI réutilise ces conversations pour réduire la surcharge.

    TI fournit également un service de resynchronisation (SNA LU 6,2 Resync TP). ce service de Windows est configuré pour être le service programmes appelables démarré automatiquement pour le TP (0x06f2 resync TP) défini par SNA. le service de resynchronisation implémente les fonctions « noms de journaux Exchange » et « comparer les états » d’un gestionnaire de transactions SNA. Il permet à la fois à DTC (Distributed Transaction Coordinator) et à CICS de lancer le processus de récupération en fonction des besoins lors du démarrage du système ou suite à un échec système ou de communication.

    Pour plus d’informations sur les flux SNA SyncPoint ou 2PC de IBM, informations de référence sur l' architecture des services SNA SyncPoint (IBM SC31-8134-00). Tous les flux TI 2PC sont implémentés conformément à cette architecture.

Notes

Pour plus d’informations sur l’utilisation des TPs de lien CICS qui utilisent des commandes SYNCPOINT explicites, consultez TPS avec des commandes SYNCPOINT explicites.

En résumé, pour utiliser la validation en deux phases, vous devez respecter les conditions suivantes :

  • la prise en charge de SyncPoint doit être activée dans les unités logiques locales et distantes dans le nœud Host Integration Server.

  • Les lu locaux et distants doivent chacun pointer vers l’ordinateur qui exécute les services de resynchronisation.

  • La prise en charge du niveau 2 de synchronisation doit être activée pour l’environnement distant (RE). Pour ce faire, cliquez avec le bouton droit sur le gestionnaire TI, cliquez sur Propriétés, puis sur l’onglet LU 6,2.

  • Le composant TI doit avoir la prise en charge de transaction définie sur pris en charge, obligatoire ou nécessite New. Pour vérifier ce paramètre, cliquez avec le bouton droit sur le composant TI dans le gestionnaire TI, cliquez sur Propriétés, puis sur l’onglet transactions.

  • L’ordinateur hôte distant doit être configuré pour la prise en charge du niveau 2 de synchronisation.

Voir aussi

Modèle de programmation WIP