MainframeSupports
tip uge 50/1999:

CICS tilbyder en lang række muligheder for fejlhåndtering af EXEC CICS-kald. Vi vil gennemgå nogle af dem i denne uges tip. Med mindre man gør noget, så er default for et EXEC CICS-kald at abende transaktionen, hvis svaret ikke er NORMAL, med mindre der gælder særlige regler for kaldet. Alt det kan man lave om på. Lad os se på et eksempel:
EXEC CICS
  IGNORE CONDITION DUPREC
END-EXEC
EXEC CICS
  WRITE FILE('MYFILE')
  FROM(MY-RECORD) RIDFLD(MY-KEY)
END-EXEC
EXEC CICS
  HANDLE CONDITION DUPREC
END-EXEC

Først beder vi CICS om at lade være med at gøre noget ved fejltypen DUPREC. Derefter udsteder vi kaldet og til sidst beder vi CICS om at håndtere DUPREC på sædvanlig måde. Hele ideen i eksemplet er, at hvis den record, vi skriver på VSAM KSDS'et findes i forvejen, så er vi ligeglade. Det elegante er, at vi ikke har skrevet en eneste IF. Samme metode kan anvendes på alle andre andre CICS-kald og deres fejltyper. Hvis man altid vil have kontrollen tilbage til programmet efter et CICS-kald, så skal man tilføje en option kaldet NOHANDLE:
 

EXEC CICS
  LINK PROGRAM('MYPROG')
  NOHANDLE
END-EXEC

I dette eksempel beder vi CICS om at give os kontrollen tilbage, også selv om MYPROG ikke er tilgængelig for den pågældende CICS. Hvis vi efter CICS-kaldet vil vide, hvordan det gik, skal vi spørge på, hvad EIBRESP indeholder og reagere derefter. Man kan læse mere om CICS fejlhåndtering i Application Programming Reference. Afhængig af ens CICS-version, så hedder den enten noget med CICS eller noget med Transaction Server, og i næste release hedder CICS nok noget helt tredie.

Sidste uges tip        Tip oversigten