Introduktion

Formål

Dette dokument indeholder en beskrivelse af hvordan National Adviseringsservice 2 (herefter NAS2) driftes på et NSP Backend miljø.

Læsevejledning

Læseren forventes at have kendskab til Sundhedsdatastyrelsens platform NSP, samt generelt kendskab til WildFly applikation server, Docker, Docker Compose samt Ubuntu Linux operativ system.

Dokument Historik

DatoAnsvarligBeskrivelse
TBDJacob QvortrupDraft udgave af driftvejledningen

Definitioner og referencer

ReferenceBeskrivelse
NAS2National Adviseringsservice 2
NAS1National Adviseringsservice 1
NSPDen nationale service platform
DriftenNSP Leverandøren og NSP Driftleverandøren
SDSSundhedsdatastyrelsen
InstallationsvejledningNAS2 - Installationsvejledning

Konfiguration

Konfiguration af NAS2 sker i filerne i "compose/configuration" mappen som beskrevet i installationsvejledningen. I det følgende gennemgåes hver enkelt services konfigurationsfiler i detaljer.

Notification Broker service

Denne service konfigureres i filerne "notificationbroker.properties" og "log4j-notificationbroker.xml".

notificationbroker.properties

PropertyBeskrivelse
kafka.producer.bootstrap.serversKommasepareret liste af Kafka servere som NAS2 skal anvende. Denne liste bør indeholde alle noderne i Kafka clusteret
kafka.producer.client.idNavnet som NAS2 vil fremgå med i listen af Producers på et Kafka Cluster.
nsp.kafka.producer.component.nameNavnet på NAS2 komponenten
nsp.kafka.producer.component.abbreviationKort navn på NAS2 komponenten
nsp.kafka.producer.component.versionVersionen af NAS2 komponenten
nsp.kafka.producer.service.nameNavnet på den service i NAS2 der anvender Kafka
datasource.jndiJNDI navnet på den datasource der giver adgang til NAS2 databasen.
app.endpointService endpoint (anvendes i DKS servlet)

Alle properties der starter med "kafka.producer." vil blive givet videre til NSP Kafka Clients API'et og derved videre til Kafka Clients. Det er derved muligt at konfigurere alle aspekter af Kafka klienten som måtte være ønsket, blot ved at tilføje nye properties. Hvis f.eks. Kafka konfigurationen "abc" skulle sætte til "42" så tilføjes blot linien "kafka.producer.abc=42".

log4j-notificationbroker.xml

Denne fil indeholder en Log4J opsætning der følger gængs standard på NSP.

ID List service

Denne service konfigureres i filerne "idlist.properties" og "log4j-idlist.xml"

idlist.properties

PropertyBeskrivelse
datasource.jndiJNDI navnet på den datasource der giver adgang til NAS2 databasen.
app.endpointService endpoint (anvendes i DKS servlet)

log4j-idlist.xml

Denne fil indeholder en Log4J opsætning der følger gængs standard på NSP.

Subscription Manager service

Denne service konfigureres i filerne "subscriptionmanager.properties" og "log4j-subscriptionmanager.xml"

subscriptionmanager.properties

PropertyBeskrivelse
kafka.consumer.bootstrap.serversKommasepareret liste af Kafka servere som NAS2 skal anvende. Denne liste bør indeholde alle noderne i Kafka clusteret
kafka.consumer.client.idNavnet som NAS2 vil fremgå med i listen af Consumers på et Kafka Cluster.
nsp.kafka.consumer.component.nameNavnet på NAS2 komponenten
nsp.kafka.consumer.component.abbreviationKort navn på NAS2 komponenten
nsp.kafka.consumer.component.versionVersionen af NAS2 komponenten
nsp.kafka.consumer.service.nameNavnet på den service i NAS2 der anvender Kafka
datasource.jndiJNDI navnet på den datasource der giver adgang til NAS2 databasen.
app.endpointService endpoint (anvendes i DKS servlet)

log4j-subscriptionmanager.xml

Denne fil indeholder en Log4J opsætning der følger gængs standard på NSP.

