MainframeSupports
tip uge 35/2002:

Du har måske oplevet at du ikke kunne lave newcopy af et program i CICS. Problemet opstår typisk efter en ABEND i det pågældende program. Hvordan du efterfølgende har fået løst problemet ved jeg af gode grunde ikke, men dette tip beskriver et nemt løsningsforslag.

Oftest skyldes problemet, at programmets såkaldte residency count ikke er 0. Du finder residency count ved at lave en CEMT I PROG('MYBADPGM'). En af de viste oplysninger om progammet er RES(999), hvor 999 er residency count. Den skal være 000 for, at du kan lave en newcopy. RES bliver talt een op, når et program bliver eksekveret af et task. Når et task er færdig med at bruge programmet, så bliver RES talt een ned. Men nogle gange, så glemmer CICS at tælle RES ned, når et program abender.

Du kan selv tælle RES ned ved hjælp af CECI. Du udsteder simpelthen en CECI RELEASE PROGRAM('MYBADPGM'). Først siger CECI til dig, at den er ABOUT TO EXECUTE COMMAND. Herefter trykker du Enter og nu siger CECI til dig, at COMMAND EXECUTION COMPLETE. I bunden af skærmen er der nu et felt kaldet RESPONSE og ud for det står der NORMAL, hvis RES var større end 0, da du udførte kommandoen. Hvis RES var lig 0, står der i stedet INVREQ for Invalid request. Man kan nemlig ikke RELEASE et program med RES(0). Man kan i øvrigt heller ikke RELEASE et program med RES > 0, hvis det bliver brugt af et task.

Hvis du ikke har autorisation til at udføre CECI på den CICS, hvor du har problemet, så må du søge hjælp hos de højere magter, såsom teknisk helpdesk eller CICS-systemprogrammørerne. Du kan også skrive et lille CICS-program, som laver EXEC CICS RELEASE PROGRAM(pgm-name), så du kan lave RELEASE, når det passer dig. I øvrigt kan du finde alle programmer med en bestemt RES med CEMT I RES(X), hvor X er den RES, du er interesset i.

Du skal vide, at RES også bliver talt op, når et program bliver loadet ind i storage med en EXEC CICS LOAD PROGRAM. Når det task, der lavede loaden terminerer, så bliver RES talt ned igen, men hvis programmet blev loadet med HOLD option, så bliver RES ikke talt ned. Man kan også definere programmer som residente. De får kun talt deres RES ned, hvis den er større end een. Du skal passe på med at lave RELEASE af sådanne programmer, da det netop er meningen, at deres RES er større end 0.

Forrige danske tip        Last tip in english        Tip oversigten