Page History
| Navitabs | ||||
|---|---|---|---|---|
| ||||
Indholdsfortegnelse
| Table of Contents | ||||
|---|---|---|---|---|
|
Monitoreringssnitflade
Importeren udstiller en enkelt monitoreringssnitflade, som returnerer en simpel plan tekst plain text-side. Siden kan findes herpå:
http://localhost:8080/
...
sebimporter/status
Status siden returnerer to linier linjer der fortæller om importerens status. Første linie linje har hvilken tilstand importeren er i. For eksempel om den er ok, om den kører på nuværende tidspunkt, eller om den er låst og hvad årsagen er. Anden linie linje er status for sidste import. Imellem hvilket tidsrum den kørte, hvor lang tid at det tog, og hvad resultatet var af den import. Ud over disse linierlinjer, så returneres også HTTP status kode 200 hvis importeren er ok, eller 500 hvis noget er galt.
...
| Code Block | ||
|---|---|---|
| ||
Inbox is locked: Inbox[/pack/wildfly8/standalone/data/sdm4importers/sor2importersebimporter] Last import started at: 20182021-1209-14T1121T09:0927:4935.000+0102:00 and ended at: 20182021-1209-14T1121T09:1127:0035.000+0102:00. Processing took 710 seconds. Outcome was FAILURE |
Modus operandi
Når importeren bliver sat i gang med at køre, så kigger den på alle filer som ligger tilgængelige. Den har ikke nogle krav til navne, men vil processere dem i rækkefølge sorteret efter navn.
For hver zip fil den processerer, der checker den at alle forventede CSV filer er indeholdt, før at den fortsætter. For hver at disse CSV filer, så checker den at alle forventede headers er tilgængelige i filen, før at den går igang med rent faktisk at parse en fil. Når en CSV fil er parsed, så skriver den alt data til databasen, før at den fortsætter til den næste CSV fil i zip filen.
Når der skrives til databasen, så holder importeren øje med, om den entitet allerede eksisterer i databasen. Hvis den er, så vil den lukke den gamle række først, før at den skriver den nye række. Hvis en entitet ikke er blevet opdateret under kørslen, så vil den blive lukket. Dette sker fordi at importeren forventer, at det er et fuldt udtræk af den nuværende status på entiteterne i SOR, og derved vil CSV fileren indeholde alle nuværende og fremtidige aktive entiteter. Optræder de ikke i CSV filen, så er enheden ikke længere aktiv, og skal derfor lukkes.
Fejlsituationer
Der er en række fejl som kan optræde, i forbindelse med eksekveringen af importeren. Her er en liste over de forskellige fejl muligheder, og hvordan de kan løses.
...
Zip filen med alle CSV filer der skal importeres, kan ikke læses. Enten er filen korrupt (fejl i overførelsen), eller også har importeren ikke tilladelse til at læse filen.
...
...
Der er en ekstra fil i zip filen, som importeren ikke forventer. Dette kan skyldes at backenden ved en fejl pakker ekstra filer med i zip filen, eller måske er det en fil som skal importeres, men som importeren ikke kender til endnu.
...
Der mangler en eller flere filer i zip filen. Dette kan skyldes en fejl i backenden, at en fil er blevet misset i genereringen og pakningen af filer, eller også er det en fil type som helt er udgået.
...
En CSV fil kan ikke læses, hvilket der kan være mange årsager til. Det kan skyldes encoding af filen (der forventes UTF-8 BOM), filen er korrupt, og andre I/O relaterede fejl.
...
Hvis det er et felt som er udgået, så skal importeren opdateres hurtigst muligt for ikke længere at forvente feltet. Hvis ikke, så skal backenden opdateres hurtigst muligt, således at det manglende felt kommer med over i fremtidige kørsler.
...
Hvis det er felter som importeren er forventet at kende til, så skal importeren opdateres hurtigst muligt. Det kunne type på at versionerne af importer og backend er kommet ud af sync. Ellers kan det være felter som er udgået/unødvendige, og fejlen kan ignoreres.
...
Hårde fejl får importeren til at stoppe, og manuel udregning er nødvendigt. Bløde fejl kræver ingen udregning, men det bør undersøges om noget eventuelt skulle gøres. Begge fejl typer bliver noteret i loggen for videre undersøgelser.
Logning
Importeren bruger to forskellige logs.
SLA log
SLA logning benytter nsp-util biblioteket, og skriver til sor2importer-sla.log i logs/ mappenden konfigurerede logfil.. Der bliver startet et nyt SLA log objekt når en import starter, og den vil have log pointed "sor2importersom får logpoint "sebimporter.process" og ID 'et "SDM4.sor2importersebimporter.process".
...
Applikationslog
Applikation loggen Applikationsloggen styres af log4j.properties, og denne afhænger af hvad der er blevet sat op.
I denne log kommer der nogle status beskederstatusbeskeder, hvor langt en import er nået, samt logning af diverse udfordringer under kørslen (ekstra filer i zip filen, som den ikke kender til, og derved springer over; for mange felter i filerne, som ikke bliver mapped til et felt i databasen, og derved springer over; felter i filerne, som ikke indeholde forventet type af data, og derved ikke blev parsed som forventetduplikerede roller i input-filen, fejlagtige data, etc.). Fejl under en import bliver også logged, logget sammen med deres stacktrace, for lettere debugging.