Page History
| Navitabs | ||||
|---|---|---|---|---|
| ||||
Overblik
Dette dokument beskriver installation og konfiguration af Lpr3Indlæseren.
Organdonorregister-servicen består af komponenten lpr3indlaeser.war, der skal konfigureres og deployes på en applikationsserver.
Projektet bygges med Maven og kræver Java 8 samt en MariaDB-installation for at kunne afvikle unit-tests.
Udover normalt tilgængelige Maven dependencies, afhænger projektet også af interne artefakter. Hvis disse artefakter ikke er udgivet (released) i den påkrævede version i NSP's Nexus repository, skal man selv udtjekke og bygge dem fra NSP's Subversion i den pågældende version. Artefakternes forskellige versioner vil være tilgængelige under et Subversion-tag. Disse artefakter er:
- stamdataindlaeser (Maven identifier:dk.nsi.sdm.stamdataindlaeser:stamdataindlaeser)
For at bygge disse interne artefakter, henvises der til artefakternes dokumentation.
| Info |
|---|
Alle filer der refereres til ligger sammen med projektets kildekode i NSP's Subversion. Referencer til stier er relative med udgangspunkt i projektets rodmappe. |
Byggevejledning
For at bygge projektet og dets deployables (war-filen) uden at køre unit-tests og integrationstests, anvendes følgende Maven kommando:
mvn clean install -DskipTests
Projektets deployables ender i target-mappen under de respektive moduler.
Afvikling af unit-tests
Unit-testene i projektet kan afvikles med følgende Maven-kommando:
mvn clean test
Alternativt kan også samtidigt bygge projektet ved at anvende Maven-kommandoen:
mvn clean install
Når unittests afvikles startes en database op vha. TestContainers. Relevante databaseobjekter oprettes automatisk i den forbindelse.
Afvikling af integrationstests
Se testvejledningen.
Krav til miljø
Komponenten er tilpasset at kunne indgå i det aktuelt gældende CI-miljø på NSP. Det tager aktuelt udgangspunkt i version 1 af NSP's platform Docker image.
Krav til database
Servicen er testet mod MariaDB version 10.4, som bliver brugt på NSP platformen.
Krav til hardware
Der stilles ikke nogle særlige minimumskrav til hardware, men man skal forvente at bruge high-end hardware (både cpu, ram, netkort og diske) for at kunne opfylde de gældende svartidskrav på NSP.
Oprettelse af databaser og tabeller
Herunder beskrives servicens tilgang til database samt oprettelse af tabeller.
Tilgang til database
Lpr3Indlæseren kræver en enkelt database hvor de indlæste data kan persisteres.
Servicen konfigureres med 1 datasource, som tilgår databaserne vha. root brugeren.
Oprettelse af database og tabeller
Datamodellen styres vha. de SQL-scripts, der findes undercsrc/main/resources/db/migration.
| Info |
|---|
Scripterne er udformet til at blive kørt med databasemigreringsværktøjet Flyway, men dette er kun aktiveret under afvikling af unit-tests, da dette ikke ønskes anvendt i produktion. |
I produktion anvendes scripterne manuelt og skal køres på databasen i inkrementel rækkefølge baseret på versionsnummeret i filnavnet (først V1__(...).sql, dernæst V2__(...).sql, osv.). Hvert script må aldrig køres mere end én gang.
Ved initial installation af servicen vil det således være følgende scripter, der skal køres i den nedenstående rækkefølge:
Servicens database
- V1__create_table_lpr3.sql
- V2__create_table_meta.sql
- V3__create_table_status.sql
Deployment
Komponenten deployes vha. NSP's platform Docker image og konfigurationsfiler mountes i containeren som angivet i projektets Compose-filer.
| Info |
|---|
Alle konfigurerbare properties bør gennemgås inden idriftsættelse, men standardværdierne er tiltænkt anvendelse i produktion medmindre andet er angivet. |
Konfiguration
Herunder beskrives de properties der findes i lpr3indlaeser-komponentens konfigurationsfiler.
lpr3.properties
Property | Beskrivelse | Default |
|---|---|---|
datasource.jndi | Angiver navnet på den datasource der er konfigureret på Wildfly'en. | java:jboss/datasources/lpr3 |
failIfNotRunInNumberOfDays | Hvis der ikke er blevet indlæst data i det antal dage der står i denne property, så melder servicen en statusfejl. | 2 |
| batchSize | Når data persisteres i databasen, så sker det i batches. Denne property angiver størrelsen på disse batches. | 10000 |
| batchTimeout | Angiver tiden i millisekunder for hvornår en Camel aggregering har været inaktiv - og dermed er færdig. | 500 |
| input_camelUrl | Angiver det Camel udtryk hvor input-filerne kan hentes. | *) |
| ekstern_camelUrl | Den indlæste fil bliver indlæst i en database og den leveres også til en ekstern sftp-server. Her man angive det Camel udtryk hvor filen skal leveres. | **) |
De to Camel udtryk er meget lange så defaultværdierne står her:
*) sftp:foo@lpr3sftp:22/praksys?password=pass&readLock=changed&readLockCheckInterval=10000&antInclude=*.csv&delete=true&disconnect=true&localWorkDirectory=/tmp/lpr3&stepwise=false&initialDelay=5s&delay=5s&knownHostsFile=/pack/wildfly8/modules/dk/nsp/indlaeser/lpr3/known_hosts
...