Introduktion

Formål

Dette dokument er rettet mod systemadministratorer og driftspersoner, som skal kunne håndtere driftsmæssige aspekter af programmet.

Driftsvejledningen indeholder information om XDSCleanup komponenten med hensyn til afvikling, konfiguration og overvågning.

Læsevejledning

Læseren forventes at have kendskab til drifts-setuppet vedr. XDS Registry og det tilhørende XDB repository.

Dokumenthistorik

Version

Dato

Ansvarlig

Beskrivelse

0.1

28-02-2022

KvalitetsIT

Initiel udgave

0.2

10-10-2022

KvalitetsIT

SDS-5785

Afvikling

XDSCleanup udstiller et antal http-endpoints. Dette afsnit beskriver hvilke endpoints der er, og deres returkoder og fortolkning af svaret.

Alle endpoints kan kaldes uafhængigt af hinanden, og der kan køre flere instanser samtidig.

Cleanup

URLBeskrivelse
<server>/xds-operations/registry-timebased-cleanup/startStarter et tidsbaseret registry oprydningsjob
<server>/xds-operations/registry-status90-cleanup/startStarter et registry oprydningsjob for personer med status 90
<server>/xds-operations/repository-cleanup/startStarter et repository oprydningsjob

Ovenstående endpoints kan returnere følgende http-statuskoder:

StatuskodeFortolkning
200 OKSletningen (eller opbygningen af slette stakken) gik godt. Det vil fremgå af applikationloggen, hvad der er slettet.
500 Internal Server ErrorNoget gik galt under sletning. Applikationsloggen bør inspiceres for at fastslå problemet.

Status

Hver snitflade til oprydning, har en tilsvarende status snitflade, som returnerer statuskoden for seneste kørsel af oprydningsjobbet. Har oprydningsjobbet ikke kørt endnu, returneret statuskode 200.

URL
<server>/xds-operations/registry-timebased-cleanup/status
<server>/xds-operations/registry-status90-cleanup/status
<server>/xds-operations/repository-cleanup/status

Health

Overvågnings-endpoint, som bruges til at overvåge komponentens sundhedstilstand.

URL
<server>/xds-operations/health

Der returneres følgende http-statuskoder:

StatuskodeFortolkning
200 OKServicen er i sund tilstand.
500 Internal Server ErrorServicen er i usund tilstand. Responset indeholder information om årsagen. Applikationsloggen indeholder yderligere information.

Body'en indeholder en json-struktur, der beskriver hvilke dele af systemet der er blevet tjekket, og deres tilstand. Eksempel hvor tjenesten er i sund tilstand:

{
  "version": "42e17e1cb3ea8d8abd21d87252b14a136020e7c0",
  "registry.db": "OK: 0 entries currently enqueued for repository deletion.",
  "sdm.db": "OK: Database connnection available.",
  "repository.db": "OK"
}

Bemærk at det er angivet hvor mange dokumenter der pt. ligger i kø til sletning.

Eksempel hvor tjenesten er i usund tilstand:

{
  "version": "42e17e1cb3ea8d8abd21d87252b14a136020e7c0",
  "registry.db": "ERROR: 7 entries could not be deleted from repository (at least 5 attempts).",
  "sdm.db": "OK: Database connnection available.", 
  "repository.db": "OK" 
}

I ovenstående eksempel er komponenten konfigureret til at melde fejl efter 5 mislykkede forsøg på at slette dokumenter. 

Konfiguration

Grundlæggende konfiguration foregår ved redigering i filen /compose/configuration/xdscleanup.properties.

I filen skal følgende properties være definerede:

PropertyBeskrivelse
datasource.nxrg.jndi.nameJNDI navnet på den datasource der giver adgang til NXRG databasen.
datasource.openxds.jndi.nameJNDI navnet på den datasource der giver adgang til OpenXDS databasen.

datasource.sdm.jndi.name

JNDI navnet på den datasource der giver adgang til SDM databasen (v2_Person tabellen).
deletion.document.cleanup.specificationsKomma-separeret liste af oprydningskriterier. Angiver hvilke dokumenttyper der slettes, og hvornår de slettes. Et oprydningskriterium har formen <code-name>#<code-scheme>#<months-to-keep>, hvor <code-name> og <code-scheme> angiver dokumenttypen der skal slettes, og <months-to-keep> angiver hvor mange måneder der skal gå, før sletningen udføres. Værdien af <months-to-keep> skal være et positivt heltal. De to andre værdier kan være vilkårlige strenge, så længe de ikke indeholder kommaer.
deletion.registry.batchsizeAntal dokumenter der forsøges slettet i registry i en kørsel.
deletion.repository.batchsizeAntal dokumenter der forsøges slettet i repository i en kørsel.
deletion.max.attemptsAntal gange sletning fra repository'et forsøges, før health endpointet vil melde fejl.
deletion.in.clause.max.sizeMaksimal størrelse på in-clause i sql-queries.
deletion.save.status90.docs

