
Ved Renden 31 2870 Dyssegaard Tel. +45 23 34 54 43
| 
MainframeSupports tip uge 48/2012:
Hvis den installation, du arbejder på, har udarbejdet et centralt system til at opsamle
programfejl, så vil jeg på det varmeste anbefale dig at bruge dette system og lade være med
at læse mere af dette tip.
Jeg har konstateret, at meget få installationer (i hvert fald i Danmark) har udarbejdet
et centralt system til opsamling af programfejl. Der stilles typisk også store krav til
et sådant system:
- Det skal være let at bruge for programmørerne.
- Det skal kunne anvendes både fra CICS/IMS og fra batch.
- Det skal kunne registrere fejl fra både DB2 programmer og ikke-DB2 programmer
- Programmørerne skal huske at kalde systemet, når deres programmer fejler
- Programmerne skal kodes, så de får kontrol efter så mange fejlsituationer som
muligt
Og jeg har sikkert glemt et par stykker. Kravslisten og de krav, det stiller til
programmørerne med hensyn til programmeringsstil, får ofte et centralt system til opsamling
af fejl til at blive i mølposen. Der findes dog installationer, hvor det er lykkedes, og her
er fejlfinding i den grad en leg i forhold til andre installationer.
Hvis du selv er træt af manglen på et centralt system til fejllogning, så er her en simpel
ide til, hvordan det kan gøres for alle DB2-programmer. For det første skal du oprette en
DB2-tabel til at logge fejlene i. Hver gang dit program støder på en fejl, der fortjener at
blive logget og derudover kræver en ROLLBACK, så gør følgende:
- Udsted en ROLLBACK (i CICS skal du bruge en EXEC CICS SYNCPOINT ROLLBACK).
- Lav en INSERT på din fejltabel med så mange informationer som muligt.
- Udsted en COMMIT (i CICS skal du bruge en EXEC CICS SYNCPOINT).
- Terminer eksekveringen.
Installationer med systemer til fejllogning bruger typisk MQ til at logge fejlen i, fordi
MQ kan skrive til en kø uden at data skrevet til køen bliver rullet tilbage. Men som det ses
af ovenstående, så er det slet ikke nødvendigt at komplicere fejllogningen ved at inddrage
endnu en komponent. Den almindelige opfattelse af at bruge DB2 til fejllogning er, at det
ikke kan lade sig gøre, fordi data skrevet til DB2 vil blive rullet tilbage. Men hvis du
alligevel har styr på, at du skal lave ROLLBACK, så kan du da lige så godt lave en INSERT
efter ROLLBACK og så lave en COMMIT. Det påvirker absolut ingenting udover, at du nu får
registreret din fejl på en let tilgængelig måde.
Forrige danske tip
Last tip in english
Tip oversigten
|