Pullpoint Factory service

Denne service konfigureres i filerne "pullpointfactory.properties" og "log4j-pullpointfactory.xml"

pullpointfactory.properties

PropertyBeskrivelse
kafka.consumer.bootstrap.serversKommasepareret liste af Kafka servere som NAS2 skal anvende. Denne liste bør indeholde alle noderne i Kafka clusteret
kafka.consumer.client.idNavnet som NAS2 vil fremgå med i listen af Consumers på et Kafka Cluster.
nsp.kafka.consumer.component.nameNavnet på NAS2 komponenten
nsp.kafka.consumer.component.abbreviationKort navn på NAS2 komponenten
nsp.kafka.consumer.component.versionVersionen af NAS2 komponenten
nsp.kafka.consumer.service.nameNavnet på den service i NAS2 der anvender Kafka
datasource.jndiJNDI navnet på den datasource der giver adgang til NAS2 databasen.
app.endpointService endpoint (anvendes i DKS servlet)

log4j-pullpointfactory.xml

Denne fil indeholder en Log4J opsætning der følger gængs standard på NSP.

Pullpoint service

Denne service konfigureres i filerne "pullpoint.properties" og "log4j-pullpoint.xml"

pullpoint.properties

PropertyBeskrivelse
kafka.consumer.bootstrap.serversKommasepareret liste af Kafka servere som NAS2 skal anvende. Denne liste bør indeholde alle noderne i Kafka clusteret
kafka.consumer.client.idNavnet som NAS2 vil fremgå med i listen af Consumers på et Kafka Cluster.
nsp.kafka.consumer.component.nameNavnet på NAS2 komponenten
nsp.kafka.consumer.component.abbreviationKort navn på NAS2 komponenten
nsp.kafka.consumer.component.versionVersionen af NAS2 komponenten
nsp.kafka.consumer.service.nameNavnet på den service i NAS2 der anvender Kafka
datasource.jndiJNDI navnet på den datasource der giver adgang til NAS2 databasen.
app.endpointService endpoint (anvendes i DKS servlet)

log4j-pullpoint.xml

Denne fil indeholder en Log4J opsætning der følger gængs standard på NSP.

Database

Adgang til NAS2 databasen styres gennem filen "nas-ds.xml" - Denne skal matche det NSP miljø hvor komponenten afvikles i.

Kafka

NAS2 skal anvender NSP Kafka Clusteret på NSP Backend miljøet. Der kræves ikke nogen særlig opsætning af Kafka i forhold til det eksisterende NSP Kafka Cluster.

Aktiviteter

I det følgende gennemgåes de manuelle aktiviteter der skal ske i databasen og i Kafka ifm driften af NAS2.

Nyt Topic

For at NAS2 skal kunne modtage adviseringer på et Topic skal dette oprettes i Kafka og i databasen.

Først oprettes Kafka Topic via følgende kommando:

bin/kafka-topics.sh --create --bootstrap-server kafka-host:port --replication-factor 2 --partitions 15 --topic dk.nsp.nas.fmk.MedicineCard

Herefter mappes dette Kafka Topic til et WS-Notification Topic i databasen på følgende måde:

INSERT INTO TopicMapping
	(topic, internal_topic)
VALUES
	("http://www.dkma.dk/medicinecard/xml.schema/2012/06/01:MedicineCard", "dk.nsp.nas.fmk.MedicineCard");

Lukke for et Topic

For at lukke for nye adviseringer til et Topic opdateres rækken i "TopicMapping" på følgende måde:

UPDATE TopicMapping SET active = false where topic ="http://www.dkma.dk/medicinecard/xml.schema/2012/06/01:MedicineCard";

Udvide antallet af partitioner

Hvis der opstår et behov i Kafka for at udvide antallet af partitioner for et Topic, skal der ikke foretages noget i NAS2 idet den selv opdager dette og tilpasser sig det nye antal.

Databasen

Database modellen er beskrevet i Design og Arkitektur dokumentet (LINK MANGLER)