Pour exécuter une application de validation en deux phases, lisez les recommandations suivantes pour éviter l'arrêt du traitement d'une région ou d'un message en raison d'un conflit de ressources.
- Ayez autant de régions de programme de traitement de messages (MPP) que possible en cours de fonctionnement pour s'assurer que les applications de validation en deux phases ne tentent pas d'utiliser une même région car une transaction au sein d'une application de validation en deux phases utilise une telle région MPP durant toute la durée de la transaction de validation.
- Si plusieurs transactions IMS sont réalisées au sein d'une transaction de validation en deux phases, au moins autant de régions MPP doivent être disponibles afin de ne pas bloquer l'application de validation en deux phases.
- Afin d'éviter qu'une transaction doive attendre très longtemps des
ressources, définissez une valeur de délai d'attente adaptée à
chaque interaction se produisant au sein de la transaction globale.
- Evitez qu'un trop grand nombre d'interactions de la base de données ne soit réalisé dans une seule transaction de validation en deux phases. Si plusieurs transactions IMS sont utilisées dans une transaction de validation en deux phases, elles peuvent bloquer ou verrouiller une tentative de mise à jour ou modifier les mêmes données. Pour prévenir ce problème, écrivez une application qui empêchera les utilisateurs d'accéder à des entrées dupliquées dans la même transaction de validation en deux phases.
- Configurez votre gestionnaire de verrouillage des ressources internes (IRLM) ou votre gestionnaire de verrouillage d'isolement de programme pour utiliser une taille de bloc aussi petite que la plus petite entrée de la base de données. Les tailles de blocs plus grandes peuvent avoir deux transactions bloquant des
entrées qui peuvent être différentes et cependant se trouver proches les unes des autres sur le disque.
- Si plusieurs interactions sont effectuées avec la même transaction IMS sur la même base de données IMS au sein d'une
transaction globale (une unité de travail), chaque interaction IMS doit s'exécuter sur une région MPP distincte. La transaction IMS doit avoir une valeur SCHDTYP=PARALLEL
et PARLIM=0, pour indiquer que la transaction IMS peut s'exécuter sur plusieurs régions MPP
et qu'elle répondra toujours aux exigences de planification (le nombre de messages
sera supérieur à zéro) pour traiter chaque interaction sur une nouvelle région MPP.
- Si une région est bloquée et qu'aucune valeur n'a été définie pour le délai d'attente d'exécution, vous pouvez mettre fin à la tentative d'exécution d'une transaction bloquée dans la région MPP en lançant une commande IMS /STOP REGION avec le paramètre d'abandon de transaction. Par exemple, /STOP REGION reg# ABDUMP tranname.
Cette commande annule la transaction pour l'interaction donnée et libère la région MPP.