Angiver en periode tilbage i tiden hvor dokumenter hørende til personer med status 90 kan slettes.

Eksempler på værdier er:

"2Y"    (for 2 år)

"12M"  (for 12 måneder)

"90D"  (for 90 dage)

Logning

XDSCleanup logger på standardout vha. log4j. Jobbet vil undervejs i kørslen udskrive information (på INFO-niveau) om, hvor mange dokumenter der er slettet i NXRG og OpenXDS. Eventuelle fejl vil blive logget på ERROR-niveau.

Nedenstående logudsnit viser et eksempel på, hvad der logges ved kørsler af registry-timebased-cleanup:

2024-02-08 16:20:53,082 [INFO] dk.nsp.xdscleanup.ws.cleanup.AbstractOperationsServlet - Starting RegistryTimeBasedCleanupServlet
2024-02-08 16:20:53,091 [INFO] dk.nsp.xdscleanup.service.stack.StackedOperationsService - Registry Time Based Cleanup: 4 items added to stack from TypeAndTimeBasedRegistryCleanupSupplier
2024-02-08 16:20:53,091 [INFO] dk.nsp.xdscleanup.service.stack.StackedOperationsService - Registry Time Based Cleanup: 4 remaining items on stack
2024-02-08 16:20:55,220 [INFO] dk.nsp.xdscleanup.ws.cleanup.AbstractOperationsServlet - Starting RegistryTimeBasedCleanupServlet
2024-02-08 16:20:55,220 [INFO] dk.nsp.xdscleanup.service.stack.operation.RegistryBatchCleanupOperation - Registry Time Based Cleanup: Starting batch deletion of 5 entries.
2024-02-08 16:20:55,276 [INFO] dk.nsp.xdscleanup.service.stack.operation.RegistryBatchCleanupOperation - Registry Time Based Cleanup: Batch cleanup finished! Time spent: 0 seconds.
2024-02-08 16:20:55,285 [INFO] dk.nsp.xdscleanup.service.stack.operation.RegistryBatchCleanupOperation - Registry Time Based Cleanup: Deleted DocumentEntries are: [ DocumentEntry[entryId=54,entryUuid=urn:uuid:36775d89-7bb7-4d63-a1d0-242c9a4d0f52,uniqueId=6991853077412342963.5531742584471468177.1644933984831], DocumentEntry[entryId=42,entryUuid=urn:uuid:4474ac23-4e1e-4646-b61a-3aa0528b97e4,uniqueId=5000931755306256916.7510972924567927024.1644933982957], DocumentEntry[entryId=48,entryUuid=urn:uuid:05330f78-23cd-4bfa-bcc6-296d4723d721,uniqueId=6814624543862677988.440886245461280012.1644933983802], DocumentEntry[entryId=37,entryUuid=urn:uuid:a8ad6e1e-318f-4739-96b9-77d9cf490d37,uniqueId=6273209204640358314.1222189249488862845.1644933982211], DocumentEntry[entryId=39,entryUuid=urn:uuid:f1117e71-5d89-4502-92a6-850d4fd6a5f9,uniqueId=8072856556354708955.4478062509353156789.1644933982513] ]
2024-02-08 16:20:55,286 [INFO] dk.nsp.xdscleanup.service.stack.StackedOperationsService - Registry Time Based Cleanup: 3 remaining items on stack

I dette eksempel køres med deletion.registry.batchsize=5, og det ses at der i første kørsel lægges 4 nye operationer på stakken. I næste kørsel, slettes 5 dokumenter i registry'et.


Næste logudsnit viser et eksempel på, hvad der logges ved kørsler af registry-status90-cleanup:

2024-02-08 16:24:40,879 [INFO] dk.nsp.xdscleanup.ws.cleanup.AbstractOperationsServlet - Starting RegistryStatus90CleanupServlet
2024-02-08 16:24:40,886 [INFO] dk.nsp.xdscleanup.service.stack.StackedOperationsService - Registry Status 90 Cleanup: 1 items added to stack from Status90RegistryPatientIdBatchCleanupSupplier
2024-02-08 16:24:40,886 [INFO] dk.nsp.xdscleanup.service.stack.StackedOperationsService - Registry Status 90 Cleanup: 10 remaining items on stack
2024-02-08 16:24:42,727 [INFO] dk.nsp.xdscleanup.ws.cleanup.AbstractOperationsServlet - Starting RegistryStatus90CleanupServlet
2024-02-08 16:24:42,728 [INFO] dk.nsp.xdscleanup.service.stack.operation.RegistryBatchCleanupOperation - Registry Status 90 Cleanup: Starting batch deletion of 1 entries.
2024-02-08 16:24:42,748 [INFO] dk.nsp.xdscleanup.service.stack.operation.RegistryBatchCleanupOperation - Registry Status 90 Cleanup: Batch cleanup finished! Time spent: 0 seconds.
2024-02-08 16:24:42,748 [INFO] dk.nsp.xdscleanup.service.stack.operation.RegistryBatchCleanupOperation - Registry Status 90 Cleanup: Deleted DocumentEntries are: [ DocumentEntry[entryId=6,entryUuid=urn:uuid:d4ab1ed2-3958-4198-9a30-613163fb8b3a,uniqueId=5745551251602451683.3935600351732515390.1638782620952] ]
2024-02-08 16:24:42,748 [INFO] dk.nsp.xdscleanup.service.stack.StackedOperationsService - Registry Status 90 Cleanup: 9 remaining items on stack

