MainframeSupport har været dybt involveret i løsningen og afprøvningen af år2000-problemet, og vi har set lidt af hvert. Vores bud på den oftest forekommende fejl er, at '19' er hårdkodet som århundrede i diverse systemer. Vi har f. eks. stødt på følgende elegante løsning:
Det skal nok hjælpe os "sikkert" ind i år 2000. En af de mere subtile fejl fandt vi ved den første passage af år 2000 på en isoleret MVS-partition. I en subrutine, der arbejdede på et pakket felt (COMP-3 i COBOL, PACKED DECIMAL i PL/1 og DECIMAL i DB2) blev der lagt 1 til århundredet ved at lægge 1 binært til den byte, der indeholdt århundredet. Efter 19 hexadecimalt kommer 1A og ikke som forventet 20 med en efterfølgende 0C7 abend (data exception) som resultat.
Der var også nogle, der mente, at bare man gemmer sine datoer i en DATE-kolonne i DB2, så er den hellige grav velforvaret. Men nu er det så viseligt indrettet, at DB2 faktisk accepterer 99-12-31 som en valid dato, mens det straks kniber lidt mere med 00-01-01. Faktisk kommer 100-01-01 efter 99-12-31 i DB2, men det er vist ikke et skudår... Ja, der findes sikkert mange andre rigtig sjove eksempler på, hvordan man rundt omkring har oplevet af år2000-problemer.
Med håb om så få fejl som muligt ønskes du hermed en rigtig glædelig jul og et godt nytår.