Dette dokument beskriver installation og konfiguration af yder indlæseren.
Yder indlæseren består af komponenten yderindlaeser.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:
For at bygge disse interne artefakter, henvises der til artefakternes dokumentation.
Alle filer der refereres til ligger sammen med projektets kildekode i NSP's Subversion. Referencer til stier er relative med udgangspunkt i projektets rodmappe.
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.
Servicen er testet mod MariaDB version 10.4, som bliver brugt på NSP platformen.
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.
Herunder beskrives servicens tilgang til database samt oprettelse af tabeller.
Yder indlæ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.
Datamodellen styres vha. de SQL-scripts, der findes under compose/configuration/database/ddl.
Scriptene er udformet til at blive kørt med databasemigreringsværktøjet Liquibase. Scriptene er designet til at kunne blive brugt i både test- og produktions-miljø.
Ved initial installation af servicen vil Liquibase håndtere at køre scriptene i den korrekte rækkefølge.
Komponenten deployes vha. NSP's platform Docker image og konfigurationsfiler mountes i containeren som angivet i projektets Compose-filer. Herunder også database scriptene.
Alle konfigurerbare properties bør gennemgås inden idriftsættelse, men standardværdierne er tiltænkt anvendelse i produktion medmindre andet er angivet.
Herunder beskrives de properties der findes i yderindlaeser-komponentens konfigurationsfiler.
Property | Beskrivelse | Default |
---|---|---|
datasource.jndi | Angiver navnet på den datasource der er konfigureret på Wildfly'en. | java:jboss/datasources/yder |
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 |
allowableDifferencePercentage | Hvis modtagne data afviger mere denne % sats meldes en fejl og indlæsningen stoppes | 30 |
batchSize | Data persisteres i databasen i batches og størrelsen på disse angives i denne property. | 100 |
batchTimeout | Hvis der ikke er flere data at persistere, og det igangværende batch derfor ikke kan nå batchSize, angiver denne tiden i millisekunder der ventes på yderligere data før et batch anses for at være komplet. | 500 |
input_camelUrl | Angiver det Camel udtryk der henter input-filerne fra SFTP serveren. De filer der hentes lægges i en intern folder i Docker containeren. Den interne folder der hentes til er angivet i property input.folder For at have adgang til de hentede filer efter Docker containeren er slukket, skal der laves en volume-mount af en ekstern folder ind til den angivne folder i Docker containeren. | *) |
ekstern_camelUrl Denne konfiguration er udelukkende til brug for Yderindlæseren og er således ikke en generisk funktionalitet i indlæser reference arkitekturen | Data fra den indlæste fil bliver indlæst i en database. Det er muligt at få indholdet af den indlæste fil leveret til en ekstern SFTP-server, og dette Camel udtryk angiver hvordan filen skal leveres. Hvis ekstern_camelUrl ikke har en værdi, vil der ikke blive foretaget en ekstern levering. | **) |
output_camelUrl | Bekræftelse på endt håndtering sendes .done/.fail filer ekstern vha. denne SFTP server. | |
backupType | Angiver den ønskede backuptype
| RawBackup |
backupFolder | Angiver placering af backup fil. Dette skal være en folder internt i den Docker container der kører Yderindlæseren. For at have adgang til de backup'ede filer efter Docker containeren er slukket, skal der laves en volume-mount af en ekstern folder ind til den angivne folder i Docker containeren. | |
input.folder | Den interne folder, som filerne der hentes med input SFTP lægges i | |
confirm.folder | Den interne folder, som .done og .fail filerne der skabes efter endt håndteres lægges i midlertidig inden de sendes med output SFTP | |
ekstern.input.folder | Den interne folder, som filerne der sendes med ekstern SFTP lægges i først | |
Denne figur viser hvor de properties der styrer Yderindlæserens opførsel har indflydelse.
De to Camel udtryk er meget lange så defaultværdierne står her:
De angivne passwords herunder er udelukkende til illustration og de er ikke gyldige passwords |
*) sftp:foo@ydersftp:22/praksys?password=pass&readLock=rename&antInclude=*.xml&delete=true&disconnect=true&stepwise=false&initialDelay=5s&delay=5s&knownHostsFile=/pack/wildfly8/modules/dk/nsi/sdm/yder/known_hosts
**) sftp:bar@ydersftp:22/ekstern?password=pass&tempFileName=${file:name.noext}.tmp&knownHostsFile=/pack/wildfly8/modules/dk/nsi/sdm/yder/known_hosts