Her ses det at der i første kørsel lægges 1 ny operation på stakken. I næste kørsel udføres denne operation, som sletter et enkelt dokument i registry'et.


Næste logudsnit viser et eksempel på, hvad der logges ved kørsler af repository-cleanup:

2024-02-08 16:30:27,184 [INFO] dk.nsp.xdscleanup.ws.cleanup.AbstractOperationsServlet - Starting RepositoryCleanupServlet
2024-02-08 16:30:27,184 [INFO] dk.nsp.xdscleanup.service.stack.StackedOperationsService - Repository Cleanup: Stack is empty
2024-02-08 16:30:27,388 [INFO] dk.nsp.xdscleanup.service.stack.StackedOperationsService - Repository Cleanup: 3 items added to stack from RepositoryCleanupSupplier
2024-02-08 16:30:32,647 [INFO] dk.nsp.xdscleanup.ws.cleanup.AbstractOperationsServlet - Starting RepositoryCleanupServlet
2024-02-08 16:30:32,649 [INFO] dk.nsp.xdscleanup.service.stack.operation.RepositoryBatchCleanupOperation - Repository Cleanup: Starting batch deletion of 10 entries.
2024-02-08 16:30:32,858 [INFO] dk.nsp.xdscleanup.service.stack.operation.RepositoryBatchCleanupOperation - Repository Cleanup: Batch cleanup finished! Time spent: 0 seconds.
2024-02-08 16:30:32,867 [INFO] dk.nsp.xdscleanup.service.stack.operation.RepositoryBatchCleanupOperation - Repository Cleanup: 10 deleted documents are: [ DeletedDocumentEntry[entryId=23,entryUuid=urn:uuid:e94e8421-2dbc-4fc9-a1fe-d0417675efaa,uniqueId=4889082082586197170.1298056177767134575.1644933981538], DeletedDocumentEntry[entryId=26,entryUuid=urn:uuid:7f4f4b75-b657-4849-9b5c-ae78278ee1f1,uniqueId=4917532742519936637.8368324053248592220.1644933978532], DeletedDocumentEntry[entryId=60,entryUuid=urn:uuid:a8ad6e1e-318f-4739-96b9-77d9cf490d37,uniqueId=6273209204640358314.1222189249488862845.1644933982211], DeletedDocumentEntry[entryId=33,entryUuid=urn:uuid:523eb18f-10a3-4ec8-8518-1e33b6c54a54,uniqueId=6313982942207370191.4718769210813691557.1638782616933], DeletedDocumentEntry[entryId=17,entryUuid=urn:uuid:6c8e6c1b-d2fc-4ff3-afd4-8397b871b733,uniqueId=5756914889672242098.5470358841123779494.1644933985195], DeletedDocumentEntry[entryId=57,entryUuid=urn:uuid:36775d89-7bb7-4d63-a1d0-242c9a4d0f52,uniqueId=6991853077412342963.5531742584471468177.1644933984831], DeletedDocumentEntry[entryId=62,entryUuid=urn:uuid:d4ab1ed2-3958-4198-9a30-613163fb8b3a,uniqueId=5745551251602451683.3935600351732515390.1638782620952], DeletedDocumentEntry[entryId=13,entryUuid=urn:uuid:9bc107a6-b319-4df1-9874-0f4aa7fd55a0,uniqueId=6775924398637960340.8142393776299294140.1644933977146], DeletedDocumentEntry[entryId=58,entryUuid=urn:uuid:4474ac23-4e1e-4646-b61a-3aa0528b97e4,uniqueId=5000931755306256916.7510972924567927024.1644933982957], DeletedDocumentEntry[entryId=16,entryUuid=urn:uuid:644b95d9-927f-4f28-b96f-de8b16ab778f,uniqueId=8450233303628819957.2074304039769587217.1644933978439] ]
2024-02-08 16:30:32,872 [INFO] dk.nsp.xdscleanup.service.stack.operation.RepositoryBatchCleanupOperation - Repository Cleanup: Batch marked as completed
2024-02-08 16:30:32,872 [INFO] dk.nsp.xdscleanup.service.stack.StackedOperationsService - Repository Cleanup: 2 remaining items on stack

I dette eksempel køres med deletion.repository.batchsize=10, og det ses at der i første kørsel lægges 3 nye operationer på stakken. I næste kørsel, slettes 10 dokumenter i repository'et.