Versions Compared

Key

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

...

For at afvikle projektets unit-tests, skal en MariaDB-database-server være tilgængelig.

I udviklingssammenhæng og ved unit-tests kan man nøjes med én databasebruger og ét database-schema. Disse kan oprettes vha. scripterne recreate_service_user.sql og recreate_database.sql som er lokaliseret under skr-service/src/test/resources/db. Hvis disse standard-scripts anvendes, så passer de database-credentials, som er angivet i oprette de nødvendige database-schemas vha. scriptet compose/database/db/create_db.sql. I application.properties-filen i projektet er datasources som default sat til at anvende root-user med tomt password. Database-strukturen bliver automatisk oprettet vha. Flyway SQL-scripter, når unit-testene afvikles.

...

mvn clean install

Krav til miljø

Kravene er baseret på det driftsmiljø, der aktuelt er gældende på den Nationale Service Platform (NSP).

Krav til applikationsserver

Servicen er udviklet til at kunne afvikles på Wildfly 8 i produktion, som bliver brugt på NSP platformen, og denne installationsvejledning beskriver en sådan opsætning. Applikationsserveren kræver Java 8 eller højere.

Krav til operativsystem

Der stilles ingen krav til operativsystemet udover Java-understøttelse. Ubuntu Linux bruges som operativsystem på NSP’en, men udviklingen af servicen er foretaget på Windows 10 og denne platform kan ligeledes afvikle servicenKomponenten 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.1, som bliver brugt på NSP platformen.

Krav til hardware

Der stilles ikke nogle særlige minimumskrav til hardware, udover minimumskravene for operativsystemet, for at kunne afvikle servicen fornuftigt til testformål. Dog skal man 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.

...

Datamodellen styres vha. inkrementelle SQL-scripter, der kan findes under mappen  skr-service/etccompose/database/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.

...

Info

Under afvikling af unit-tests bliver test-data automatisk indsat i tabellerne vha. yderligere SQL-scripter i projektets test-resources compose/database/db/test.

Info

I udviklingssammenhæng og ved Scriptet R__create_v2_Person_Simplified_view.sql opretter et view, som afhænger af eksistensen af tabellen v2_Person. Dette er tabellen, der indeholder CPR-ændringer, og den skal man selv stå for at levere. Under afvikling af unit-tests kan en databasebruger og en database oprettes vha. scripterne recreate_service_user.sql og recreate_database.sql som er lokaliseret under skr-service/src/test/resources/db. Derefter kan Flyway automatisk initialisere databasen.

Deployment på Wildfly

Denne sektion beskriver konfiguration og deployment af alle ovenstående komponenter på Wildfly 8.

...

bliver en testudgave af denne tabel automatisk oprettet vha. et SQL-script i compose/database/db/test.

Deployment

Komponenten deployes vha. NSP's platform Docker image og konfigurationsfiler mountes i containeren som angivet i projektets Compose-filer.

skr-service komponenten konfigureres ved hjælp et Wildfly-modul, der indholder de nødvendige konfigurationsfiler til definering af datasources, brugerdefinerede parametre, logning, mm.

Info

skr-service er via en jboss-deployment-structure.xml konfigureret til at have en afhængighed på et Wildfly-modul med navnet dk.sundhedsdatastyrelsen.stamkortregister.

Wildfly-modulet, som indeholder konfigurationsfilerne, kan findes under etc/wildfly/modules.

For at installere modulet på Wildfly kopieres indholdet i mappen etc/wildfly/modules til Wildfly's modul-mappe (<wildfly-root>/modules). Med denne fremgangsmåde vil alle nødvendige filer blive tilføjet til Wildfly de rigtige steder, og eksempelvis vil filen i etc/wildfly/modules/dk/sundhedsdatastyrelsen/stamkortregister/main/module.xml ende under <wildfly-root>/modules/dk/sundhedsdatastyrelsen/stamkortregister/main/module.xml.

Selve konfigurationsfilerne for skr-service er lokaliseret i mappen <wildfly-root>/modules/dk/sundhedsdatastyrelsen/stamkortregister/main/resources. Konfigurationsfilerne vil være tilgængelige direkte på classpath'en for de deployede komponenter.

 Wildfly-modulet er integreret i komponentens Docker image.


Info

