Mise en file d'attente et retrait de file d'attente CICS globale: performances et optimisation
La fonction globale de mise en file d'attente et de retrait de file d'attente CICS® étend l'interface de programme d'application CICS pour fournir un mécanisme de mise en file d'attente qui sérialise l'accès à une ressource nommée dans un ensemble spécifié de régions CICS contenues dans un sysplex.
Etant donné que la mise en file d'attente et le retrait de la file d'attente CICS globale élimine une cause importante d'affinité entre les transactions, elle permet une meilleure exploitation du sysplex parallèle, ce qui améliore les performances, la capacité et la disponibilité. Il réduit également la nécessité de fournir des règles d'affinité inter-transaction à des mécanismes de routage dynamique tels que CICSPlex ® SM, ce qui réduit le coût de gestion du système d'exploitation du sysplex parallèle.
CICS utilise la sérialisation des ressources globales z/OS® pour fournir une protection à l'échelle du sysplex pour les ressources qui participent à la mise en file d'attente et à la mise en file d'attente CICS globale. Pour plus d'informations sur la sérialisation des ressources globales z/OS , voir z/OS MVS Planning: Global Resource Serialization.
Implémentation
Vous utilisez une définition de ressource ENQMODEL pour définir chaque ressource nommée pour laquelle les commandes EXEC CICS ENQ et EXEC CICS DEQ ont une portée à l'échelle du sysplex. Les régions CICS qui doivent utiliser la fonction de mise en file d'attente ou de retrait de file d'attente à l'échelle du sysplex doivent toutes avoir les ressources ENQMODEL requises définies et installées. Il est recommandé de faire en sorte que les régions CICS partagent un fichier de définition de système (CSD) CICS et que les listes de groupes d'initialisation incluent les mêmes groupes ENQMODEL. Pour plus d'informations sur la création de définitions de ressource ENQMODEL, voir Ressources ENQMODEL.
Pour les applications pour lesquelles le nom de ressource est configuré de manière dynamique et qui ne sont donc pas connues à l'avance, vous pouvez utiliser les exits de programme d'interface EXEC de mise en file d'attente XNQEREQ et XNQEREQC pour fournir des caractères au début du nom de ressource qui correspondent à une définition de ressource ENQMODEL appropriée. Pour plus d'informations sur ces exits utilisateur, voir Enqueue EXEC interface program exits XNQEREQ et XNQEREQC.
Lorsque les commandes EXEC CICS ENQ et EXEC CICS DEQ sont émises pour une ressource, CICS recherche une définition ENQMODEL installée correspondante. S'il existe une ressource ENQMODEL correspondante qui spécifie une portée de mise en file d'attente, CICS transmet les informations à la sérialisation des ressources globales z/OS pour gérer la mise en file d'attente. La sérialisation des ressources globales z/OS fournit une protection à l'échelle du sysplex de la ressource.
La sérialisation des ressources globales z/OS inclut des listes de noms de ressource (RNL) qui spécifient la portée des ressources. Le traitement RNL peut entraîner une modification de la portée des ressources par rapport à la portée spécifiée dans la définition de ressource ENQMODEL dans CICS.
La valeur par défaut dans z/OS est que la sérialisation des ressources globales recherche le RNL approprié pour les demandes de mise en file d'attente et de retrait de file d'attente, et utilise le RNL pour déterminer la portée de la ressource. Toutefois, la valeur par défaut dans CICS, comme indiqué par le paramètre d'initialisation du système NQRNL , est que toutes les demandes de mise en file d'attente et de retrait de file d'attente indiquent RNL=NO et sont donc exclues du traitement RNL. Cette action signifie que la sérialisation des ressources globales utilise uniquement la portée spécifiée dans la définition de ressource ENQMODEL dans CICS, mais également que la demande de mise en file d'attente est ignorée par les produits de sérialisation alternatifs, ce qui a un impact sur la protection de la ressource sur les systèmes hors de l'environnement de sérialisation des ressources globales en cours qui utilisent des produits de sérialisation alternatifs. Si vous souhaitez que la sérialisation des ressources globales z/OS utilise le traitement RNL pour les demandes de mise en file d'attente et de retrait de file d'attente à partir de CICS, spécifiez le paramètre d'initialisation système NQRNL=YES pour les régions CICS dans lesquelles le traitement RNL doit être effectué.
Pour plus d'informations sur le traitement RNL pour la sérialisation des ressources globales, voir z/OS MVS Planning: Global Resource Serialization.
Recommandations
La sérialisation des ressources globales z/OS combine des systèmes en un complexe de sérialisation des ressources globales. Un ou plusieurs systèmes sont connectés l'un à l'autre dans une configuration en anneau (GRS = RING) ou connectés à une structure de verrouillage d'unité de couplage dans une configuration en étoile (GRS = STAR). Lorsque la sérialisation des ressources globales est initialisée en tant que configuration en étoile, toutes les informations relatives à la sérialisation des ressources sont conservées dans la structure de l'unité de couplage ISGLOCK. La sérialisation de ressource globale accède à l'unité de couplage lorsqu'un demandeur émet une instruction de mise en file d'attente ou de retrait de file d'attente sur une ressource de noms globaux.
L'impact sur les performances peut être dû à de nombreuses raisons, mais il est principalement dû au retard dans le traitement de la demande par l'anneau. Un grand nombre d'images d' MVS s dans l'anneau combiné à une valeur élevée pour RESMIL entraîne des retards dans la demande de complétion de l'anneau. La demande de mise en file d'attente ne peut être acceptée tant que la demande n'est pas renvoyée à l'image d' MVS s d'origine. Utilisez une valeur de 0, ou inférieure ou égale à 1, pour RESMIL dans le membre GRSCNF de SYS1.PARMLIB.