Dette dokument indeholder en beskrivelse af hvordan National Adviseringsservice 2 (herefter NAS2) driftes på et NSP Backend miljø.
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.
Dato | Ansvarlig | Beskrivelse |
---|---|---|
TBD | Jacob Qvortrup | Draft udgave af driftvejledningen |
Reference | Beskrivelse |
---|---|
NAS2 | National Adviseringsservice 2 |
NAS1 | National Adviseringsservice 1 |
NSP | Den nationale service platform |
Driften | NSP Leverandøren og NSP Driftleverandøren |
SDS | Sundhedsdatastyrelsen |
Installationsvejledning | NAS2 - Installationsvejledning |
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.
Denne service konfigureres i filerne "notificationbroker.properties" og "log4j-notificationbroker.xml".
Property | Beskrivelse |
---|---|
kafka.producer.bootstrap.servers | Kommasepareret liste af Kafka servere som NAS2 skal anvende. Denne liste bør indeholde alle noderne i Kafka clusteret |
kafka.producer.client.id | Navnet som NAS2 vil fremgå med i listen af Producers på et Kafka Cluster. |
nsp.kafka.producer.component.name | Navnet på NAS2 komponenten |
nsp.kafka.producer.component.abbreviation | Kort navn på NAS2 komponenten |
nsp.kafka.producer.component.version | Versionen af NAS2 komponenten |
nsp.kafka.producer.service.name | Navnet på den service i NAS2 der anvender Kafka |
datasource.jndi | JNDI navnet på den datasource der giver adgang til NAS2 databasen. |
app.endpoint | Service 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".
Denne fil indeholder en Log4J opsætning der følger gængs standard på NSP.
Denne service konfigureres i filerne "idlist.properties" og "log4j-idlist.xml"
Property | Beskrivelse |
---|---|
datasource.jndi | JNDI navnet på den datasource der giver adgang til NAS2 databasen. |
app.endpoint | Service endpoint (anvendes i DKS servlet) |
Denne fil indeholder en Log4J opsætning der følger gængs standard på NSP.
Denne service konfigureres i filerne "subscriptionmanager.properties" og "log4j-subscriptionmanager.xml"
Property | Beskrivelse |
---|---|
kafka.consumer.bootstrap.servers | Kommasepareret liste af Kafka servere som NAS2 skal anvende. Denne liste bør indeholde alle noderne i Kafka clusteret |
kafka.consumer.client.id | Navnet som NAS2 vil fremgå med i listen af Consumers på et Kafka Cluster. |
nsp.kafka.consumer.component.name | Navnet på NAS2 komponenten |
nsp.kafka.consumer.component.abbreviation | Kort navn på NAS2 komponenten |
nsp.kafka.consumer.component.version | Versionen af NAS2 komponenten |
nsp.kafka.consumer.service.name | Navnet på den service i NAS2 der anvender Kafka |
datasource.jndi | JNDI navnet på den datasource der giver adgang til NAS2 databasen. |
app.endpoint | Service endpoint (anvendes i DKS servlet) |
Denne fil indeholder en Log4J opsætning der følger gængs standard på NSP.
Denne service konfigureres i filerne "pullpointfactory.properties" og "log4j-pullpointfactory.xml"
Property | Beskrivelse |
---|---|
kafka.consumer.bootstrap.servers | Kommasepareret liste af Kafka servere som NAS2 skal anvende. Denne liste bør indeholde alle noderne i Kafka clusteret |
kafka.consumer.client.id | Navnet som NAS2 vil fremgå med i listen af Consumers på et Kafka Cluster. |
nsp.kafka.consumer.component.name | Navnet på NAS2 komponenten |
nsp.kafka.consumer.component.abbreviation | Kort navn på NAS2 komponenten |
nsp.kafka.consumer.component.version | Versionen af NAS2 komponenten |
nsp.kafka.consumer.service.name | Navnet på den service i NAS2 der anvender Kafka |
datasource.jndi | JNDI navnet på den datasource der giver adgang til NAS2 databasen. |
app.endpoint | Service endpoint (anvendes i DKS servlet) |
Denne fil indeholder en Log4J opsætning der følger gængs standard på NSP.
Denne service konfigureres i filerne "pullpoint.properties" og "log4j-pullpoint.xml"
Property | Beskrivelse |
---|---|
kafka.consumer.bootstrap.servers | Kommasepareret liste af Kafka servere som NAS2 skal anvende. Denne liste bør indeholde alle noderne i Kafka clusteret |
kafka.consumer.client.id | Navnet som NAS2 vil fremgå med i listen af Consumers på et Kafka Cluster. |
nsp.kafka.consumer.component.name | Navnet på NAS2 komponenten |
nsp.kafka.consumer.component.abbreviation | Kort navn på NAS2 komponenten |
nsp.kafka.consumer.component.version | Versionen af NAS2 komponenten |
nsp.kafka.consumer.service.name | Navnet på den service i NAS2 der anvender Kafka |
datasource.jndi | JNDI navnet på den datasource der giver adgang til NAS2 databasen. |
app.endpoint | Service endpoint (anvendes i DKS servlet) |
Denne fil indeholder en Log4J opsætning der følger gængs standard på NSP.
Adgang til NAS2 databasen styres gennem filen "nas-ds.xml" - Denne skal matche det NSP miljø hvor komponenten afvikles i.
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.
I det følgende gennemgåes de manuelle aktiviteter der skal ske i databasen og i Kafka ifm driften af NAS2.
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"); |
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"; |
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.
Database modellen er beskrevet i Design og Arkitektur dokumentet (LINK MANGLER)