Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootReferencearkitektur
firsttabReferencearkitektur
includeroottrue


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.


Image RemovedImage Added

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
  • 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

...