MainframeSupports
tip uge 42/2007:

En af de ting, alle CICS installationer ønsker at undgå, er, at et CICS program loop'er. Derfor har IBM fra starten indført en parameter i CICS kaldet runaway time. Hvis et CICS task bruger mere CPU mellem to EXEC CICS kald, end runaway time angiver, så stopper CICS task'et med en AICA abend. Desværre findes der ind imellem tasks, som har behov for at bruge mere CPU mellem to EXEC CICS kald end runaway time tillader.

Den nemmeste og desværre også dårligste måde at løse problemet på er ved at sætte runaway time op. Det kan gøres med CEMT I SYS, hvis man ellers er autoriseret til at ændre runaway time parameteren. Parameteren vises og angives i millisekunder. Problemet ved at justere runaway time op generelt er, at man risikerer, at tasks, der burde være stoppet langt hurtigere, nu får mere snor.

En anden måde er at udstede en eller flere EXEC CICS SUSPEND kald centrale steder i den CPU krævende behandling. Fordelen ved EXEC CICS SUSPEND er, at kaldet absolut ingenting gør, bortset fra at overlade kontrollen til et andet CICS task. På et eller andet tidspunkt vil CICS så beslutte sig for at give det CPU krævende task kontrollen tilbage. Det er en god løsning, men problemet er, at hvis task'et virkelig loop'er, så bliver det aldrig stoppet af CICS, men på den anden side gør det heller ikke alt for meget skade, hvis der bliver udstedt EXEC CICS SUSPEND ofte.

En anden måde at løse op for problemstillingen er ved at specificere runaway på transaktionsniveau. I CEDA findes der en parameter kaldet runaway, som kan sættes til SYSTEM, 0 eller en værdi mellem 500 og et alt for stor tal. SYSTEM (default) betyder, at det er den generelle runaway time fra CEMT I SYS, der anvendes. 0 betyder, at der slet ikke kontrolleres for loop, BRUG ALDRIG DENNE VæRDI. øvrige værdier er i millisekunder.

Af en eller anden tåbelig grund kan man ikke justere runaway parameteren på transaktionsniveau vha. CEMT I TRANS. Det havde ellers været elegant. Hvis man er en rigtig CICS haj, så kan man benytte EXEC CICS INQUIRE TRANSACTION og EXEC CICS SET TRANSACTION til at justere runaway parameteren "on the fly". Og husk at CECI kan udføre en hvilken som helst EXEC CICS kommando, hvis du ellers er autoriseret til CECI. Derfor kan man altså via CECI justere runaway på transaktionsniveau.

Forrige danske tip        Last tip in english        Tip oversigten