Page History
...
Baggrundsjobbet kaldes når der skal sendes notificationer til personer omkring påmindelser om organdonation. For nuværende er det notifikationer til personer, der snart bliver 18 år.
Kommando til kald af notifikationer:
| Code Block | ||||
|---|---|---|---|---|
| ||||
curl <server>/odr-operations/odr-send-digitalpost-notification/start |
Et job arbejder sig gennem datoer. Fra en given start dato og maksimalt indtil dags dato for jobbets udførsel. Når jobbet startes, hentes de personer frem, som skal have tilsendt en notifikation for en given dag. Først når alle personer har fået tilsendt en notifikation fortsættes til næste dag.
Ved at kalde jobbets status endpoint kan det ses, hvilken dato, der senest er kørt færdig, ligesom man kan se en tæller for de enkelte status for de nuværende notifkationer, der arbejdes på.
Hvis der ligger notifikationer i NotificationPerson, med status Error, skal problemerne bag disse løses. Når de problemet er løst, sættes status i databasen tilbage til Pending og jobbet startet igen.
Ligger der vedvarende de samme notifikationer i NotificationPerson med status InProgress eller Sent skal disse også manuelt håndteres. Igen ved at sætte status status til Pending, så jobbet tager fra i dem på nu.
Eksempel på sql, der kan opdatere NotificationPerson:
- find de relevante records: select NotificationPersonPID, ErrorMessage from NotificationPerson where status = "Error";
- opdater med ny status: update NotificationPerson set status = "Pending" where NotificationPersonPID = <id> and status = "Error";
- Tilsvarende kan de andre status findes: InProgress Sent.
Ligger der vedvarende den samme record i NotificationAge med status Locked tyder noget på at jobbet er gået i stå. Sørg for at ingen notifications job kører, og undersøg tilstanden i tabel NotificationPerson for at finde ud af, hvor langt kørslen er nået og ryd op tilsvarende.
For yderligere detaljer se design og arkitektur dokumentet.
Parametre
Følgende parametre til styring af OrganDonorNotification kan ændres i operations.properties for ODR:
...
Der er følgende status og alarm check i notifikations jobbet
| Healthindicator | Udførsel/resultat | StatusIndicator tekst | AlarmIndicator tekst | Konfiguration (property) |
|---|---|---|---|---|
DBHealthIndicator | Udførsel | Kalder databasen med "select 1" | Kalder databasen med "select 1" | datasource.odr.jndi-name=java:jboss/datasources/ODR-DS |
Status 200 | {"Database":"OK"} | |||
Status 500 | {"Database":"Unavailable"} | Der er ingen forbindelse til databasen med JNDI navnet <jndi> | ||
| StackedOperationsService (organDonorNotificationService) | Udførsel | Tjekker om den seneste kørsel af jobbet afsluttede med success | ||
Status 200 | ||||
Status 500 | Baggrundsjobbet StackedOperationsService fejlede sidst det blev kørt. Problemet var: <exception>. | |||
| NewestNotificationHealthIndicator | Udførsel | Henter den nyeste record fra tabel NotificationDate med status Completed | Tjekker om den seneste Completed record i NotificationDate ligger tidligere end det er tilladt at komme bagud. | digitalpost.notification.odr.alarm.date.period=P3D |
Status 200 | {"Nyeste færdigbehandlede dato":"Ingen"} eller {"Nyeste færdigbehandlede dato":"<dato>"} | |||
Status 500 | na - svarer altid 200 | Der er ikke færdigbehandlet en dato den: <dato>. Den er ældre end <dage> dage gammel. | ||
| StatusNotificationHealthIndicator | Udførsel | For hver status type hentes antal records fra tabel NotificationPerson | For hver status type (undtagen Completed) hentes antal records fra tabel NotificationPerson. Hvis dette antal er større end 0 og den seneste Completed record i NotificationDate ligger tidligere end det er tilladt at komme bagud. | digitalpost.notification.odr.alarm.date.period=P3D |
Status 200 | {"Antal i NotificationPerson med status <status>":"<antal>"} | |||
Status 500 | na - svarer altid 200 | Der ligger <antal> notifikationer fra den <dato> med status <status>. | ||
| ErrorNotificationHealthIndicator | Udførsel | Tjekker om der ligger records i tabel NotificationPerson, som har status Error. | ||
Status 200 | ||||
Status 500 | Der ligger totalt <antal> notifikationer med status Error. | |||
| PersonInformationHealthIndicator | Udførsel | Tjekker antal fejl inden for en given periode ikke overstiger maks | personinformation.error.tolerance=0 personinformation.errorcount.duration=PT10M | |
Status 200 | ||||
Status 500 | Person Information servicen har fejlet flere gange end tilladt i en given periode. | |||
| DigitalPostHealthIndicator | Udførsel | Tjekker antal fejl inden for en given periode ikke overstiger maks | digitalpost.error.tolerance=0 digitalpost.errorcount.duration=PT10M | |
Status 200 | ||||
Status 500 | Digital Post Adapter servicen har fejlet flere gange end tilladt i en given periode. |
Backup
Servicen indeholder ikke nogen backup-mekanismer, og dette skal derfor konfigureres på database-niveau. Der bør foretages backup af data på en forsvarlig måde, i tilfælde af behov for en genetablering af data. Disse data skal opbevares på en forsvarlig måde, jfr. regler om personhenførbare data.