Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
outlinetrue

Introduktion

Formål

XDSCleanup-servicen foretager sletning af dokumentmetadata og dokumenter fra NXRG og OpenXDS.

Formålet med dette dokument er at beskrive systemarkitekturen for XDSCleanup.

Læsevejledning

Nærværende dokument er tiltænkt udviklere og IT-arkitekter med interesse i anvendelsen af XDSCleanup. 

Dokumenthistorik

Version

Dato

Ansvarlig

Beskrivelse

0.1

25.02.2022

KvalitetsIT

Initiel udgave

Introduktion til XDSCleanup

Overblik over løsningen

XDSCleanup-servicen giver mulighed for at slette dokumentmetadata fra NXRG-registry'et, og efterfølgende slette de tilsvarende dokumenter i Opentext-repository'et. Servicens sammenhæng med andre relevante komponenter er vist i nedenstående diagram.

...

Diagrammet viser to databaser: Metadata, som er den database der vedligeholdes og ejes af NXRG, og Dokumenter, som er den database der vedligeholdes og ejes af OpenXDS. Som det fremgår af diagrammet, fungerer XDSCleanup ved at læse/skrive direkte i disse databaser, og altså ikke gennem ITI-snitfladerne.

Løsningsdesign

XDSCleanup er implementeret på NSP-platformen, og udstiller et antal servlets som kaldes af driften. Detaljer om disse snitflader findes i driftsvejledningen. Meningen er at oprydningssnitfladen kaldes med jævne mellemrum, hvilket vil udvælge et antal dokumenter til sletning, og derefter slette dem.

Der skrives til applikationsloggen, hvad der bliver slettet. Det er dokumenteret i større detalje i driftsvejledningen hvad der logges.

Afkobling af sletning i registry og repository

Sletningen foregår i to trin: Først slettes dokumentmetadata i NXRG, og derefter slettes selve dokumentet i OpenXDS. De to skridt kan i princippet foregå på forskellige tidspunkter. Når dokumentmetadata er slettet i NXRG, bliver dette skrevet til tabellen deleted_documententries, som udgør en log over slettede metadata. Sletningen fra OpenXDS foregår med udgangspunkt i tabellen deleted_documententries.

...

Sletning fra repository'et foregår ved at udvælge et antal rækker fra tabellen som har status DELETED_FROM_REGISTRY eller status DELETION_FROM_REPOSITORY_FAILED, og deletion_attempts er lavere end en vis grænse. Disse dokumenter slettes i repository'et, og rækkerne i deleted_documententries opdateres. Hvis sletningen går godt, så sættes deletion_status til DELETED_FROM_REPOSITORY, og sletningen af dette dokument er færdig. Hvis sletningen  mislykkes, sættes deletion_status til DELETION_FROM_REPOSITORY_FAILED, og deletion_attempts tælles én op.

Konfiguration af sletninger

XDSCleanup-servicen konfigureres med et oprydningskriterier, som beskriver hvilke dokumenter der skal slettes hvornår. Et oprydningskriterium består af en dokumenttype og en dokumentalder i måneder. Ved kørsel bliver der for hver specifikation udvalgt et antal dokumenter, som har den  angivne type, og er ældre end den maksimale alder. Herefter slettes disse dokumenter.

Beregning af dokumentalder

Alderen for et dokument beregnes ved først at kigge på attributten ServiceStartTime, og hvis denne ikke findes, så i stedet på CreationTime, som er en påkrævet attribut. Hvis dokumentets alder er større end det konfigurerede antal måneder, så slettes dokumentet.

Data der slettes i NXRG og OpenXDS

I NXRG slettes data i følgende tabeller:

...

  • repository - her slettes dokumenter med uniqueid, der matcher et slettet documententry i NXRG.

Fejlhåndtering

Som tidligere beskrevet bliver slettede metadata vedligeholdt i en særlig tabel, deleted_documententries. Sletning af metadata fungerer ved først at udvælge et datasæt til sletning (dokumenter, associations og submissionsets), og derefter slettet datasættet og markere sletningen som udført i deleted_documententries-tabellen. Sletningen og slettemarkeringen udføres i en transaktion, således at der er konsistens i hvad der er slettet, og hvad der er markeret som slettet.

...