Alle konfigurerbare properties bør gennemgås inden idriftsættelse, men standardværdierne er tiltænkt anvendelse i produktion medmindre andet er angivet. Med "standardværdierne" forstås de værdier der står i eksempelfilerne under etc/wildfly-mappen i projektets kildekode.


Konfiguration af servicen

...

PropertyBeskrivelseDefault
spring.application.nameNavnet på applikationen. Skal ikke ændres.skr
spring.jmx.enabledDisable Spring Boot JMX. Skal ikke ændres. Deaktiveret da vi ikke udstiller særlig JMX funktionalitet.false
spring.jta.enabled

JTA transaktioner. Det er påkrævet at denne er false, således at Spring Boot i stedet anvender dens egen håndtering af transaktioner. (true/false)

false
management.server.port

Port som Spring Boot management endpoints bind'er på. Endpoints deaktiveres ved at sættes værdien til -1.

-1
spring.datasource.jndi-nameAngiver navnet på den primære JNDI datasourcejava:jboss/datasources/SKR-DS

...

I produktion skal properties konfigureres som beskrevet i MinLog Service - Guide til anvendere.

nspslalog-skr.properties

Konfigurerer SLA-logning for servicen.

Standardværdien er at SLA-logning er slået til.

Se NSP-util - Designdokument.doc for alternativ konfiguration.

log4j-nspslalog.properties

...

Wsproxy er en separat komponent og har derfor adskilte konfigurationsfiler ift. selve servicen. Bemærk at disse konfigurationsfiler ikke er placeret i et modul, men i stedet under etc/wildfly/standalone/configuration. De skal installeres i er mountet i Docker containeren under <wildfly-root>/ standalone/configuration.

...

skr-service komponenten kræver adgang til en JNDI datasource. Denne skal opsættes i Wildfly og refereres til i servicens application.properties.

Vær opmærksom på at datasource'en skal opsættes med en strategi for reconnect håndtering i produktion. Se Wildfly's dokumentation for opsætning af datasources.

Info

I mappen etc/wildfly/standalone/deployments er inkluderet eksempler på datasource-konfigurationer til servicens database (skr-ds.xml). Denne datasource-konfigurationsfil kan opsættes i Wildfly ved at kopiere den ind i <wildfly-root>/standalone/deployments. Derudover skal der også deployes en databaseklient-driver i samme mappe. Den medfølgende datasource-konfiguration anvender driveren mysql-connector-java-5.1.29.jar og denne medfølger ikke i projektet.

Ændring til standardkonfiguration i Wildfly

Standardkonfigurationen i Wildfly refererer i filen modules/system/layers/base/sun/jdk/main/service-loader-resources/META-INF/services/javax.script.ScriptEngineFactory til 2 ScriptEngineFactories:

com.sun.script.javascript.RhinoScriptEngineFactory
jdk.nashorn.api.scripting.NashornScriptEngineFactory

RhinoScriptEngineFactory findes ikke i Java 8. Derfor fås fejlen "javax.script.ScriptEngineFactory: Provider com.sun.script.javascript.RhinoScriptEngineFactory not found" når der anvendes Java 8. For at undgå denne fejlmeddelelse under opstart af Wildfly skal den første linje fjernes eller udkommenteres.

Deployment af komponenter

Overblik over komponenter

Der følgende beskriver de forskellige deployables som komponenten indeholderKomponenter, der skal deployes til Wildfly, kopieres til mappen <wildfly-root>/standalone/deployments.

Filnavn når deployet

Beskrivelse

Kilde

skr-service.war

SKR servicen

skr-service-<version>.war

skr.war

DGWS/IDWS Proxy . Se Installationsvejledning (DGWS/IDWS Proxy) for dokumentation. War-filen for wsproxy komponenten omdøbes til skr.war, hvilket bevirker at webservice context-path for wsproxy i dette tilfælde bliver /skr.

wsproxy-<version>.war (findes ikke i skr- projektet)

Se driftsvejledningen for yderligere information.

...

Når der kommer opgraderinger til en komponent, vil der medfølge release notes, der beskriver opgradering, fallback, osv. for den enkelte komponent.

Start/genstart af komponenterne

Alle komponenter kan genstartes ved at opdatere war-filens last access time med Unix-kommandoen touch, hvilket automatisk detekteres af Wildfly's deploynent scanner. Alternativt kan Wildfly genstartes.