Page History
| Navitabs | ||||||
|---|---|---|---|---|---|---|
| ||||||
Fejl håndteres på samme måde for alle indlæsere, hvorfor denne beskrivelse ligger under referencearkitektur i stedet for at blive gentaget for alle de enkelte indlæsere.
Fejlsituationer kan ske mange steder i pipelinen fra referencearkitekturen og afhængig af konteksten skal de håndteres på forskellig vis.
Pipelinen har ovenstående forløb og herunder beskrives der hvad der kan gå galt, hvordan situationen håndteres og hvilke meta-data der skal være til rådighed for at kunne foretage den fornødne håndtering.
Hvor der herunder er nævnt at noget rapporteres, forventes det at der forefindes en standard metode/API hvorigennem rapportering i form af logning og/eller alarmering kan foretages.
Modtag
...
datasæt
Ved Modtag sætdatasæt hentes filen fra den givne lokation som scannes og placeres i en lokal folder.
...
- Ingen forbindelse til fil-lokation
- Camel vil her melde en fejl hvis lokationen ikke kan tilgås og denne fejl rapporteres
- Fil matcher ikke filter (*.xml)
- Camel vil her ikke melde nogen fejl da det er en helt normal situation af der ligger filer som ikke matcher og dermed ikke skal hentes.
Hvis en fil skrives under et andet navn (*.tmp) og er lang tid om at blive skrevet, kan det være vanskeligt at afgøre om det er en fejlsituation eller ej.
Evt. kan der i den enkelte stamdata indlæser indbygges et job der trigges på et aftalt tidspunkt og som tjekker om den forventede fil-frekvens er opfyldt og hvis ikke foretage en rapportering
- Camel vil her ikke melde nogen fejl da det er en helt normal situation af der ligger filer som ikke matcher og dermed ikke skal hentes.
- Fil er låst
- Hvis filen matcher men er låst, vil Camel melde en fejl og denne fejl rapporteres
Indlæs
...
datasæt
Indlæs sætdatasæt henter filen fra den lokale folder og påbegynder processering af filen.
Der er ikke identificeret fejlsituationer i dette trin.
Valider
...
datasæt
Valider sætdatasæt har til formål at sikre at filen er komplet og kan parses som en helhed.
Det som kan gå galt her er:
- Filen er tom
- Valideringen vil her generere en fejl som beskriver årsagen til fejlen og denne fejl rapporteres
- Rapporteringen vil indeholde et unikt id for filmodtagelsen, filens navn og tidspunktet for modtagelsen
- Indlæsning af filen stoppes
- Filen fejler parsning
- Parseren vil her generere en fejl som beskriver årsagen til fejlen og denne fejl rapporteres
- Rapporteringen vil indeholde et unikt id for filmodtagelsen, filens navn og tidspunktet for modtagelsen
- Indlæsning af filen stoppes
- Filen er ikke komplet jf. leveret checksum/antal poster
- Valideringen vil her generere en fejl som beskriver årsagen til fejlen og denne fejl rapporteres
- Rapporteringen vil indeholde et unikt id for filmodtagelsen, filens navn og tidspunktet for modtagelsen
- Indlæsning af filen stoppes
- Filen afviger "for meget" fra tidligere (kun fuldt load)
- Valideringen vil her generere en fejl som beskriver årsagen til fejlen og denne fejl rapporteres
- Rapporteringen vil indeholde et unikt id for filmodtagelsen, filens navn og tidspunktet for modtagelsen
- Indlæsning af filen stoppes
- Ukendt element i fil (f.eks. at en XML fil indeholder et ukendt element)
- Parseren vil rapportere at et ukendt element er fundet i filen
- Rapporteringen vil indeholde unikt id for filen, id for eventen, typen af elementet og en eksakt eller relativ position i filenDet ukendte element ignoreres og indlæsning fortsætter
- Indlæsning af filen stoppes
Parse og split
...
datasæt
Parse og split /Valider eventdatasæt har til formål at parse filen og undervejs opdele filen i de enkelte events (=hændelser)
Der er ikke identificeret fejlsituationer i dette trin.
Valider event
Valider event har til formål at sikre at events der læses ind, er gyldige.
Det som kan gå galt her er:
- Data indhold er forkert format
- Parseren vil rapportere at data er i forkert format
- Rapporteringen vil indeholde unikt id for filen, id for eventen, typen af elementet, det forventede og faktiske format og en eksakt eller relativ position i filen
- Det event som indeholder forkerte data indlæses ikke
- Data indhold er forkert længde
- Parseren vil rapportere at data er i forkert længde
- Rapporteringen vil indeholde unikt id for filen, id for eventen, typen af elementet, den forventede og faktiske længde og en eksakt eller relativ position i filen
- Det event som indeholder forkerte data indlæses ikke
- Obligatoriske felter mangler
- Parseren vil rapportere at data mangler
- Rapporteringen vil indeholde unikt id for filen, id for eventen, typen af elementet, de manglende felter og en eksakt eller relativ position i filen
- Det event som mangler data indlæses ikke
Opret implicitte slette events
Oprete implicitte slette events anvendes kun ved full load og har til formål at undersøge og indsætte eventuelle slette events, hvis de ikke er med i data sættet.
Det som kan gå galt her er:
- Ingen forbindelse til database
- Camel vil melde en fejl som vil blive rapporteret.
- Rapporteringen vil indeholde unikt id for filen og id for den aktuelle event.
- Indlæsning af denne og resterende stoppes
Berig event
Berig event tilføjer meta data til eventen så den indeholder data omkring det datasæt der producerede eventen.
Der er ikke identificeret fejlsituationer i dette trin.
Route event
Route event har til formål at pakke eventen og sende den til consumeren/aftageren
...
- Hvis Kafka - ingen kontakt til Kafka
- Camel vil melde en fejl som vil blive rapporteret.
- Rapporteringen vil indeholde unikt id for filen og id for den aktuelle event.
- Camel vil rulle leveringen tilbage og gentage levering i den forventning at Kafka kommer op igen
- Indlæsning af denne og resterende events fortsætter når Kafka er tilbage.
Slette filter
Slette filter anvendes kun ved full load og har til formål at fjerne slette event inden de sendes til eksterne modtager. Ekstern modtager skal alene have de events, som er modtaget i datasættet.
Der er ikke identificeret fejlsituationer i dette trin.
Berig event før persistering
Berig event før persistering har til formål at tilføje manglende informationer inden eventet gemmes. F.eks. sub entiteter der ikke er med i eventet og dermed skal slettes.
Det som kan gå galt her er:
- Ingen forbindelse til database
- Camel vil melde en fejl som vil blive rapporteret.
- Rapporteringen vil indeholde unikt id for filen og id for den aktuelle event.
- Indlæsning af denne og resterende stoppes
Dublet filter
Dublet filter kontrollerer om eventen allerede eksisterer i helt identisk form i databasen, og i givet fald sorteres eventen fra som en ikke-opdatering.
Det som kan gå galt her er:
- Ingen forbindelse til database
- Camel vil melde en fejl som vil blive rapporteret.
- Rapporteringen vil indeholde unikt id for filen og id for den aktuelle event.
- Camel vil forsøge at læse den eksisterende event i databasen i den forventning at databasen kommer op igen
- Processeringen af denne og resterende events fortsætter når databasen er tilbage.
Modtag event
Modtag event udpakker eventen og stiller den til rådighed for consumeren/aftageren
...
Vi har indtil videre ikke set et behov for at foretage en postvalidering af data.
Kvitter datasæt
Ved Kvitter datasæt oprettes en .done fil i en lokal folder, når hele datasættet er indlæst. (Sker der en fejl undervejs vil exception håndteringen oprette en .fail fil istedet)
Der er ikke identificeret fejlsituationer i dette trin.
Kvitter
Ved Kvitter sendes en .done eller .fail fil fra en lokal folder til en given lokation (feks SFTP).
Det som kan gå galt her er:
- Ingen forbindelse til fil-lokation
- Camel vil her melde en fejl hvis lokationen ikke kan tilgås og denne fejl rapporteres
Rapportering af og opfølgning på fejl
...

