Procédure WAIT/LOOP
Les procédures pour les mots clés WAIT et LOOP sont combinées parce que les symptômes WAIT et LOOP peuvent ne pas être distingués au début.
Déterminer le type de WAIT ou de LOOP en cours
Utilisez la procédure suivante pour déterminer le type de WAIT ou de LOOP qui se produit, et pour trouver les mots clés appropriés pour le problème.
La maintenance peut modifier les décalages de ces blocs de contrôle. Pour une version en cours des blocs de contrôle, assemblez DFSADSCT.
- IMS est-il arrêté?
- Si l'opérateur a émis une commande
CHECKPOINT DUMPQ,PURGEouFREEZEavant la manifestation de la boucle / attente, passez à la section Arrêt en cours. - Si IMS n'est pas arrêté, passez à l'étape suivante.
- Si l'opérateur a émis une commande
- Déterminez si IMS a été en mode de répartition sélective.
Recherchez les zones de travail de répartition dans le vidage formaté. Les zones de travail de répartition sont créées à l'aide des options de formatage de vidage
DISPATCHouAllIMS . L'identificateur de la zone de travail de répartition est**DSP.Les bits de répartition sélective se trouvent dans la zone SFLAGS de la sectionDYNAMIC SAP EXT., où le bit X'xxxxxx8x'représente la répartition sélective. Pour déterminer si la répartition sélective a été entrée pour les préfixes de zone de sauvegarde (SAPs), recherchez le message suivant dans la sectionDISPATCH AREA:*** NOTE: THIS TCB IS IN SELECTIVE DISPATCHING FOR SAPSSi vous trouvez ce message, IMS a écrit un enregistrement X'450F' dans l'OLDS. Cet enregistrement de journal contient des informations sur les SAP dynamiques, telles que le nombre le plus élevé de SAP dynamiques utilisés et le nombre de fois où IMS a été envoyé de manière sélective pour les PAS dynamiques.
Examinez cet enregistrement X'450F' pour vous aider à déterminer ce qui a pu conduire à la pénurie de SAP dynamiques. Ensuite, accédez à Déterminer le type de WAIT ou de LOOP en cours. Lors de l'analyse SAP , gardez à l'esprit que les SAP dynamiques sont libellés
DYNAMIC SAPet que CURRENT TCB= indique le bloc de contrôle des tâches (TCB) associé.Si IMS n'est pas en mode de répartition sélective, passez à l'étape suivante.
- L'opérateur peut-il communiquer avec IMS via la console système z/OS® en utilisant la réponse en attente IMS pour entrer une commande IMS , telle que
/DISPLAY?- Si non, ou si vous n'êtes pas sûr, passez à l'étape 5 maintenant.
- Dans l'affirmative, le problème peut être causé par:
- Echec de la communication des données.
- L'incapacité d'une tâche d'acquérir une ressource.
- Non-exécution d'un événement, tel que des E-S.
Passez à l'étape suivante.
- L'opérateur de terminal maître (MTO) IMS peut-il communiquer avec IMS en émettant diverses commandes IMS , telles que
/DISPLAY?- Si oui, accédez à Déterminer le type de WAIT ou de LOOP en cours.
- Si non, le problème peut être lié à la communication de données. Si IMS est toujours en cours d'exécution, exécutez les commandes suivantes:
- Exécutez la commande IMS
/DIS NODE nodename. Sauvegardez la sortie de la console IMS . - Activez la trace de noeud IMS à l'aide de la commande
/TRA SET ON NODE nodename.Les données sont capturées dans l'enregistrement de journal IMS X'6701'. Enregistrez l'OLDS IMS pour l'exécuter avec les programmes utilitaires IMS DFSERA10 et DFSERA30.
- Pensez à transformer la trace de la mémoire tampon VTAM ® et la fonction de trace interne VTAM pour compléter la trace du noeud IMS , comme suit:
F NET,TRACE,TYPE=BUF,ID=nodename F NET,TRACE,TYPE=VTAM,MODE=EXT,OPT=(API,PIU,MSG)GTF doit être actif pour cette option.
- Procurez-vous un vidage mémoire des régions IMS et VTAM à l'aide de cette série de commandes:
DUMP COMM=(dump title) R id JOBNAME=(j1,j2,j3,j4,j5,j6,j7),SDATA=(CSA,PSA,RGN,SQA,SUM,TRT),ENDLes variables ont les significations suivantes:
- j1
- Nom du travail de la région CTL IMS .
- j2
- Nom du travail de la région VTAM.
- j3
- Nom de travail de la région IMS DL/I.
- j4
- Nom du travail de la région dépendante IMS , le cas échéant.
- j5
- Nom de région CCTL (CICS®) suspect, le cas échéant.
- j6
- Nom du travail de la région DBRC.
- j7
- Nom du travail de région IRLM (si le verrouillage de base de données IRLM a été utilisé).
Recommandations: Un vidage mémoire de la région IMS CTL, VTAM, DL/I et suspecte ou de la CCTL est généralement suffisant pour résoudre les problèmes d'attente ou de blocage. Occasionnellement, le DBRC et IRLM (s'ils sont utilisés pour le verrouillage de base de données) peuvent être un facteur. Obtenez un vidage mémoire de DBRC et de IRLM afin de vous assurer que le problème peut être résolu rapidement.SYS1.DUMP ne sont souvent pas assez grands pour contenir toutes les régions demandées dans la commande
DUMP. Rendez-les suffisamment pour tenir les régions. Si la commande z/OS SVCDUMPéchoue en raison d'un manque d'espace, effectuez des vidages mémoire distincts dans des combinaisons plus petites afin de prendre en charge le système SYS1.DUMP . - Accédez à Déterminer le type de WAIT ou de LOOP en cours.
- Exécutez la commande IMS
- Interrogation des zones de travail IMS Dispatch.
- Recherchez les zones de travail Dispatch dans le vidage formaté. Les zones de travail de répartition sont créées à l'aide des options de formatage de vidage
DISPATCHouALLIMS . L'identificateur de la zone de travail de répartition est**DSP. - Numérisez chaque zone de travail Dispatch (STM, CTL, ensemble de données de redémarrage, etc.) à l'exception de la RDC et des entrées de région dépendante (DEP, MPP, BMP, DBT, DRA ou IFP). Examinez le champ QPOST à l'offset X'1C'
Si le bit d'ordre élevé de la zone QPOST est désactivé, notez l'adresse et le type de la zone de travail Dispatch.
- Si, après avoir scanné toutes les zones de travail Dispatch, à l'exception de la tâche DBRC (RDC) et des régions dépendantes, vous constaez que le bit de haute commande QPOST est toujours défini, l'une des situations suivantes s'est produite:
- IMS se trouve dans un état IMS WAIT (IWAIT). Accédez à Déterminer le type de WAIT ou de LOOP en cours maintenant.
- Si au moins une zone de travail Dispatch dispose d'un bit d'ordre élevé incorrect, un LOOP ou un système d'exploitation WAIT s'est produit. Passez à l'étape suivante.
- Recherchez les zones de travail Dispatch dans le vidage formaté. Les zones de travail de répartition sont créées à l'aide des options de formatage de vidage
- Interrogation de la chaîne TCB/RB.
- Recherchez la BCE en cours, l'ID espace adresse (ASID) et l'adresse TCB pour chaque zone de travail Dispatch notée précédemment à l'étape 5b.
- Dans IDSPWRK SECTION 1, recherchez la zone CECB au décalage X'28'. Le champ CECB au décalage X'28'contient la BCE de la BCE actuellement répartie.
- Dans IDSPWRK SECTION 1, recherchez la zone ASIDS au décalage X'30'. Le premier demi-mot de la zone ASIDS au décalage X'30'contient le numéro ASID de la tâche ; le deuxième demi-mot contient l'ASID de la région CTL.
- Dans IDSPWRK SECTION 1, recherchez le champ TCB au décalage X'40'. Le TCB de zone au décalage X'40'contient l'adresse TCB pour la tâche.
- Recherchez la chaîne TCB/RB formatée dans le vidage z/OS formaté. Utilisez la commande IPCS
SUMMARY FORMAT ASID(X'__')pour l'ASID/le bloc de contrôle des tâches trouvé à l'étape 6a. Utilisez la commandeFINDsuivante pour localiser le bloc de contrôle des tâches:
Où Xxxxxxxx est l'adresse TCB à 8 caractères, y compris les zéros à gauche.F 'TCB: xxxxxxxx' 1 16 - Examinez la structure de bloc de demande (RB) (PRB, SVRBs, ou RIR), en se concentrant sur le dernier RB de la chaîne pour ce TCB. Le champ TCBRBP au décalage X'00'contient l'adresse du dernier RB. Utilisez la commande
FINDsuivante pour localiser le RB:
Où Xxxxxxx est l'adresse de 8 caractères RB, y compris les zéros de premier plan.F 'RB: xxxxxxxx' 1 16Exception: L'utilisation du dernier RB dans la chaîne RB des TCB est habituellement exacte. Cependant, il arrive que des RB supplémentaires soient ajoutés à la fin de la chaîne pour faciliter le traitement des clichés, mais ils n'ont rien à voir avec le problème. X'00020033'dans la zone WLIC de tout RB de la chaîne RB indique normalement le traitement du vidage. Dans ce cas, examinerles RBs avant le RB avec WLIC=X'000020033'. Si le RB précédant le RB contenant WLIC=X'00020033' contient WLIC=X'0002000C, il peut être nécessaire d'examiner le RB précédant le RB contenant WLIC=X'00002000C'
Exemple :PRB WLIC = X'00020006' PRB WLIC = X'00020078' SVRB WLIC = X'0002000C' Examine prior RB. SVRB WLIC = X'00020033' <== Indicates dump processing SVRB WLIC = X'00020078' - Examinez la zone LINK du RB trouvé à l'étape 6c. L'octet de haut de commande de la zone LINK est le champ de nombre d'attente.
- Si le nombre d'attente est X'00', la tâche est probablement en boucle. Procédez comme suit :
- Effectuez les diagnostics de la boucle système. Obtenir l'OPSW et les registres à partir du RB de bouclage, (situé dans le RB ou dans la TCB, si c'est le dernier RB (TCBRBP)) pour un instantané de la boucle.
- Procurez-vous l'adresse PSW à partir de la table de trace système z/OS . Utilisez la commande IPCS
VERBX TRACE ASID(xx)pour obtenir les entrées de l'identificateur d'espace adresse en question. Mettez en évidence les entrées du bloc de contrôle des tâches trouvées à l'étape 6a. Vous pouvez ignorer les entrées entre les SVC et les SVCR associés car elles reflètent l'activité nécessaire du système d'exploitation z/OS indirectement impliquée dans la boucle. (Le SVC IMS TYPE2 est une exception car il entraîne l'exécution du code IMS .) Le tri des adresses pertinentes par l'adresse de l'OPSW facilite grandement la pose de la boucle. - Résolvez l'adresse PSW trouvée à l'aide du mode IPCS BROWSE, de la commande IPCS
WHEREou à l'aide d'une zone permanente de programme (LPA) ou d'une mappe de noyau (NUCLEUS MAP) pour obtenir le nom des modules impliqués dans la boucle. Les commandes IPCS utilisées pour obtenir les mappes sontLPAMAPetVERBX NUCMAP. Calculez le décalage auquel l'instruction apparaît dans les modules pour tracer le chemin de la boucle. - Une autre source d'informations pour la tâche de bouclage se trouve parfois en haut de la section IMS SAPS AND SAVEAREA (
**SSA) du vidage IMS formaté. Recherchez l'ensemble de zones de sauvegarde**** A C T I V E ****le plus proche du haut du fichier**SSAavec le fichier SAPECB correspondant à la zone CECB obtenue à l'étape 6a. Le flux de la zone de sauvegarde peut indiquer les modules IMS impliqués dans la boucle ou ceux qui passent le contrôle à la fonction de bouclage.
- Si le nombre d'attente n'est pas X'00'(c'est-à-dire = X'01', ou X'02', etc.), un système WAIT s'est probablement produit. Procédez comme suit :
- Obtenir la partie adresse de l'OPSW. Il pointe vers le module d'attente.
- Résolvez l'adresse PSW trouvée à l'aide du mode IPCS BROWSE, de la commande IPCS
WHEREou à l'aide d'une zone permanente de programme (LPA) ou d'une mappe de noyau (NUCLEUS MAP) pour obtenir le nom du module en attente. Les commandes IPCS utilisées pour obtenir les mappes sont respectivementLPAMAPetVERBX NUCMAP. Calculez le décalage auquel l'attente s'est produite dans le module. Ces informations peuvent être utilisées pour les recherches d'APAR et pour aider les représentants du service de support logiciel IBM® . - Utilisez la zone CECB obtenue à l'étape 6a pour rechercher la zone de sauvegarde SAP associée en analysant la correspondance SAPECB dans le vidage de mémoire formatée IMS ** section SSA.
- Si le nombre d'attente est X'00', la tâche est probablement en boucle. Procédez comme suit :
- Recherchez la BCE en cours, l'ID espace adresse (ASID) et l'adresse TCB pour chaque zone de travail Dispatch notée précédemment à l'étape 5b.
Procédure d'analyse SAP
- Recherchez la section SAP AND SAVE AREA formatée dans le vidage formaté IMS .
Choisissez les options SAVEAREA, SYSTEM, ALL ou SAVEAREA, SUM du formateur de vidage IMS hors ligne. L'identificateur de la section SAP AND SAVE AREA est
**SSA.Le tableau suivant définit les zones clés de l'analyse SAP .Tableau 1. Zones clés de l'analyse SAP Décalage Nom de zone Longueur Description de la zone SAP+ X'00' SAPFLAG1 1 X'80'= SAP
X'40'= En attente SAPSAP+ X'01' SAPDSPCD 1 Numéro de bloc de contrôle des tâches IMS . Ce numéro correspond au numéro TCB associé au décalage X'3B' dans la zone de travail de la répartition. SAP+ X'14' SAPIATTENTE 4 Dans les SAP en attente, il s'agit de l'adresse de la dernière zone de sauvegarde active. Celles qui suivent cette adresse sont résiduelles. Dans les SAP qui sont actifs mais qui ne sont pas en attente, ce champ est résiduel et ne doit pas être utilisé. Exception: SAPIWAIT peut ne pas être valide pour les ensembles de zones de sauvegarde Fast Path (modules DBF préfixes). L'ensemble de zones de sauvegarde actives se termine généralement par DBFXSL30, le module d'attente Fast Path, sauf si DFSIWAIT ou DFSISERW apparaît dans un ensemble de zones de sauvegarde.
SAP +X '18' SAPECB 4 Adresse de la BCE associée à cet ITASK. Si la TVP est utilisée, cette zone pointe vers le début de la TVP. SAP +X '24' SAPCDSP 4 Adresse de la zone de travail de répartition en cours. SAP +X '30' SAPSDPNO 4 Numéro de répartition de l'ITASK. - Début de l'analyse SAP à la fin des SAP triés.
Trouvez la fin du SAPS trié. Le eye-catcher
***END OF SORTED SAP FORMATTINGmarque la fin de la liste. Les PAS sont triés par SAPSDPNO (numéro de répartition du système). Les ITASK les plus récemment envoyés sont à la fin des SAP triés. Ce sont les ITASKS qui ont attendu la plus longue et peut-être la cause des autres ITASKS d'attendre derrière eux en tenant une ressource, telle qu'une serrure ou un verrou. - Numérisez à rebours à partir de la fin, en examinant uniquement les PAS actifs ou en attente. Mettez uniquement en évidence les ensembles de zones de sauvegarde actifs (c'est-à-dire que le bit X'00' de SAPFLAG1 est activé (X'08', X'Cx', X'Dx', X'Fx'). Les ensembles de zones de sauvegarde actifs sont marqués avec l'identificateur
**** W A I T I N G ****ou**** A C T I V E ****. Pour rechercher les points d'accès au service en attente ou actifs, utilisez la commande de recherche suivante:F ' **** ' PREVL'option SAVEAREA, SUM du Formatter de vidage hors ligne ne produit que des ensembles de zones de sauvegarde actifs. Les points d'accès au service actifs en cours d'exécution sont marqués avec l'identificateur
RUN. La fin de cette mise en forme est marquée par l'identificateur****** END SAP SUMMARY. - Ignorer tous les ensembles de zones de sauvegarde normaux.
Cette étape décrit tous les ensembles de zones de sauvegarde normaux. Une fois que vous avez identifié tous les types d'ensembles de zones de sauvegarde normaux, vous pouvez les ignorer car ils ne sont pas liés au problème.
- Les ensembles de zones de sauvegarde
WAITINGdans lesquels le nom de module DFSIWAIT apparaît après le libellé EP au niveau de la zone de sauvegarde de deuxième niveau sont considérés comme des ensembles de zones de sauvegarde normaux.L'exemple suivant montre une zone de sauvegarde normale définie au deuxième niveau:***SAVE AREA SET*** EP DFSQMRT0-11/13/94 SA 00133BC4 WD1 8091E430 HSA 80000000 LSA 00133C0C ... EP DFSIWAIT SA 00133C0C WD1 00000000 HSA 00133BC4 LSA 00133C54 ... EP DFSFLLG0-220-PL46803 SA 00133C54 WD1 00000000 HSA 00133C0C LSA 00133C9C ... ...... - Les seuls ensembles de zones de sauvegarde normaux dans lesquels l'ensemble de zones de sauvegarde contient DFSIWAIT au niveau du troisième niveau sont indiqués dans l'exemple suivant. Vérifiez que le registre 08 contient une valeur de X'00000003' pour l'un des quatre premiers ensembles de zones de sauvegarde, comme indiqué dans l'exemple. Sinon, il est anormal et indique un conflit d'intention, comme décrit dans Confconflit d'intention. Utilisez la zone SAPSECB pour obtenir l'adresse PST à utiliser dans la procédure de conflit d'intention.
EP DFSSMIC0 --> EP SMSC2 --> EP DFSIWAIT with REG08 = x'00000003' EP DFSSMIC0 --> EP DFSSMSC2 --> EP DFSIWAIT with REG08 = x'00000003' EP DFSSMIC0 --> EP DFSSMSC1 --> EP DFSIWAIT with REG08 = x'00000003' EP DFSSMIC0 --> EP MPPENQ00 --> EP DFSIWAIT with REG08 = x'00000003' EP DFSFXC30 --> EP DFSFXC30-WFITEST --> EP DFSIWAIT EP DFSVTP00 --> EP VTPOWORK --> EP DFSIWAIT EP DBFHCL00 --> EP DBFHGU10 --> DBFXSL30 - Les seuls ensembles de zones de sauvegarde normaux dans lesquels la zone de sauvegarde contient DFSIWAIT au niveau du quatrième niveau sont ceux indiqués dans l'exemple suivant. Vérifiez que le registre 08 de l'ensemble de zones de sauvegarde DFSIWAIT contient X'00000003'. Sinon, il est anormal et indique un conflit d'intention, comme décrit dans Confconflit d'intention. Utilisez la zone SAPSECB pour obtenir l'adresse PST à utiliser dans la procédure de conflit d'intention.Les exemples suivants montrent des ensembles de zones de sauvegarde normaux au quatrième niveau:
DFSSMIC0 --> DFSSMSC0 --> SMSC1000 --> DFSIWAIT REG08 = x'00000003' DFSFXC30 --> DFSDLA30 --> DLA32000 --> DFSIWAIT - Les ensembles de zones de sauvegarde actifs suivants sont probablement normaux, vous pouvez donc les ignorer.
- Les ensembles de zones de sauvegarde marqués
ACTIVEouRUNavec SAPDSPCD=X'07'. Il s'agit d'une tâche DRC SAP. Cette condition est généralement normale pour la tâche DBRC. - Sauvegarder les ensembles de zones marquées
ACTIVEouRUNavec SAPDSPCD=X '0F'. Il s'agit de la tâche ESI SAP si SAPCDSP=X '00000000'. - Jeux de zones de sauvegarde de la région dépendante marqués
ACTIVEavec SAPDSPCD=X '03' (MPP), X '04' (BMP), X'0D' (DRA), X'12' (IFP), X'13' (DBT), X'0C' (ESS), ou X'00' (RESIDUAL), dans lesquels la zone de sauvegarde supérieure indique qu'elle a été renvoyée. (Le dernier bit de l'adresse dans la zone intitulée RET, qui est le registre 14, est impair ou a X'FF' dans l'octet de poids fort.) - Si SAPDSPCD=X'13'(DBT) et que la première zone de sauvegarde EPA est marquée
UNKNOWNavec la zone de sauvegarde de deuxième niveau RET marquée comme renvoyée (le dernier bit de l'adresse dans RET est impair), il s'agit d'une zone de sauvegarde normale définie si la première zone de sauvegarde EPA se trouve dans le module DFSDASC0 ou DFSDAST0.
- Les ensembles de zones de sauvegarde marqués
- Les ensembles de zones de sauvegarde
- Obtenir des informations d'ensemble de zones de sauvegarde anormales.
Les ensembles de zones de sauvegarde restants (ceux qui sont
ACTIVEouWAITING, mais qui sont anormaux, comme décrit à l'étape 4, sont impliqués dans l'attente d'une manière ou d'une autre.Recommandation: Concentrez-vous sur une zone de sauvegarde définie à la fois, en commençant par le premier ensemble de zones de sauvegarde anormales. N'oubliez pas de démarrer à partir de la fin des SAP triés.Si vous trouvez un ensemble de zones de sauvegarde anormal marqué
**** A C T I V E ****(SAPFLAG1 =X'80'), le problème est associé à l'ensemble de zones de sauvegarde TCB/RB. Utilisez l'adresse de la zone de répartition en cours dans SAPCDSP pour rechercher la zone de répartition associée à cet ensemble de zones de sauvegarde. Passez à l'étape 6a dans la procédure WAIT/LOOP. Continuez à partir de là, en utilisant l'ASID/TCB obtenu à partir de la zone de travail de répartition. Si le bit de poids fort dans QPOST est activé (QPOST=X'8x'), ce SAP est suspendu. Enregistrez cette zone de sauvegarde et passez à la zone de sauvegarde anormale suivante. Déscontinuez l'étape 6a car cette zone de sauvegarde doit probablement être ignorée. Sinon, continuez.Enregistrez les zones clés suivantes à partir des zones de sauvegarde anormales marquées comme:
**** W A I T I N G ****- Adresse de SAP.
- Pour chaque zone de sauvegarde de la zone de sauvegarde définie, à partir de la première zone de sauvegarde vers le bas jusqu'à la zone de sauvegarde mise en évidence par la zone SAPIWAIT, obtenez les informations suivantes. (Voir exception pour SAPIWAIT dans Tableau 1 avant de continuer.)
- Nom du module EP
- Niveau APAR (numéro APAR et dernières lettres de la chaîne changeID )
- Adresse RET (il s'agit du registre 14)
- Adresse EPA
Si le nom du module est
UNKNOWNet que l'ensemble de zones de sauvegarde du module commence par DFSDLA00, l'adresse EPA peut probablement être résolue dans le vidage de la région DL/I à l'aide du mode IPCS BROWSE pour l'identificateur d'espace adresse DL/I. - Le décalage à partir duquel DFSIWAIT, DFSISERW ou DBFXSL a été appelé depuis le module appelant.
Vous pouvez calculer le décalage en soustrayant l'adresse EPA dans la zone de sauvegarde Avant de la zone de sauvegarde pointé par SAPIWAIT à partir de l'adresse RET de la zone de sauvegarde pointé par SAPIWAIT.
Le tableau suivant présente les données de clé d'un ensemble de zones de sauvegarde anormales.Tableau 2. Données de clé d'un ensemble de zones de sauvegarde anormales Nom du module EP Numéro d'APAR Derniers ChangeIDs RET EPA Décalage d'appel d'attente DFSCST00 PL45938 Abcde 80A7BA14 00A8E110 DFSDBDR0 PL49770 .. mnopr 60A8E6D6 00A07A58 DFSBML00 aucun 50A07AC2 00B5DAE0 X'10E' DFSIWAIT aucun 40B5DBEE 70A7C7F6
- Identifiez la raison de l'application WAIT.
Pour identifier le motif de l'application WAIT, procédez comme suit:
- Assemblez le module qui a émis l'attente. Utilisez le décalage obtenu à l'étape 5 comme déplacement approximatif dans le module où un IWAIT ou ISERWAIT a été émis. Examinez le code et les commentaires à ce stade. La plupart des modules donnent la raison de l'IWAIT dans les commentaires qui précèdent le point d'émission du IWAIT.
Le nom du PE peut ne pas être le nom du module, mais plutôt un CSECT dans un module. Pour trouver le nom du module réel, à l'aide du mode IPCS BROWSE, numériser à l'arrière de l'adresse EPA pour le nom du module réel.
- Assemblez le module qui a émis l'attente. Utilisez le décalage obtenu à l'étape 5 comme déplacement approximatif dans le module où un IWAIT ou ISERWAIT a été émis. Examinez le code et les commentaires à ce stade. La plupart des modules donnent la raison de l'IWAIT dans les commentaires qui précèdent le point d'émission du IWAIT.
- Répétez les étapes 5 et 6 pour les trois premiers ensembles de zones de sauvegarde anormales que vous avez trouvés.
Vous devez être en mesure de rassembler suffisamment d'informations à partir des trois premiers ensembles de zones de sauvegarde anormales pour effectuer une recherche ou déterminer la cause du problème.
Mot clé: WAIT
A ce stade, vous pouvez être sûr que vous êtes dans un IMS WAIT. Par conséquent, WAIT est un mot clé approprié pour l'argument de recherche.
Mot clé: nom de module émettant IWAIT ou ISERWAIT
La colonne Nom du module de votre feuille de travail indique les modules qui ont émis les IWAITs. Ces modules peuvent fournir des arguments de recherche utiles. Utilisez le nom de module de 8 caractères pour ce mot clé.
Mot clé: raison WAIT
La colonne IWAIT REASON de votre feuille de calcul indique la raison ou la ressource, ou les deux, qui est à l'origine de l'ATTENTE IMS.
Par exemple, si le motif était WAIT pour le verrou DPST, le mot clé IWAIT REASON est DPST LATCH.
Mot clé: mots clés associés supplémentaires
Les événements externes peuvent déclencher des WAITs. Ces événements peuvent être indiqués par des messages de console, ou ils peuvent être liés à une procédure en cours d'exécution au moment où le WAIT a commencé.
Vous pouvez utiliser chacun de ces mots clés supplémentaires dans l'argument de recherche, le cas échéant.
Exemple d'argument de recherche
Supposons le scénario suivant:
- IMS a été entré dans un IWAIT après une erreur d'écriture WADS.
- Plusieurs ensembles de zones de sauvegarde inhabituels ont été trouvés à partir du module DFSFLLG0.
- La raison de l'IWAIT est le JOURNAL DES JOURNAL.
5655J3800 WAIT LOG | LATCH | W ADS | DFSFLLG0PIDS/5655J3800 WAIT PCSS/LOG | PCSS/LATCH | PCSS/WADS | RIDS/DFSFLLG0Avec cet argument de recherche, vous risqueriez de recevoir de nombreux résultats de recherche, ce qui contiendra probablement l'APAR décrivant votre problème. Vous pouvez alors prendre différentes combinaisons des mots clés supplémentaires qui ont été comparés à l'opérateur OU dans l'exemple ci-dessus et utiliser l'opérateur ET sur les mots clés à la place. Vous pouvez utiliser cette technique pour affiner votre champ de recherche jusqu'à ce que vous trouez l'APAR approprié.
Analyse PST
Cette section traite de l'analyse des régions pour des problèmes éventuels de planification, de conflits d'intentions, etc.
- Déterminer le nombre de régions actives.
SCDREGCT à SCD+X 'C8A' est un champ de 2 octets qui contient le nombre de régions actives, le cas échéant.
Si SCDREGCT = X'0000', aucune région n'est active. Revenez à Déterminer le type de WAIT ou de LOOP en cours.
Si SCDREGCT n'est pas égal à X'0000', passez à l'étape 2.
- Déterminez si les files d'attente de séquence du planificateur (SSQ) ont des entrées.
Procurez-vous l'adresse du bloc d'ancrage de transaction (TAB) à partir de la zone SCDTAB dans DSECT (label TABEP dans le vidage formaté). Le TAB, qui est cartographié par DSECT DFSTAB, se compose des éléments suivants:
- En-tête TAB
- En-têtes pour chacune des six sous-files d'attente (SSQ1 - SSQ6)
- Table vectorielles de classe (CVT)
- Tables de classe de transaction (TCTs)
Si le nombre de tables de spécification de partition (PSTs) en attente d'une sous-file d'attente (zone TABSCHQC) est égal à 0, aucune région ne doit attendre sur une sous-file d'attente. Toutefois, vous devez également vérifier chaque en-tête de sous-file d'attente. Calculez l'adresse de l'en-tête de la sous-file d'attente pour une sous-file d'attente spécifique (SSQ#) comme suit:
- SSQ# × X'18' - X' 8' = décalage de l'en-tête pour SSQ#
- Décalage de l'en-tête SSQ# + SCDTAB = adresse de l'en-tête pour SSQ#
Effectuez ce calcul pour chaque numéro de sous-file d'attente. Si la zone TABSSQNF, où N est le numéro de la sous-file d'attente, n'est pas égale à zéro, cette zone contient l'adresse d'une entrée sur la SSQ pour la sous-file d'attente spécifiée.
- Le SSQ se compose des six sous-files d'attente suivantes. Toutes les sous-files d'attente sont formatées dans un vidage.
- Sous-file d'attente 1
- Réservé pour une utilisation ultérieure.
- Sous-file d'attente 2
- Région JMP en attente de travaux.
- Sous-file d'attente 3
- Région MPP attendant le travail.
- Sous-file d'attente 4
- Région MPP/JMP en attente d'une intention.
- Sous-file d'attente 5
- Région BMP/JBP en attente d'une intention.
- Sous-file d'attente 6
- Région MPP/BMP/JMP en attente d'entrée.
- Chaque sous-file d'attente représente une ressource. Une mise en file d'attente de la TVP sur une sous-file d'attente est en attente pour cette ressource.
- Les files d'attente TAB et SSQ sont formatées après
SCD LATCH EXTENSIONdans un vidage au format IMS , comme suit:**TAB - TRANSACTION ANCHOR BLOCK** 0D1873B0 005800FF 00000000 * ........* 0D1873C0 0000000E 00000000 00000000 00000000 *................* 0D1873D0 00000000 00000000 00000000 00000000 *................* LINES 0D1873E0-0D1873EF SAME AS THE ABOVE 0D1873F0 00000000 00000000 0CF18544 0CF00C40 *.........1...0. * 0D187400 00000000 00000000 00003614 00000000 *................* 0D187410 0CF18C40 0CF18C40 00000000 00000000 *.1. .1. ........* 0D187420 00003AEB 00000000 00000000 00000000 *................* 0D187430 00000000 00000000 0000396E 00000000 *................* 0D187440 00000000 00000000 00000000 00000000 *................* 0D187450 000010B4 00000000 0D187858 0D1878B0 *................* 0D187460 0D187908 0D187960 0D1879B8 0D187A10 *................* 0D187470 0D187A68 0D187AC0 0D187B18 0D187B70 *................* ........ ........ ........ ........ ***SCHEDULER SEQUENCE QUEUES*** DFSPSTQE 00000000 SUBQ 1 NOT ACTIVE SUBQ 2 NOT ACTIVE SUBQ 3 NOT ACTIVE SUBQ 4 NOT ACTIVE SUBQ 5 NOT ACTIVE SUBQ 6 NOT ACTIVE - Si les mots
NOT ACTIVEsuivent l'entrée de la sous-file d'attente, aucune spécification de partition n'est mise en file d'attente sur cette entrée. - Si des entrées sont répertoriées pour la sous-file d'attente 3, accédez à Pas de travail à effectuer.
- Si aucune entrée n'est répertoriées pour la sous-file d'attente 3, passez à l'étape 3.
- Existe-t-il des entrées de sous-file d'attente 4 ou 5?
La sous-file d'attente 4 ne s'applique pas à un environnement DBCTL.
Les entrées de la sous-file d'attente 4 ou 5 attendent que les conflits d'intention soient résolus.
- Si des entrées sont répertoriées pour la sous-file d'attente 4 ou 5, accédez à Confconflit d'intention.
- Sinon, passez à l'étape 4.
- Existe-t-il 6 entrées de sous-file d'attente?
Cette étape ne s'applique pas à un environnement DBCTL. Passez à l'étape suivante.
Les entrées de la sous-file d'attente 6 sont en attente d'entrée.
- Si des entrées sont répertoriées pour la sous-file d'attente 6, accédez à WAIT pour l'entrée.
- S'il n'y a pas d'entrées, passez à l'étape 5.
- Toutes les régions sont-elles prises en compte?
Comparez le nombre de régions dans SCDREGCT (SCD + X'C92') avec le nombre de régions mises en file d'attente dans les sous-files d'attente. (Le SCDREGCT est de 2 octets.)
- Si le nombre de régions est égal, passez à l'étape 6.
- Si le nombre de régions n'est pas égal, toutes les régions ne sont pas comptabilisées. Accédez à l'analyse pour Analyse PST.
- Signet le problème.
Cet incident se produit lorsque des entrées sont mises en file d'attente dans les sous-files d'attente et qu'aucune raison ne peut être trouvée pour empêcher leur planification, mais aucune planification. Signet le problème au centre de support IBM .
PST actif
Vous pouvez atteindre ce point dans l'analyse lorsque:
- La zone SCDREGCT n'est pas égale à zéro et aucune entrée n'est disponible dans les files d'attente de séquence du planificateur, ou
- Aucun problème n'a été détecté lors de l'analyse des données PSTs dans les sous-files d'attente, et le nombre de PSTs dans les sous-files d'attente est inférieur à celui de la zone SCDREGCT.
- Localisez les PSTs.
Recherchez la pile de PSTs de région dépendante dans le vidage. (Deux piles de PSTs existent dans le vidage. Les PSTs système sont imprimées séparément de la région dépendante PSTs.)
- La TVP est-elle prévue?
- Trouver tous les PST avec PSTTERM X'1BC' ) = X'02' (ACTIF) et PSTCODE1X'B7A' ) = X'10' (HORAIRE).
- Ignorez les PSTs sans le bit SCHEDULED sur.
- Pour les PSTs planifiées, effectuez une analyse SAP .
- La TVP au décalage moins X'04' (nom de zone PTR) est généralement l'adresse SAP . (La zone PTR est la dernière entrée de la ligne située au-dessus de la ligne X'0000' dans le vidage.) Si ce n'est pas le cas, PST + X'5B8'PSTSAV1 ) est l'adresse de la première zone de sauvegarde d'un ensemble, et WD1 dans cette zone de sauvegarde est l'adresse du SAP.
- Accédez à Déterminer le type de WAIT ou de LOOP en cours. Revenez ici après avoir effectué une analyse SAP pour les données PSTs planifiées uniquement.
- Y a-t-il des SAP non WAITING ACTIFS?
- Si l'un des PAS est marqué ACTIF, passez à l'étape 5.
- Si les PAS sont trouvés WAITING, utilisez l'analyse SAP normale pour signaler le problème. Utilisez le format d'argument de recherche Exemple d'argument de recherche.
- La région dépendante est-elle active dans une zone de sauvegarde IMS ?
- Si SAP +X'08' (SAPCNTRL) = X'10', cette région se trouve dans un appel DL/I dans IMS. Passez à l'étape 6.
- Sinon, passez à l'étape 7.
- Analysez le vidage de la région.
Vous devez analyser le vidage de la région à l'aide de l'adresse PSW pour identifier le problème. Se référer à la procédure WAIT/LOOP, étapes 6c et 6d.
- Déterminez ce que fait le programme d'application.
Vous devez analyser le vidage de la région à l'aide de l'adresse PSW pour identifier ce que le programme d'application fait.
Dans un environnement DBCTL, vous devez analyser le vidage de la région CCTL à l'aide de l'adresse PSW pour déterminer ce que font les programmes DRA, CCTL ou application. Se référer à la procédure WAIT/LOOP, étapes 6c et 6d.
- Déterminez la raison pour laquelle le loquet n'est pas libéré.
Si un verrou est attendu et que le propriétaire n'attend pas d'E-S, utilisez l'analyse SAP pour identifier la raison de l'application WAIT.
Pas de travail à effectuer
Cette section ne s'applique pas à un environnement DBCTL.
Vous êtes arrivé à ce point car la sous-file d'attente 3 contient des PSTs.
- Localisez les PSTs dans la sous-file d'attente 3.
Les adresses sous le nom de zone SQPSTADD sont les adresses PST. Dans le vidage formaté, les tables de spécification de partition commencent par l'identificateur
*** DB PST AREA ***. Recherchez les tables de spécification de partition qui se trouvent dans la sous-file d'attente 3. - Recherchez les classes que les PSTs peuvent exécuter.
PST + X'C68' (PSTCLASS) est une zone de 8 octets. Chaque octet indique une transaction de classe que la TVP est autorisée à traiter. Par exemple, si PSTCLASS = 00010003 00050006, la TVP peut traiter les classes 0001, 0003, 0005 et 0006.
- Pour chaque PST de la sous-file d'attente 3, recherchez la table de classe de transaction (TCT) pour chaque classe que la PST peut traiter. Il y a un TCT pour chaque classe.
- Obtenez l'adresse TAB à partir du SCDTAB. SCD+B88 pointe vers SCDTAB et est étiqueté TABEP dans IMS Dump Formatter.
- Prenez la première valeur de PSTCLASS et soustrayez 1.
- Multiplier ce résultat par 4.
- Ajoutez cette valeur à la valeur de décalage TABCLASS + X'A0'.
- TCT = 4 x (première valeur PSTCLASS-1) + X'A0'.
Lorsque l'octet de haut de commande contient une valeur X'80' , cela indique que la classe TCT n'est pas active.
- Des PME peuvent-elles être planifiées?
TCT +X'04' = Zéro ou l'adresse d'un SMB qui peut être planifié.
- Si la valeur est zéro, aucun objet SMB ne peut être planifié. Passez à l'étape 7.
- Si les PME peuvent être planifiées, locavez les PME, puis passez à l'étape 5.
- Le SMB est-il verrouillé ou arrêté?
- Si SMB +X'24' (SMBSTATS) = X'10' (STOPPED) ou X'08' (LOCKED), passez à l'étape 6.
- Sinon, passez à l'étape 9.
- Y a-t-il d'autres PME dans cette classe?
- Si SMB +X'04' (SMBQEFP) n'est pas égal à zéro, il s'agit de l'adresse de la prochaine PME. Passez à la prochaine session SMB et répétez l'étape 5.
- Si SMB +X'04' (SMBQEFP) = zéro, il n'y a plus de PME. Passez à l'étape 7.
- Toutes les classes sont-elles prises en compte?
- Si toutes les classes trouvées dans PST + X'C68' (PSTCLASS) ne sont pas prises en compte, répétez l'étape 4 pour chaque classe restante.
- Sinon, passez à l'étape 8.
- Toutes les régions sont-elles prises en compte?
Pour déterminer si toutes les régions sont prises en compte, utilisez SCDREGCT (SCD + X'C8A' ). SCDREGCT est de 2 octets. Il y a une TVP pour chaque région.
- Si le nombre de PSTs dans la sous-file d'attente 3 est égal à SCDREGCT et qu'ils ont été examinés et comptabilisés, aucune transaction n'est prévue pour les régions. Il s'agit d'un WAIT normal, et il n'y a pas de travail pour IMS . Il ne s'agit pas d'un incident.
- Sinon, revenchez à 3 pour poursuivre l'analyse de la file d'attente du planificateur.
- Localisez le répertoire PSB (PDIR).
Si le SMB n'est pas verrouillé ou arrêté, localiser le PDIR : SMB+X' 3C' (SMBPDIR) = adresse du PDIR.
- Le programme PDIR peut-il?Localisez l'entrée PDIR. Lorsque l'un des bits suivants est activé, le PDIR ne peut pas planifier.
- PDIR +X' 20' (PDIRCODE) =
- X'40' X'10' X'08' X'02'
- Si le PDIR ne peut pas planifier, revendu à l'étape 6.
- Sinon, passez à l'étape 11.
- PDIR est-il marqué parallèle?
- Si la PDIR est marquée comme étant planifiée mais non parallèle:
PDIR+X'20' (PDIRCODE) = X'04' (Scheduled) and: PDIR+X'21' (PDIROPTC) is not equal to X'04' (Not parallel)Si des entrées sont répertoriées pour la sous-file d'attente 6, accédez à WAIT pour l'entrée pour déterminer si l'un des serveurs de la sous-file d'attente 6 est des pseudo-WIFI planifiées sur le même PDIR. S'il existe une pseudo WFI planifiée sur le même fichier PDIR, signalai le problème au centre de support IBM .
S'il n'y a pas d'entrées répertoriées pour la sous-file d'attente 6 ou aucun des serveurs de la sous-file d'attente 6 pointés vers la même PDIR, revenons à l'étape 6.
- Si la mention est parallèle (PDIR +X'21' = X'04'), passez à l'étape 12.
- Si la PDIR est marquée comme étant planifiée mais non parallèle:
- Les messages sont-ils suffisamment mis en file d'attente pour une autre PST?
Si la PDIR est marquée parallèlement, vérifiez si suffisamment de messages sont mis en file d'attente sur le SMB pour planifier une autre PST.
- Pour ce faire, vous avez trouvé:
- SMB +X'46' (SMBPARLM) = nombre de messages par région (2 octets).
- SMB +X'44' (SMBRGNS) = nombre de régions de message planifiées pour le SMB (2 octets).
- SMB+X '1A' (SMBENQCT) moins SMB +X '18' (SMBDEQCT) = nombre de messages actuellement en file d'attente. (Pour trouver le nombre actuellement mis en file d'attente, soustrayez les messages mis en file d'attente de ceux qui ont été mis en file d'attente.)
- Si le nombre de messages actuellement mis en file d'attente (étape 12a3) est supérieur au nombre de messages par région (étape 12a1) multiplié par le nombre de régions de message planifiées (étape 12a2), suffisamment de messages sont mis en file d'attente sur le SMB pour planifier une autre PST. Revenez à l'étape 6.
- Sinon, passez à l'étape 13.
- Pour ce faire, vous avez trouvé:
- Signet le problème.
A ce stade, les régions sont en attente, mises en file d'attente dans la sous-file d'attente 3 avec des transactions qui peuvent être planifiées. Signet le problème au centre de support IBM .
Conflit d'objectifs
Vous pouvez atteindre ce point en ayant des entrées dans la sous-file d'attente 4 ou 5.
Un problème d'intention est indiqué lorsque la TVP se trouve dans la file d'attente de tentative.
- Localisez les PSTs qui se trouvent dans la sous-file d'attente 4 ou la sous-file d'attente 5, ou les deux.
Les adresses sous le nom de zone SQPSTADD sont les adresses PST. Pour analyser les zones INTENT CONFLICT d'une PST, vous devez localiser la TVP dans la section non formatée du vidage.
- Le bassin de travail de la DGSP est-il trop petit?
- Si PST + X'B7A'PSTCODE1 ) = X'06', le PST est dans la file d'attente du PSB pour l'espace du pool. Le bassin de travail de la DGSP est trop petit. Vous devez augmenter la taille du paramètre PSBW dans le membre DFSPBxxx.
- Sinon, passez à l'étape 3.
- Le pool Data Management Block (DMB) est-il trop petit?
- Si PST + X'B7A'PSTCODE1 ) = X'20', le pool DMB est trop petit. Vous devez augmenter la taille du paramètre DMB dans le membre DFSPBxxx.
- Sinon, passez à l'étape 4.
- L'intention peut-elle être satisfaite?
- Si PST + X'B7A'PSTCODE1 ) = X'40', l'intention ne peut être satisfaite. Passez à l'étape 6.
- Sinon, passez à l'étape 5.
- La région est-elle prévue?
- Si une TVP a les éléments suivants:
- PST +X 'B7A'PSTCODE1 = X'10' (PROGRAMMÉ)
- et :
- PST +X '1BC' (PSTTERM) = X'02' (ACTIVE)
La région est planifiée, et un WAIT normal pour la sous-file d'attente 4 et la sous-file d'attente 5. Habituellement, ce n'est pas un problème. Revenez à l'entrée de la sous-file d'attente 6 de Analyse PST, étape 4, et continuez.
- Sinon, passez à l'étape 7.
- Si une TVP a les éléments suivants:
- Il y a un conflit d'intention.
Si vous atteez ce point, il y a un conflit d'intention. Habituellement, le conflit d'intention est causé par un PSB ayant l'option exclusive. Cette option est définie dans PSBGEN. Voir la section PSBGEN du site IMS Version 15.6 System Utilities. Si l'option exclusive n'a pas provoqué le conflit d'intention, signalez le problème au centre de support IBM .
- Signet le problème.
Si vous atteez ce point, le problème est que la dernière région à terminer aurait dû afficher la TVP sur la sous-file d'attente 4 et la sous-file d'attente 5 et non. Dans un environnement DBCTL, la dernière unité d'exécution à annuler la planification d'un PSB n'a pas post-file d'attente 4 ou 5. Par conséquent, il existe un WAIT avec un PST sur la sous-file d'attente 4 ou la sous-file d'attente 5 sans région planifiée. Utilisez la sous-file d'attente 4 ou la sous-file d'attente 5 dans votre argument de recherche ou signalez l'incident au centre de support IBM .
WAIT pour l'entrée
Vous pouvez atteindre ce point uniquement en ayant des entrées dans la sous-file d'attente 6.
- Recherchez les PSTs dans la sous-file d'attente 6.
Les adresses sous le nom de zone SQPSTADD sont les adresses PST. Les PSTs se trouvent dans la pile de PSTs.
- Rechercher les blocs de messages du planificateur (PME) pour les PSTs.
Pour chaque PST mis en file d'attente dans la sous-file d'attente 6, recherchez la SMB associée: PST +X'C4' (PSTSMB) = adresse du SMB.
- Y a-t-il des régions dans la sous-file d'attente 6 pseudo-WIFI?
- Si SMB +X'27' (SMBFLAG3) = X'08' (transaction WFI), la région n'est pas une pseudo WFI.
- Si la région est une pseudo-WFI, vérifiez si la région détient les ressources requises par les transactions en attente de traitement.
- Des messages sont-ils mis en file d'attente sur SMB?
Aucun message ne doit être mis en file d'attente sur le SMB.
- SMB+X '1A' (SMBENQCT) moins SMB+X' 18' (SMBDEQCT) = nombre de messages en file d'attente
- Si des messages sont mis en file d'attente sur le SMB, passez à l'étape 6.
- Si aucun message n'est mis en file d'attente, passez à l'étape 5.
- SMB+X '1A' (SMBENQCT) moins SMB+X' 18' (SMBDEQCT) = nombre de messages en file d'attente
- Toutes les régions sont-elles prises en compte?
Comparez le nombre de régions mises en file d'attente dans les sous-files d'attente avec le nombre dans SCDREGCT (SCD + X'C92') (2 octets).
- Si les nombres sont égaux, toutes les régions sont prises en compte et les régions IMS se trouvent dans un environnement de planification normal. Le problème ne concerne pas la planification.
- Si ce n'est pas le cas, d'autres régions sont actives dans IMS. Accédez à PST actif.
- Signet le problème.
Le problème est que les messages IMS sont mis en file d'attente sur le SMB et que l'attente d'entrée (sous-file d'attente 6) n'est pas affichée. Signet le problème au centre de support IBM .
Boucle
Utilisez les procédures de diagnostic système z/OS standard pour les boucles.
En utilisant le RB trouvé à l'étape 6c de la procédure WAIT/LOOP, déterminer l'adresse du PSW. L'adresse PSW est intitulée OPSW. L'adresse PSW est toujours le deuxième mot qui suit l'étiquette. Cette adresse PSW appartient à l'un des modules impliqués dans la boucle.
Vous pouvez utiliser la trace du système z/OS pour examiner les entrées de l'ASID et du TCB indiquées dans la zone de travail de la répartition à l'étape 5 de la procédure WAIT/LOOP. L'adresse PSW dans les entrées de trace système indique les modules impliqués dans la boucle.
Localisez les adresses PSW dans la section de stockage du vidage et scannez vers l'arrière à travers les capteurs de l'oeil sur le côté droit du vidage jusqu'à ce que vous trousez un identificateur de module.
Il se peut que le module de bouclage ne soit pas un module IMS . Parfois, les adresses se trouvent dans la zone de groupe de liens (LPA) ou dans le noyau et peuvent nécessiter une carte de l'APL ou du noyau.
Créer l'argument de recherche
Vous pouvez utiliser les mots clés supplémentaires suivants dans l'argument de recherche pour affiner la recherche, mais ils peuvent ne pas être nécessaires.
Mot clé: LOOP
A ce stade, vous pouvez être sûr que vous êtes en situation de boucle. Par conséquent, LOOP est un mot clé approprié pour l'argument de recherche.
Mot clé: noms de module impliqués dans la boucle
Les noms de module dérivés de la procédure de boucle ci-dessus sont également des mots clés valides.
Mot clé: libellé dans le module
S'il s'agit d'une boucle serrée, les libellés de la liste d'assemblage des modules impliqués peuvent être des mots clés utiles.
Mot clé: mots clés associés supplémentaires
Les événements externes peuvent déclencher des boucles. Ces événements peuvent être indiqués par des messages de console ou être liés à une procédure en cours d'exécution au moment où le LOOP a commencé.
Exemple d'argument de recherche
Examinons le scénario suivant :
- IMS est entré dans une boucle.
- Les modules actifs indiqués dans la chaîne RB et la table de trace système z/OS étaient DFSCFEI0 et DFSCFE00.
- La boucle a commencé après que l'opérateur a émis une commande /DISPLAY NODE.
5655J3800 LOOP DFSCFE00 | DFSCFEI0 | DISPLAY | NODEPIDS/5655J3800 LOOP RIDS/DFSCFE00 | RIDS/DFSCFEI0 | PCSS/DIS | PCSS/NODEAvec cet argument de recherche, vous risqueriez de recevoir de nombreux hits, ce qui contiendra probablement l'APAR décrivant votre problème. Vous pouvez alors prendre différentes combinaisons des mots clés supplémentaires qui ont été comparés à l'opérateur OU dans l'exemple ci-dessus et utiliser l'opérateur ET à la place. Vous pouvez utiliser cette technique pour affiner la zone de recherche jusqu'à ce que vous trouez l'APAR approprié.
Si la boucle n'était pas dans un module IMS , n'utilisez pas l'ID composant IMS , 5655J3800.
Atattente du système
Utilisez les procédures de diagnostic des systèmes z/OS standard.
Si l'adresse PSW est pour un module système, incluchez cette information lors de la notification du problème. Vous pouvez utiliser le nom du module dans votre recherche avec le mot clé WAIT.
Arrêter le traitement
Utilisez cette analyse si l'opérateur a émis un /CHECKPOINT FREEZE, DUMPQ, ou un PURGE pour IMS et IMS n'a pas pu s'arrêter normalement. Avant de sortir IMS du système, veillez à utiliser une commande /DISPLAY SHUTDOWN STATUS . Obtenez la liste de la commande /DISPLAY et de toute activité ultérieure pour trouver les conditions inhabituelles qui auraient pu empêcher l'arrêt ordonné d' IMS.
Vous devez également utiliser cette analyse si IMS s'arrête et ne se termine pas normalement. Par exemple, lorsque IMS est faible dans l'espace de la file d'attente de messages, il s'arrête.
Avant de commencer cette procédure, vous devez obtenir un vidage IMS afin d'examiner les paramètres de bits. Notez que si vous n'avez reçu que la première partie du message DFS994I lors du processus d'arrêt, VTAM peut être impliqué dans l'échec. (Pour un environnement DBCTL, ignochez les autres instructions qui font référence à VTAM dans cette rubrique et dans la rubrique suivante, Analyse d'arrêt (CHE FREEZE, DUMPQ ou PURGE).) Si vous avez reçu la commande DFS994I xxx (FREEZE, DUMPQ, PURGE), mais pas DFS994I IMS SHUTDOWN COMPLETED, veillez à obtenir un cliché de VTAM et de IMS. Voici deux façons d'obtenir un cliché:
- Entrez la commande z/OS
DUMPpour vider l'espace adresse VTAM, puis modifiez IMS avec un vidage. - Entrez la commande z/OS
DUMPpour vider les espaces adresse VTAM, IMS , DL/I et CCTL, puis modifiez IMS en l'absence de vidage.Veillez à inclure l'option
RGNavec les autres valeurs par défaut SDATA standard dans la commandeDUMP.
Dans la section Analyse de l'arrêt
qui suit, notez ce qui suit:
- Les déplacements et les conditions de test peuvent changer lorsque la maintenance est appliquée à un système.
- Les paramètres de bits affichés sont cumulatifs. Cela signifie qu'ils se combinent généralement avec tous les bits déjà définis dans l'octet. Vérifiez les paramètres de bits comme décrit. Si un bit n'a pas été défini ou réinitialisé comme indiqué, incluez le nom du module et les paramètres de bits cumulatifs dans chaque octet de votre argument de recherche.
- SET active le bit ON. RESET active le bit OFF. D'autres bits de l'octet peuvent déjà être ON.
- Il est essentiel d'utiliser l'analyse suivante pour déterminer si les bits indiqués étaient SET ou RESET et utiliser uniquement les sections DUMPQ/FREEZE ou PURGE, le cas échéant.
- Les zones de sauvegarde (SAs) peuvent ne pas toujours identifier le dernier module à contrôler. Dans certains cas, le contrôle est transmis au module initiateur (tel que DFSCST00), et vous ne trouvez aucune trace de modules inférieurs dans les SAs.
- Le bloc de contrôle principal dans l'analyse des problèmes d'arrêt est le répertoire du contenu du système (SCD). Ce flux de contrôle répertorie la plupart des modules impliqués. Lorsque vous trouvez une zone qui n'a pas les bits SET ou RESET comme indiqué, arrêtez l'analyse et signalez le problème.
- Sachez que le code défectueux peut produire des résultats qui semblent contredire cette information.
- L'analyse suivante ne répertorie pas toutes les actions qui se déroulent dans le processus d'arrêt de IMS , mais uniquement l'activité qui entraîne la modification des paramètres de bits dans les zones SCD clés.
- Les commentaires diffusés tout au long de l'analyse sont à titre d'information seulement. Par exemple, l'instruction
Si l'entrée ou la sortie est en attente, revenchez à DFSICIO0 avec RC=C pour terminer
est pour information. Ne regardez pas les codes retour, mais examinez uniquement les paramètres de bits.
Analyse d'arrêt (CHE FREEZE, DUMPQ ou PURGE)
N'oubliez pas que dans cette analyse, vous examinerez les paramètres de bits, et non les valeurs hexadécimales.
Ces sections ne s'appliquent pas à l'arrêt DBCTL:
- PURGE
- DFSICL20
- DFSICLX0
- DFSICIO0
- DFSIPCP0
- DFSCPCP0
- DFSICL20
- Si PURGE, définissez SCDCKCTL (X'C08') = X'34' , puis définissez SCDSTOP1 (X'C02') = X'80'
- Si ce n'est pas PURGE, alors:
- Si DUMPQ, mettre SCDCKCTL (X' C08 ' ) = X'1C'
- Si FREEZE, définissez SCDCKCTL (X'C08') = X'14'
- Réinitialiser les lignes POLL, puis (ne s'applique pas à DBCTL)
- Set SCDSTOP1 (X'C02') = X'C0' (pour DBCTL, définissez AWE sur TRM1)
- DFSICLX0
- DFSICIO0
- DFSIPCP0
- Si SCDCFLG1 (X'AC7') = X'08', alors
- Définissez SCDCQFLG (X'AC8') = X'04' et
- Set SCDCNXW4 (X'ACF') = X'40'
- Si l'entrée ou la sortie est en attente, revenchez à DFSICIO0 avec RC=C pour terminer.
- Lorsqu'il n'y a pas d'entrée ou de sortie en attente, ou lorsque l'entrée ou la sortie est terminée, procédez comme suit:
- Set SCDCPCTL (X'AC4') = X'80'
- Définissez AWE sur TRM1
- Si SCDCFLG1 (X'AC7') = X'08', alors
- DFSCST00
- DFSTRM00
- Pour PURGE
- AWE = TRM1, première phase de l'arrêt
- Si SCDIDCNT + 1 (X'BC8') n'est pas égal à X'000000' et SCDCKCTL (X'C08') = X'20' (PURGE):
- Set SCDSTOP1 (X'C02') = X'10'
- Set SCDSTOP1 (X'C02') = X'02'
- Si SCDFTFLG (X'290') = X'20' (Fast Path actif), DBFTERM0 affiche les régions Fast Path pour SHUTDOWN
- DFSTRM00
- Pour DUMPQ ou FREEZE
- Si SCDIDCNT + 1 (X'BC8') n'est pas égal à X'000000' et SCDCKCTL (X'C08') n'est pas égal à X'20' (Not PURGE)
- Set SCDSTOP1 (X'C02') = X'04'
- Set SCDSTOP1 (X'C02') = X'02'
- Si SCDFTFLG (X'290') = X'20' (Fast Path Active), DBFTERM0 affiche les régions Fast Path pour SHUTDOWN
- Si SCDIDCNT + 1 (X'BC8') n'est pas égal à X'000000' et SCDCKCTL (X'C08') n'est pas égal à X'20' (Not PURGE)
- Pour DUMPQ, PURGE ou FREEZE
- Si le Fast Path était actif au retour de DBFTERM0, ou si le Fast Path n'était pas actif, et si SCDREGCT X'C8A' ) n'est pas égal à X'0000' (RÉGIONS ACTIVES), afficher les PST en attente dans l'ordonnanceur.
- Si SCDSHFL1 (X '3A4' ) = X'80'IRLM dans le système) ou SCDIDCNT+1 (X' BC8 ' ), ou les deux, n'est pas égal à X'000000', retourner à DFSCST00 pour attendre la fin des régions, Si DBCTL, notifier DRA avant de retourner à DFSCST00.
- Lorsque ou si SCDIDCNT + 1 (X'BC8') = X'000000' (RÉGIONS ENDED), définissez SCDSTOP1 (X'C02') = X'01'.
- Pour PURGE uniquement
- Si SCDCKCTL (X'C08') = X'20' (PURGE)
- Set SCDSTOP1 (X'C02') = X'20'
- IWAIT pour que tous les résultats aillent.
- Pour DUMPQ, PURGE ou FREEZE
- Lorsque toutes les sorties sont effectuées pour PURGE ou FREEZE ou DUMPQ, procédez comme suit:
- Si SCDFTFLG (X'290') = X'20' (Fast Path actif), DBFTERM1 ferme les zones.
- Si SCDFTFLG (X'290') n'est pas égal à X'20' ou lorsque les zones Fast Path sont fermées, procédez comme suit:
- Si SCDSMMS1 (X'033') = X'02' (SAS DLI), alors:
- Indiquez à la région DL/I de fermer les bases de données (DFSSDL40).
- IWAIT pour fermer les bases de données.
- Si ce n'est pas le cas, laissez DFSDLOC0 fermer les bases de données.
- Si SCDSMMS1 (X'033') = X'02' (SAS DLI), alors:
- DFSCPCP0
Définissez le code retour (RC) = 8 pour demander à DFSIPCP0 si la communication est toujours en cours.
- DFSIPCP0 (DFSIPCP2)
- Si aucune sortie ou aucun message sous Q3, définissez le code retour (RC) = 0 pour informer DFSCPCP0.
- Si la sortie ou les messages sous Q3, définissez le code retour (RC) = 4 pour informer DFSCPCP0, ce qui entraîne DFSCPCP0 à l'IWAIT.
- DFSCPCP0
- Si la sortie est en attente (RC = 4)
- Set SCDCPCTL (X'AC4') = X'08'
- Set SCDSTOP1 (X'C02') = X'40'
- IWAIT pour le DC à la fin.
- Si aucune sortie ou lorsque la sortie est terminée
- Off SCDCPCTL (X'AC4') = X'08' (réinitialisation du bit)
- Set SCDSTOP1 + 1 (X'C02') = X'08'
- Réinitialiser toutes les lignes candidates pour le message SHUTDOWN
- Définissez CTBFLAG3(0D) = X'10' (pour tous les terminaux qui doivent recevoir le message d'arrêt)
- Si la sortie est en attente (RC = 4)
- DFSICLX0
- DFSICIO0
- DFSIPCP0
- Si CTBFLAG3(0D) = X'10':
- Définir CTBACTL (10) = X'20'
- Définir CTBACTL (10) = X'10'
- RC = 8 à DFSICIO0 (envoyer un message SHUTDOWN)
- Si NON CTBFLAG3(0D) = X'10':
- Set SCDDFLGS (X'718') = X'80'
- Set SCDCPCTL (X'AC4') = X'20'
- RC = 4 à DFSICIO0 (lignes de mise au repos)
- Si CTBFLAG3(0D) = X'10':
- DFSICIO0
- Si RC = 4, inactif les lignes
- Si RC = 8, envoie le message DFS991 - IMS SHUTDOWN
- L'interruption WRITE à partir du message SHUTDOWN génère les résultats suivants:
- Set off CTBFLAG5(0F ) = X'80' (réinitialisation)
- Set off CTBFLAG3(0D ) = X'10' (the)
- Définition de CTBACTL (10) = X'30' (bits)
- DFSIPCP0
Lorsque toutes les activités de ligne sont arrêtées
- DFSCPCP0
- DFSTRM00
- Si DBCTL définit SCDSTOP = SCDSTSNT, définissez SCDSTOP1 + 1 (X'C02') = X'01'
- DFSRCRT0
- DFSRCP00
- Envoi
DFS994I *CHKPT yyddd / hhmmss*ctype
(première partie du message DFS994I ) - Définir AWE =
TRM2
- Off SCDCKCTL (X'C08') = X'04' (réinitialisation du bit)
- Envoi
- DFSTRM00
Set SCDTRMFL (X'430') = X'40'
- DFSCST00
- DFSTRM00
- Si DLI/SAS SCDSMMS1 (X'033') = X'02', transmettez AWE à DFSSDL40 pour commencer l'arrêt normal
- Si non DLI/SAS ou lorsque DFSSDL40 renvoie
- Si SCDRFPIN (X'C32') = X'80' (erreurs Fast Path):
- Message d'erreur d'impression
- Off SCDRFPIN (X'C32') = X'80' (réinitialisation du bit)
- Fermer les fichiers de file d'attente (ne s'applique pas à DBCTL)
- IWAIT pour la fermeture
- Désactivation de SCDSTOP1 (X'C02') = X'08' (réinitialisation du bit)
- DFSTERM0
- Arrêter le journal DASD
- Off SCDRECTL (X'146') = X'80' (réinitialisation du bit)
- Arrêter RDS
- Arrêter les tâches de type de système IMS
- DBRC Signoff
- Quitter IRLM
- Fermer l'ACB VTAM (non applicable à DBCTL)
- Si DLI/SAS, SCDSMMS1 (X'033' ) = X'02' et que la BCE à SCDRSETF X'D1C' n'est pas égale à X'40' (comptabilisé) :
- IWAIT pour la fin de la région DL/I
- Définir AWE =
TRM3
- Set SCDTRMFL (X'430') = X'20'
- Envoi
DFS994I IMS SHUTDOWN COMPLETED
(deuxième partie du message DFS994I )
- DFSTRM00
- DFSCST00
- DFSICL20
Procédure IRLM
Les états WAIT peuvent être rencontrés lors du traitement IRLM dans quatre zones:
Interblocage impliquant des ressources nonIRLM
- Description d'incident
- Les programmes d'application en attente de ressources nonIRLM et de ressources IRLM en attente sont en attente d'autres applications détenant également des ressources IRLM . IRLM ne peut pas détecter les interblocages impliquant des ressources nonIRLM .
- Détection
- Utilisez les procédures de diagnostic IMS WAIT pour reconnaître les ressources nonIRLM attendues. Suivez les chaînes RLB représentant les ressources détenues ou demandées pour chaque unité de travail demandant (WHB) de reconnaître les ressources IRLM attendues. Si l'état d'attente s'est produit suite à une erreur IRLM , la fonction / sous-fonction est IRLM/DEADLK.Voici un exemple d'argument de recherche:
569516401 AR101 WAIT IRLM IRLM/DEADLKPour une recherche structurée de base de données, utilisez cet argument de recherche:PIDS/569516401 LVLS/101 WAIT RIDS/IRLM RIDS/DEADLK
Interblocage impliquant uniquement les ressources IRLM
- Description d'incident
- Les programmes d'application sont bloqués pour les ressources IRLM . Si tous les programmes d'application sont en attente de ressources IRLM (aucun programme d'application en cours d'exécution ne peut libérer les verrous que les autres programmes d'application attendent), il s'agit d'un blocage. IRLM doit détecter cette condition et afficher l'un des serveurs comme étant incapable d'obtenir le verrou en raison d'un interblocage.
- Détection
- Suivez les chaînes RLB représentant les ressources détenues ou demandées pour chaque unité de travail demandant (WHB) de reconnaître les ressources IRLM attendues. Si l'état d'attente s'est produit suite à une erreur IRLM , la fonction / sous-fonction est IRLM/DEADLK.Voici un exemple d'argument de recherche:
569516401 AR101 WAIT IRLM IRLM/DEADLKPour la recherche structurée de bases de données, utilisez cet argument de recherche:PIDS/569516401 LVLS/101 WAIT RIDS/IRLM RIDS/DEADLK
La demande de verrouillage n'a pas été accordée car le détenteur n'a pas libéré de verrou
- Description d'incident
- Un programme d'application a demandé un verrou, mais la demande n'a pas été accordée car le détenteur de la ressource ne l'a pas libéré. Cela n'entraîne pas de blocage. Toutefois, si le demandeur n'est pas dépassé, sa tâche et les autres personnes en attente risquent d'entrer dans un état d'attente.Voici un exemple d'argument de recherche:
569516401 AR101 WAIT IRLMPour la recherche structurée de bases de données, utilisez cet argument de recherche:PIDS/569516401 LVLS/101 WAIT RIDS/IRLM
Le verrou IRLM n'est pas disponible
- Description d'incident
- Une erreur de traitement IRLM peut entraîner l'indisponibilité permanente d'un verrou IRLM . Si cette condition existe, aucune nouvelle demande IRLM ne peut être traitée.
Si cette erreur se produit, appelez le centre de support IBM pour obtenir de l'aide sur le diagnostic du problème. Le représentant du support vous indiquera le type de documentation à rassembler.