Page History
...
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 Yderevent-validering fejler - dvs. at enkelte Yderevents i en modtagen fil ikke opfylder validitets-regler.
Hvis en Yderevent 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 Yderevent 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)
- Et modtaget filsæt afviger volumenmæssigt for meget i forhold til seneste succesfulde filsæt (kan konfigureres).
Generelle overvågningssnitflader
Ingen - ud over den beskrevne statusservice.
Service snitflader
Ingen - de data der indlæses i registret via Yderindlæseren stilles til rådighed via SKRS, men Yderindlæseren selv udstiller ikke nogen services.
Hvordan agerer Yderindlæseren
Det overordnede flow i Yderindlæseren er som vist denne figur:
Datakilden er Praksys, som med jævne mellemrum, leverer et fuldt udtræk af yder data til en sftp server (interaktion 2. Lever udtræk i figuren)
Yderindlæseren poller en SFTP server for nye filer af typen .xml (interaktion 3. Hent udtræk i figuren). Når der dukker en fil op, hentes den ind til Yderindlæseren og slettes fra SFTP serveren.
Fra den interne placering, læses udtrækket (interaktion 4. Læser udtræk i figuren). Derved tjekkes den modtagne fil for format og konsistens og derefter påbegyndes indlæsningen af de data der findes i den modtagne fil.
Yderindlæseren vil indlæse så meget som muligt af de modtagne data, mens data som det ikke er muligt at indlæse logges til fejlbehandling.
Data indlæses både som enkeltstående rækker i Yder registerdatabasen (interaktion 5. Opdater register i figuren) og som Yderevents (interaktion 6. Skriv events i figuren), hvor den enkelte event samler en Yder med dens relaterede entiteter, i en event tabel.
Efter endt håndtering vil data, enten som enkeltrækker eller som events kunne hentes via SKRS grænsefladen.
Statusservice
Statusservice vil svare med en http 200 når alt er ok, men vil svare med en http 500 når der er opstået en fejl under behandling af en fil eller der er en ekstern afhængighed der kan tilgås.
Svar ved ok
Når alt er ok svarer statusservicen med http 200 og viser denne information
| Code Block |
|---|
Built-name: yderindlaeser
Built-version: 1.1.1
Built-date: 2021-03-24T06:21:45Z
Ok
Latest run dataset:
- UUID: 6871f8fd-d7a3-4fc0-a949-244d9c51e280
- Filename: FourYder.xml
- DataProcessingStart: 2021-03-24T10:36:35Z
- DataProcessingEnd: 2021-03-24T10:36:41Z
- Status: Completed |
Svar ved fejl i behandling af fil
Ved fejl under behandlingen af en fil, vil statusservicen svare en http 500 og melde fejl indtil fejlen er afhjulpet gennem modtagelsen af en fil der ikke indeholder fejl.
Den modtagne fil fejler delvist
Hvis den modtagne fil indeholder fejl i enkelte entiteter, f.eks. et felt i en Yder der er for langt, vil disse fejl blive registreret.
| Code Block | ||
|---|---|---|
| ||
curl -v http://localhost:8080/yderindlaeser/status
{
"DataSetLog":"OK",
"SFTP YDER_EXTERNAL":"OK",
"SFTP YDER":"OK",
"Database":"OK",
"version":"1.1.3-SNAPSHOT",
"Processing":"Dataprocessering OK"
} |
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 [Processing]
- En Yderevent-validering fejler - dvs. at enkelte Yderevents i en modtagen fil ikke opfylder validitets-regler. [DataSetLog]
Hvis en Yderevent er fejlet i et load, så vil fejl markeringen først blive fjernet når man manuelt har fjernet linierne fra datasetlog efter håndtering af problemet. - Afhængighedsproblemer (fx. ingen forbindelse til databasen eller SFTP server) [SFTP YDER_EXTERNAL, SFTP YDER og Database]
- Et modtaget filsæt afviger volumenmæssigt for meget i forhold til seneste succesfulde filsæt (kan konfigureres). [Processing]
Generelle overvågningssnitflader
Ingen - ud over den beskrevne statusservice.
Service snitflader
Ingen - de data der indlæses i registret via Yderindlæseren stilles til rådighed via SKRS, men Yderindlæseren selv udstiller ikke nogen services.
Hvordan agerer Yderindlæseren
Det overordnede flow i Yderindlæseren er som vist denne figur:
Datakilden er Praksys, som med jævne mellemrum, leverer et fuldt udtræk af yder data til en sftp server (interaktion 2. Lever udtræk i figuren)
Yderindlæseren poller en SFTP server for nye filer af typen .xml (interaktion 3. Hent udtræk i figuren). Når der dukker en fil op, hentes den ind til Yderindlæseren og slettes fra SFTP serveren.
Fra den interne placering, læses udtrækket (interaktion 4. Læser udtræk i figuren). Derved tjekkes den modtagne fil for format og konsistens og derefter påbegyndes indlæsningen af de data der findes i den modtagne fil.
Yderindlæseren vil indlæse så meget som muligt af de modtagne data, mens data som det ikke er muligt at indlæse logges til fejlbehandling.
Data indlæses både som enkeltstående rækker i Yder registerdatabasen (interaktion 5. Opdater register i figuren) og som Yderevents (interaktion 6. Skriv events i figuren), hvor den enkelte event samler en Yder med dens relaterede entiteter, i en event tabel.
Efter endt håndtering vil data, enten som enkeltrækker eller som events kunne hentes via SKRS grænsefladen.
Til sidst ved successfuld håndtering skrives en tom ".done" fil til intern folder. Ved kritisk fejl skrive en ".fail" fil. Denne fil sendes til SFTP lokation og anses som ekstern kvittering på endt håndtering.
Statusservice
Statusservice vil svare med en http 200 når alt er ok, men vil svare med en http 500 når der er opstået en fejl under behandling af en fil eller der er en ekstern afhængighed der kan tilgås.
Svar ved ok
Når alt er ok svarer statusservicen med http 200 og viser denne informationSvaret fra statusservicen vil her vise informationen som
| Code Block |
|---|
Built-name: yderindlaeser Built-version: 1.1.1 Built-date: 2021-03-24T1024T06:3421:05Z45Z Ok Latest run dataset: - UUID: 6871f8fd-d7a3-4fc0-a949-244d9c51e280 - Filename: FourYder.xml - DataProcessingStart: 2021-03-24T10:36:35Z - DataProcessingEnd: 2021-03-24T10:36:41Z - Status: Completed |
Svar ved fejl i behandling af fil
Ved fejl under behandlingen af en fil, vil statusservicen svare en http 500 og melde fejl indtil fejlen er afhjulpet gennem modtagelsen af en fil der ikke indeholder fejl.
Den modtagne fil fejler delvist
Hvis den modtagne fil indeholder fejl i enkelte entiteter, f.eks. et felt i en Yder der er for langt, vil disse fejl blive registreret.
Svaret fra statusservicen vil her vise informationen som
| Code Block |
|---|
Built-name: yderindlaeser Built-version: 1.1. Built-date: 2021-03-24T10:34:05Z Register fejl: OvrigeSpecialer with id 8501AEBF19F00002-01 is failing.Register fejl: OvrigeSpecialer with id 8501AEBF19F00002-01 is failing. Latest failure is: Skipping Ovrigespecialer at location: line 20 - due to Value of field SpecTxt (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds the maxlength of 60 KommuneKoder with id 8501AEBF19F00002-01 is failing. Latest failure is: Skipping KommunekoderOvrigespecialer at location: line 2220 - due to Value of field KomTxtSpecTxt (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds the maxlength of 60 ... OvrigeTelefonnumrePersonKommuneKoder with id 9001AEBF19F000028501AEBF19F00002-1234567801 is failing. Latest failure is: Skipping OvrigeTelefonnumrePersonKommunekoder at location: line 4122 - due to Value of field BemerkningerPersonKomTxt (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds the maxlength of 60 ... LatestOvrigeTelefonnumrePerson DataSet fejl: Skipping Ovrigespecialer - Skipping Ovrigespecialerwith id 9001AEBF19F00002-12345678 is failing. Latest failure is: Skipping OvrigeTelefonnumrePerson at location: line 2041 - due to Value of field SpecTxtBemerkningerPerson (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds the maxlength of 60... Latest DataSet fejl: Skipping KommunekoderOvrigespecialer - Skipping KommunekoderOvrigespecialer at location: line 2220 - due to Value of field KomTxtSpecTxt (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds the maxlength of 60 ... Skipping OvrigeTelefonnumrePersonKommunekoder - Skipping OvrigeTelefonnumrePersonKommunekoder at location: line 4122 - due to Value of field BemerkningerPersonKomTxt (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds the maxlength of 60 ... LatestSkipping runOvrigeTelefonnumrePerson dataset: - UUID: b1470ce7-aeb0-48d3-b526-0a7846bea579 - Filename: FourYder_wrongsubs.xml - DataProcessingStart: 2021-03-24T10:39:43Z - DataProcessingEnd: 2021-03-24T10:39:46Z - Status: Completed with 11 log(s) |
Dette indhold fortæller at der er fejl på registeret, som opremset under Register fejl:, og der er fejl i den senest modtagne fil, som opremset under Latest DataSet fejl:.
Hvis en efterfølgende fil, ikke indeholder fejl, men heller ikke retter op på de registrerede register fejl, vil statusservicen vise
| Code Block |
|---|
Built-name: yderindlaeser Built-version: 1.1. Built-dateSkipping OvrigeTelefonnumrePerson at location: line 41 - due to Value of field BemerkningerPerson (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds ... Latest run dataset: - UUID: b1470ce7-aeb0-48d3-b526-0a7846bea579 - Filename: FourYder_wrongsubs.xml - DataProcessingStart: 2021-03-24T10:3439:05Z43Z Register- DataProcessingEnd: 2021-03-24T10:39:46Z - Status: Completed with 11 log(s) |
Dette indhold fortæller at der er fejl på registeret, som opremset under Register fejl:, og der er fejl i den senest modtagne fil, som opremset under Latest DataSet fejl:.
Hvis en efterfølgende fil, ikke indeholder fejl, men heller ikke retter op på de registrerede register fejl, vil statusservicen vise
| Code Block |
|---|
Built-name: yderindlaeser Built-version: 1.1. Built-date: 2021-03-24T10:34:05Z Register fejl: OvrigeSpecialerfejl: OvrigeSpecialer with id 8501AEBF19F00002-01 is failing. Latest failure is: Skipping Ovrigespecialer at location: line 20 - due to Value of field SpecTxt (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds the maxlength of 60 KommuneKoder with id 8501AEBF19F00002-01 is failing. Latest failure is: Skipping KommunekoderOvrigespecialer at location: line 2220 - due to Value of field KomTxtSpecTxt (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds the maxlength of 60 ... OvrigeTelefonnumrePersonKommuneKoder with id 9001AEBF19F000028501AEBF19F00002-1234567801 is failing. Latest failure is: Skipping OvrigeTelefonnumrePersonKommunekoder at location: line 4122 - due to Value of field BemerkningerPersonKomTxt (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds the maxlength of 60 ... OvrigeTelefonnumrePerson with id 9001AEBF19F00002-12345678 is failing. Latest DataSetfailure fejlis: Latest runSkipping dataset:OvrigeTelefonnumrePerson -at UUIDlocation: 89028258-1286-46c7-b0a1-bc79daade75d - Filename: FourYderX.xml - DataProcessingStart: 2021-03-24T10:48:37Z - DataProcessingEnd: 2021-03-24T10:48:38Z - Status: Completed |
Her er der altså ikke detekteret fejl i den senest modtagne fil, men der er ubehandlede fejl i registret, hvilket betyder at statusservicen stadig melder http 500.
Aktion
Der skal tages kontakt til Praksys, der er dataleverandør, for at få dem til at levere en fil der ikke indeholder fejl.
Når der på et tidspunkt modtages en fil der udbedre de registrerede fejl, vil statusservicen igen melde http 200 og vise et svar som beskrevet i Svar ved ok.
Aktion ved manglende nulstillen af registrerede fejl.
Som det kan ses i eksemplerne, så vises der en nøgle for de entiteter hvorpå der er registreret en fejl.
Når der modtages en entitet med samme nøgle hvor fejlen er udbedret, vil Yder indlæseren nulstille den fejl der var registreret på nøglen.
Der vil kunne forekomme situationer, hvor nøglen kan være ændret som følge af udbedring af en registreret fejl. I sådanne tilfælde, vil Yder indlæseren ikke selv kunne nulstille fejlen og det er nødvendigt at foretage en manuel nulstilling.
Beskrivelsen af register fejlen på formen
| Code Block |
|---|
OvrigeTelefonnumrePerson with id 9001AEBF19F00002-12345678 is failing. |
fortæller at det er en entitet af typen OvrigeTelefonnumrePerson med entitets id 9001AEBF19F00002-12345678 hvorpå der er registreret en fejl.
line 41 - due to Value of field BemerkningerPerson (Denne er alt for lang Denne er alt for lang Denne er alt for lang Denne er alt for lang) exceeds ...
Latest DataSet fejl:
Latest run dataset:
- UUID: 89028258-1286-46c7-b0a1-bc79daade75d
- Filename: FourYderX.xml
- DataProcessingStart: 2021-03-24T10:48:37Z
- DataProcessingEnd: 2021-03-24T10:48:38Z
- Status: Completed |
Her er der altså ikke detekteret fejl i den senest modtagne fil, men der er ubehandlede fejl i registret, hvilket betyder at statusservicen stadig melder http 500.
Aktion
Der skal tages kontakt til Praksys, der er dataleverandør, for at få dem til at levere en fil der ikke indeholder fejl.
Når der på et tidspunkt modtages en fil der udbedre de registrerede fejl, vil statusservicen igen melde http 200 og vise et svar som beskrevet i Svar ved ok.
Aktion ved manglende nulstillen af registrerede fejl.
Som det kan ses i eksemplerne, så vises der en nøgle for de entiteter hvorpå der er registreret en fejl.
Når der modtages en entitet med samme nøgle hvor fejlen er udbedret, vil Yder indlæseren nulstille den fejl der var registreret på nøglen.
Der vil kunne forekomme situationer, hvor nøglen kan være ændret som følge af udbedring af en registreret fejl. I sådanne tilfælde, vil Yder indlæseren ikke selv kunne nulstille fejlen og det er nødvendigt at foretage en manuel nulstilling.
Beskrivelsen af register fejlen på formen
| Code Block |
|---|
OvrigeTelefonnumrePerson with id 9001AEBF19F00002-12345678 is failing. |
fortæller at det er en entitet af typen OvrigeTelefonnumrePerson med entitets id 9001AEBF19F00002-12345678 hvorpå der er registreret en fejl.
Hvis det f.eks. fra Praksys er godtgjort at Hvis det f.eks. fra Praksys er godtgjort at fejlen er rettet, men den registrerede fejl ikke nulstilles kan det gøres ved at udføre denne SQL mod databasen:
...
Yderindlæ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
log
Denne log ligger i filen nsputil-sla.log og indeholder NSP SLA logninger på formen
| Code Block |
|---|
| Code Block |
22-06-2020 12:30:43,863 [Camel (camel-1) thread #4 - sftp://foo@localhost:33219/praksys] INFO dk.sdsd.nsp.slalogdata - LogPoint="LoggerBean" LogPointUniqId="LoggerBean" StartTime="2020-06-22 12:30:43.863" EndTime="2020-06-22 12:30:43.863" Duration="53 microseconds" MessageId="8d0bf2fe-d37d-46ad-bb16-19418eca1270" RequestSize=0 ReplySize=0 Result=OK ClientIP="<empty>" SOAPOperation="DataSet fetched" SOAPEndpoint="<empty>" SOAPAction="<empty>" TargetSOAPOperation="<empty>" TargetSOAPEndpoint="<empty>" GenericCallParms(1)= { ("Input","M.S1040025.00001.xml") } 22-06-2020 12:30:4443,442863 [Camel (camel-1) thread #5#4 - filesftp:///tmp/yder/inputfoo@localhost:33219/praksys] INFO dk.sdsd.nsp.slalogdata - LogPoint="LoggerBean" LogPointUniqId="LoggerBean" StartTime="2020-06-22 12:30:43.863" EndTime="2020-06-22 12:30:43.863" Duration="53 microseconds" MessageId="427705ca8d0bf2fe-83b3d37d-45a546ad-9128bb16-ceb46a649c5219418eca1270" RequestSize=0 ReplySize=0 Result=OK ClientIP="<empty>" SOAPOperation="DataSet receivedfetched" SOAPEndpoint="<empty>" SOAPAction="<empty>" TargetSOAPOperation="<empty>" TargetSOAPEndpoint="<empty>" GenericCallParms(1)= { ("Input","M.S1040025.00001.xml") } 22-06-2020 12:30:4944,344442 [Camel (camel-1) thread #1#5 - AggregateTimeoutCheckerfile:///tmp/yder/input] INFO dk.sdsd.nsp.slalogdata - LogPoint="LoggerBean" LogPointUniqId="LoggerBean" StartTime="2020-06-22 12:30:43.863" EndTime="2020-06-22 12:30:4943.344863" Duration="548136853 microseconds" MessageId="427705ca-83b3-45a5-9128-ceb46a649c52" RequestSize=0 ReplySize=0 Result=OK ClientIP="<empty>" SOAPOperation="DataSet completedreceived" SOAPEndpoint="<empty>" SOAPAction="<empty>" TargetSOAPOperation="<empty>" TargetSOAPEndpoint="<empty>" GenericCallParms(1)= { ("Input","M.S1040025.00001.xml") } |
Audit log
Denne log ligger i filen yderAudit.log og indeholder overordnet logning af Yderindlæserens aktivitet
| Code Block |
|---|
timestamp="2020-06-22 12:30:44,565" priority="INFO" class="dk.nsi.sdm.yder.bean.LoggerBean" message="The file M.S1040025.00001.xml has been preparsed" timestamp 22-06-2020 12:30:49,344 [Camel (camel-1) thread #1 - AggregateTimeoutChecker] INFO dk.sdsd.nsp.slalogdata - LogPoint="LoggerBean" LogPointUniqId="LoggerBean" StartTime="2020-06-22 12:30:43.863" EndTime="2020-06-22 12:30:48,09749.344" priorityDuration="INFO5481368 microseconds" class="dk.nsi.sdm.yder.bean.LoggerBean" message="The file M.S1040025.00001.xml has been parsed and splitted" timestamp="2020-06-22 12:30:49,345" priority="INFO" class="dk.nsi.sdm.yder.bean.LoggerBean" message="The file MessageId="427705ca-83b3-45a5-9128-ceb46a649c52" RequestSize=0 ReplySize=0 Result=OK ClientIP="<empty>" SOAPOperation="DataSet completed" SOAPEndpoint="<empty>" SOAPAction="<empty>" TargetSOAPOperation="<empty>" TargetSOAPEndpoint="<empty>" GenericCallParms(1)= { ("Input","M.S1040025.00001.xml has been completed with status Completed" |
...
") } |
Audit log
Denne log ligger i filen yderApplicationyderAudit.log og indeholder detaljeret overordnet logning af Yderindlæserens aktivitet
| Code Block |
|---|
timestamp="2020-06-22 12:30:4344,864565" priority="DEBUGINFO" class="dk.nsi.sdm.yder.bean.LoggerBean" message="The file M.S1040025.00001.xml has been fetchedpreparsed" timestamp="2020-06-22 12:30:4448,442097" priority="DEBUGINFO" class="dk.nsi.sdm.yder.bean.LoggerBean" message="The file M.S1040025.00001.xml has been parsed and receivedsplitted" timestamp="2020-06-22 12:30:4449,565345" priority="INFO" class="dk.nsi.sdm.yder.bean.LoggerBean" message="The file M.S1040025.00001.xml has been completed with status Completed" |
Application log
Denne log ligger i filen yderApplication.log og indeholder detaljeret logning af Yderindlæserens aktivitet
| Code Block |
|---|
preparsed" timestamp="2020-06-22 12:30:4843,069864" priority="DEBUG" class="dk.nsi.sdm.yder.parserbean.YderSaxParseSplitHandlerLoggerBean" message="ParsedThe 59 yders and 54 personsfile M.S1040025.00001.xml has been fetched" timestamp="2020-06-22 12:30:4844,097442" priority="INFODEBUG" class="dk.nsi.sdm.yder.bean.LoggerBean" message="The file M.S1040025.00001.xml has been parsed and splittedreceived" timestamp="2020-06-22 12:30:4944,345565" priority="INFO" class="dk.nsi.sdm.yder.bean.LoggerBean" message="The file M.S1040025.00001.xml has been completed with status Completed" |
Stat log
Denne log ligger i filen yderStat.log og indeholder statistik logning af Yderindlæserens aktivitet
| Code Block |
|---|
{"Time to preparse":"PT0.074S","Time to parse":"PT3.502S","Parsed records":" message="The file M.S1040025.00001.xml has been preparsed" timestamp="2020-06-22 12:30:48,069" priority="DEBUG" class="dk.nsi.sdm.yder.parser.YderSaxParseSplitHandler" message="Parsed 59 Ydersyders and 54 YderPersons","Application":"YderIndlæser","Timestamp":"persons" timestamp="2020-06-22 12:30:48,097" priority="INFO" class="dk.nsi.sdm.yder.bean.LoggerBean" message="The file M.S1040025.00001.xml has been parsed and splitted" timestamp="2020-06-22 12:30:49,345" priority=",INFO"Processing Time":"PT5.345S","ExchangeId":"427705ca-83b3-45a5-9128-ceb46a649c52"}class="dk.nsi.sdm.yder.bean.LoggerBean" message="The file M.S1040025.00001.xml has been completed with status Completed" |
