Indledning

Nærværende dokument udgør driftsvejledningen for Lpr3indlæseren. Lpr3indlæseren er en stamdataindlæser som vedligeholder data fra Landspatientregisteret.

Lpr3indlæseren er en webapplikation der deployer på en Wildfly applikationsserver.

Distributionen af Lpr3indlæseren foregår som et Docker image der er bygget på NSP platform Docker imaget (registry.nspop.dk/platform/nsp)

Placering af filer

Tabel over datafilens placering i forhold til de servere og komponenter der findes på siden LPR 3 Indlæser - Design- og Arkitekturbeskrivelse:

Fase

Directory

Bemærkning

Input<path_to_input_files>:/tmp/lpr3/inputDatafiler der skal indlæses skal placeres her.
backup<path_to_backup_files>:/tmp/lpr3/input/.doneEfter datafilen er blevet indlæst placeres den her.

Monitoreringssnitflader

Alle Lpr3indlæsere overvåges via en simpel statusservice. (Se evt. https://www.nspop.dk/display/public/web/Husregler+for+udvikling+til+NSP#HusreglerforudviklingtilNSP-Snitfladetilmonitorering(gl4.4)).

Denne statusservice bliver overvåget ved at den polles hver 10. sekund for en ny status (200 ok og 500 fejl pr default HTTP). Ved 500 er det tegn på, at en supporter skal igang med at kigge på problemet.

Statusservicen giver udslag i følgende situationer, som vil sætte support igang

  • En filsæt validering fejler - dvs. at den senest modtagne fil er afvist som helhed
  • En Lpr3event-validering fejler - dvs. at enkelte Lpr3events i en modtagen fil ikke opfylder validitets-regler.
    Hvis en Lpr3event er fejlet i et load, så vil fejl markeringen først blive fjernet når der er modtaget et nyt load hvor den pågældende Lpr3event er indlæst med succes.
  • Afhængighedsproblemer (fx. ingen forbindelse til databasen eller SFTP server)
  • Der er gået uforholdsmæssigt lang tid siden vi har fået sidste fil (kan konfigureres)

Generelle overvågningssnitflader

Ingen - ud over den beskrevne statusservice.

Service snitflader

Ingen - de data der indlæses i registret via Lpr3indlæseren stilles til rådighed i Lpr3 registerdatabasen . Lpr3indlæseren selv udstiller ikke nogen services.

Håndtering af fejlsituationer

Når statusservicen svarer med en http 500 skal der igangsættes support til hhv.

  • Afklaring af fejl på database eller SFTP forbindelse og efterfølgende re-etablering
  • Ved fejl i tilsæt validering og manglende eller for afvigende tilsæt, skal der i første omgang tages kontakt til SDS der ejer LPR3 og evt. bagefter til DXC som leverer filsættet for at afklare fejlen og bede dem om at igangsætte handlinger der retter fejlen.

Beskrivelse af logs

Lpr3indlæseren skriver til 4 forskellige log filer, der alle er placeret lokalt i Docker containeren i Wildfly standard log folderen: /pack/wildfly8/standalone/log 


NSP SLA log

Denne log ligger i filen nsputil-sla.log og indeholder NSP SLA logninger på formen

24-10-2020 10:14:40,540 [Camel (camel-1) thread #2 - sftp://foo@lpr3sftp:22/dxc] INFO  dk.sdsd.nsp.slalogdata - LogPoint="LoggerBean" LogPointUniqId="LoggerBean" StartTime="2020-10-24 10:14:40.539" EndTime="2020-10-24 10:14:40.539" Duration="74 microseconds" MessageId="0169ab8a-5371-4b40-bd64-c8a9fce0b54e" RequestSize=0 ReplySize=0 Result=OK ClientIP="<empty>" SOAPOperation="DataSet fetched" SOAPEndpoint="<empty>" SOAPAction="<empty>" TargetSOAPOperation="<empty>" TargetSOAPEndpoint="<empty>" GenericCallParms(1)= { ("Input","BR_190520111525.csv") }
24-10-2020 10:14:40,761 [Camel (camel-1) thread #3 - file:///tmp/lpr3/input] INFO  dk.sdsd.nsp.slalogdata - LogPoint="LoggerBean" LogPointUniqId="LoggerBean" StartTime="2020-10-24 10:14:40.539" EndTime="2020-10-24 10:14:40.539" Duration="74 microseconds" MessageId="7f6a9182-5297-41ac-bc2c-68a7010766ff" RequestSize=0 ReplySize=0 Result=OK ClientIP="<empty>" SOAPOperation="DataSet received" SOAPEndpoint="<empty>" SOAPAction="<empty>" TargetSOAPOperation="<empty>" TargetSOAPEndpoint="<empty>" GenericCallParms(1)= { ("Input","BR_190520111525.csv") }
24-10-2020 10:14:40,890 [Camel (camel-1) thread #3 - file:///tmp/lpr3/input] INFO  dk.sdsd.nsp.slalogdata - LogPoint="LoggerBean" LogPointUniqId="LoggerBean" StartTime="2020-10-24 10:14:40.539" EndTime="2020-10-24 10:14:40.539" Duration="74 microseconds" MessageId="7f6a9182-5297-41ac-bc2c-68a7010766ff" RequestSize=0 ReplySize=0 Result=ERROR ("File handling encountered errors and was not completed") ClientIP="<empty>" SOAPOperation="DataSet failed" SOAPEndpoint="<empty>" SOAPAction="<empty>" TargetSOAPOperation="<empty>" TargetSOAPEndpoint="<empty>" GenericCallParms(1)= { ("Input","BR_190520111525.csv") }

Audit log

Denne log ligger i filen lpr3Audit.log og indeholder overordnet logning af Lpr3indlæserens aktivitet

timestamp="2020-10-26 10:01:36,250" priority="INFO" class="dk.nsp.indlaeser.lpr3.bean.LoggerBean" message="The file BR_190520111525.csv has been preparsed"
timestamp="2020-10-26 10:01:36,406" priority="INFO" class="dk.nsp.indlaeser.lpr3.bean.LoggerBean" message="The file BR_190520111525.csv has been parsed and splitted"
timestamp="2020-10-26 10:01:37,890" priority="ERROR" class="dk.nsp.indlaeser.lpr3.bean.Lpr3PersistBean" message="Skipping Lpr3 delete batch for PID: null - due to SQL error: Incorrect number of rows affected by batch delete"
timestamp="2020-10-26 10:01:37,907" priority="INFO" class="dk.nsp.indlaeser.lpr3.bean.LoggerBean" message="The file BR_190520111525.csv has been completed with status Completed with 1 log(s)"


Application log

Denne log ligger i filen lpr3Application.log og indeholder detaljeret logning af Lpr3indlæserens aktivitet


timestamp="2020-10-27 10:53:58,207" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.bean.LoggerBean" message="The file BR_190520111525.csv has been fetched"
timestamp="2020-10-27 10:53:58,665" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.bean.LoggerBean" message="The file BR_190520111525.csv has been received"
timestamp="2020-10-27 10:53:58,673" priority="INFO" class="dk.nsp.indlaeser.lpr3.bean.LoggerBean" message="The file BR_190520111525.csv has been preparsed"
timestamp="2020-10-27 10:53:58,792" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.parser.Lpr3CsvParseSplitHandler" message="Parsed 7 LPR3 registreringer"
timestamp="2020-10-27 10:53:58,797" priority="INFO" class="dk.nsp.indlaeser.lpr3.bean.LoggerBean" message="The file BR_190520111525.csv has been parsed and splitted"
timestamp="2020-10-27 10:53:59,584" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.bean.Lpr3PersistBean" message="Received batch of Lpr3Events with size 15"
timestamp="2020-10-27 10:53:59,591" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.database.dao.Lpr3RegistreringerDAO" message="Delete 6 Lpr3Registreringer"
timestamp="2020-10-27 10:53:59,611" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.bean.Lpr3PersistBean" message="Batched delete LPR3Registreringer. Count=0"
timestamp="2020-10-27 10:53:59,611" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.bean.Lpr3PersistBean" message="Persisted delete batches of LPR3Registreringer. Count=0"
timestamp="2020-10-27 10:53:59,611" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.database.dao.Lpr3RegistreringerDAO" message="Insert using jdbc template."
timestamp="2020-10-27 10:53:59,612" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.database.dao.Lpr3RegistreringerDAO" message="Insert 6 Lpr3Registreringer"
timestamp="2020-10-27 10:53:59,629" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.bean.Lpr3PersistBean" message="Batched insert LPR3Registreringer. Count=6"
timestamp="2020-10-27 10:53:59,629" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.bean.Lpr3PersistBean" message="Persisted insert batches of LPR3Registreringer. Count=6"
timestamp="2020-10-27 10:53:59,630" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.database.dao.Lpr3RegistreringerDAO" message="Delete 1 Lpr3Registreringer"
timestamp="2020-10-27 10:53:59,648" priority="ERROR" class="dk.nsp.indlaeser.lpr3.bean.Lpr3PersistBean" message="Skipping Lpr3 delete batch for PID: null - due to SQL error: Incorrect number of rows affected by batch delete"
timestamp="2020-10-27 10:53:59,648" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.bean.Lpr3PersistBean" message="Batched delete LPR3Registreringer. Count=0"
timestamp="2020-10-27 10:53:59,648" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.bean.Lpr3PersistBean" message="Persisted delete batches of LPR3Registreringer. Count=0"
timestamp="2020-10-27 10:53:59,648" priority="DEBUG" class="dk.nsp.indlaeser.lpr3.bean.Lpr3PersistBean" message="Done persisting LPR3Registreringer. Written Lpr3: 6, Updated Lpr3: 0, Deleted Lpr3: 0"
timestamp="2020-10-27 10:53:59,666" priority="INFO" class="dk.nsp.indlaeser.lpr3.bean.LoggerBean" message="The file BR_190520111525.csv has been completed with status Completed with 1 log(s)"


Stat log

Denne log ligger i filen lpr3Stat.log og indeholder statistik logning af Lpr3indlæserens aktivitet


{"Time to preparse":"PT0.001S","Time to parse":"PT0.075S","Parsed records":"Parsed 7 LPR3 registreringer","Application":"Lpr3Indlæser","Timestamp":"2020-10-27 10:55:05,810","Processing Time":"PT445052H25M13.306S","ExchangeId":"89807c80-11d5-465b-a198-90e6a2d6f501"}
  • No labels