|
==> |
Tilbake til hovedsiden. |
==> |
Tilbake til oversikt over tips. |
|
Det er en kunst å lese feilmeldinger. Det finnes feil og det finnes følgefeil. I tillegg finnes det feil som ikke er feil. Under er et eksempel på det siste; feil som ikke er feil selv om det kan se veldig dramatisk ut. Anonymisert utsnitt fra en DWS logg fra AGRESSO 55: 09:35:13 1 > Looking for transactions (AGRDWS0010) 09:35:13 > Number of rows ready for DWS = 314 09:35:13 > * * * START Agresso Data Warehouse Server * * * 09:35:13 > Start adw_init 09:35:13 > Begin transaction adwtrans 09:35:13 337 > Insert into 'adwtransshd' from 'adwtrans' (ADW_INIT0010) 09:35:13 372 > DELETE FROM adwtrans (ADW_INIT0020) 09:35:13 > ERROR Wrong number insert/delete on adwtrans 09:35:13 > Aborting transaction... 09:35:13 > Printing: Print Flag is 'OFF' for Printer ''. No printing will be performed. 09:35:13 0 > Check for existing blob_id on acrrepfile (REP2BLOB0040) 09:35:13 1 > ExecUpdWithReturn successfully fetched value 1106367! 09:35:13 1 > Insert into acrprintblob (REP2BLOB0030) 09:35:13 1 > Inserted reference into acrrepfile for report file 'f:\agrdata\agr***\server logging\agrdws_60264.agm' and blob_id = 1106366 (REP2BLOB0010) 09:35:13 > Start flag_release 09:35:13 1 > Delete job from acrsemaphore (FLAG_CHK0040) 09:35:13 > End flag_release 09:35:13 > CLOSING DATABASE Process Terminated: 20081113 09:35:13 Status : Technical Error (4) during run-time in process E:\Agresso55\Bin\RunServer.exe "AgrDWS.DLL" -s "-qDWS" "Agr***". Status : Technical Error (4) during run-time in process E:\Agresso55\Bin\RunServer.exe "AgrDWS.DLL" -s "-qDWS" "Agr***". Dette ser utvilsomt dramatisk ut, men det er ikke det. Her prøver loggen å fortelle hva som har skjedd: 09:35:13 > ERROR Wrong number insert/delete on adwtrans Det som egentlig har skjedd her er at DWS prosessen har kjørt mens det har vært annen aktivitet i databasen. Når DWS prosessen startet lå 314 rader klar til prosessering fra AGRTPS & co. 09:35:13 > Number of rows ready for DWS = 314 DWS prosessen fortsetter med å kopiere disse 314 radene fra adwtrans til adwtransshd. 09:35:13 337 > Insert into 'adwtransshd' from 'adwtrans' (ADW_INIT0010) Men den gang ei. Det viser deg at det har kommet 23 nye rader slik at det ikke er 314 men 337 rader som har blitt kopiert. Akkurat det er akseptabelt, for det har ingen annen konsekvense enn den kosmetiske på loggen. Deretter sletter DWS prosessen alle radene i adwtrans, siden disse, 337 av dem, nå er kopiert til adwtransshd. Problemet er bare at det har kommet enda 35 nye rader inn i adwtrans mellom kopieringen til adwtrans og slettingen fra adwtransshd. 09:35:13 372 > DELETE FROM adwtrans (ADW_INIT0020) DWS prosessen så for seg å slette 337 rader,men resultatet ble 372. Dette er ikke akseptabelt,for da går jo disse 35 radene tapt. Løsningen DWS prosessen velger er å tilbakestille både kopieringen og slettingen i trygg forvisning om at tallene vil stemme ved en av de neste kjøringen av DWS prosessen. 09:35:13 > Aborting transaction... I praksis vil det gjerne si allerede ved neste kjøring av DWS prosessen. Hvis dette skjer ofte er en naturlig løsning å justere hvor ofte DWS og AGRTPS kjører slik at de ikke kjører samtidig for ofte, men i praksis vil det gjerne gå uker eller måneder mellom hver gang dette skjer. Bruk litt tid på å hente ny kaffe og konstater etterpå at "feilen" er borte hvis du skulle oppleve denne feilen.
Konklusjon: |
|
2007-2008 © www.stenland.com |
|