Page History
...
Nærværende dokument er en guide til nye udviklere af stamdataservicen på NSP. Guiden gennemgår på overordnet plan de aktiviteter, der er nødvendige for at kunne videreudvikle stamdataservicen.
...
Metode og rapportens opbygning
Efter nærværende introduktion vil dokumentet gennemgå de væsentligste dele af opsætningen af et lokalt udviklingsmiljø og afvikling af test/performancetest.
...
Eclipse er ikke født med Maven support, og det anbefales derfor, at man installerer m2eclipse inden stamdataservicen hentes ind i Eclipse:
Herefter importeres projekterne i Eclipse via ”import”:
...
Alternativt kan man importere projektet ved at udføre følgende kommando:
% mvn eclipse:eclipse |
---|
Og herefter importere projektet på normal vis i Eclipse.
...
Alternativt kan man importere projektet ved at udføre følgende kommando:
% mvn idea:idea |
---|
Herefter kan projektet importeres på normal vis i IntelliJ.
Obs! Denne metode kræver dog, at kommandoen udføres hver gang man ændrer i pom filerne.
...
Distribution
Stamdataservicen kan bygges til distribution eller lokal test ved at udføre:
% mvn package |
---|
Dette generer en række WAR filer, der efterfølgende kan deployeres lokalt eller i produktion.
...
Inden man kører test skal man konfigurere stamdata komponenterne til at køre i development mode. Fra kildekoden skal
/nsp/authorization-lookup-ws/src/test/resources/test-config.properties |
---|
omdøbes til
stamdata-authorization-lookup-ws.properties |
---|
og lægges i
$JBOSS_HOME/server/default/conf/ |
---|
På samme måde skal
/nsp/batch-copy-ws/src/test/resources/test-config.properties |
---|
omdøbes til
stamdata-batch-copy-ws.properties |
---|
og lægges i
$JBOSS_HOME/server/default/conf/ |
---|
Check at følgende property:
security=dgwsTest |
---|
er sat i
stamdata-batch-copy-ws.properties |
---|
Dette gør, at komponenterne godkender requests med ID Kort underskrevet af Test STS’en.
...
Når filerne er ændret skal JBoss genstartes:
% sudo /etc/init.d/jboss restart |
---|
Konfiguration af database
...
Performance tests køres ved at køre følgende kommandoer fra folderen ”common/performance” i stamdata’s kildekode:
% mvn -Pperformancetest integration-test site -Dhostname=<host> -Dport=<port> |
---|
Hvor <host> er adressen på nsp-serveren, hvor Stamdataservice er deployet. Hvis du kører mod NIAB så anvend dens IP-adresse som <host> og anvend 8080 som <port>.
...
HTML-rapporter bliver lagt i
common/performance/target/site/ |
---|
når alle tests er færdige.
...
Test køres med current dir i
nsp/cpr-ws |
---|
For StamdataPersonLookup testes den case, hvor request indeholder fornavn+efternavn, og der søges efter personer der matcher dette. Denne case er udvalgt, fordi den vurderes at belaste serveren mest (i forhold til fx casen med opslag ud fra cpr-numre).
...
Inden man kører test, skal man konfigurere stamdata komponenterne til at køre i development mode. Fra kildekoden skal
/nsp/cpr-ws/src/test/resources/test-config.properties |
---|
omdøbes til
stamdata-cpr-ws.properties |
---|
og lægges i (anvend sudo)
$JBOSS_HOME/server/default/conf/ |
---|
Performance testdata
Filen
nsp/cpr-ws/src/test/resources/getPersonDetailsQueryParameters.csv |
---|
indeholder komma-separerede par af fornavn, efternavn der benyttes til kaldene til StamdataPersonLookup-servicen.
...
På samme måde indeholder filen
nsp/cpr-ws/src/test/resources/ getSubscribedPersonDetailsQueryParameters.csv |
---|
et cvr-nummer pr. linie. Disse cvr-numre benyttes til kaldene til StamdataPersonLookupWithSubscription-servicen.
...
Inden man kører test skal man konfigurere stamdata komponenterne til at køre i development mode. Fra kildekoden skal
/nsp/cpr-ws/src/test/resources/test-config.properties |
---|
omdøbes til
stamdata-cpr-ws.properties |
---|
og lægges i (anvend sudo)
$JBOSS_HOME/server/default/conf/ |
---|
CPR-WS database opsætning
For at kunne køre testen igennem med de leverede input-parametre, skal dette script indlæses i Stamdatas database:
src/test/resources/data_needed_for_performancetests.sql |
---|
f.eks. ved at køre (på NIAB hvis det er det man har valgt)
% mysql -usdm -p < nsp/cpr-ws/src/test/resources/data_needed_for_performancetests.sql Password: papkasse |
---|
indeholder eksempeldata for henholdsvis cpr-abonnementer og ændrede cpr-numre til cprabbs-servicen.
...
Der skal være adgang til en kørende cprabbs-service. Dette kan f.eks. opnås ved at deploye cpr-abbs war filen i på NIAB fra seneste BRS release. Denne cpr-abbs war fil ligger i et BRS release her:
<versions-nr>/cprabbs-war-<versions-nr>.war |
---|
CPRABBS-service konfiguration
Fra kildekoden skal
/brs/common/src/main/resources/brs.local-deploy.properties |
---|
omdøbes til :
brs.properties |
---|
og lægges i (anvend sudo):
$JBOSS_HOME/server/default/conf/ |
---|
I Stamdatas konfiguration skal property
cprabbs.service.endpoint.host cprabbs.service.endpoint.port cprabbs.service.endpoint.path |
---|
sættes til cprabbs-servicens endpoint, fx værdierne
cprabbs.service.endpoint.host=localhost cprabbs.service.endpoint.port=8080 cprabbs.service.endpoint.path=/cprabbs/service/cprabbs |
---|
CPRABBS-service databaseopsætning
...
Opret og tilpas CPRABBS notifikationsdatabasen:
$ mysql -f -uroot -p < init-mysql-nsp_reg_notification.sql (ignorér fejl) $ mysql --database=nsp_reg_noti -uroot -p < create-cprsubscription-tables.sql $ mysql --database=nsp_reg_noti -uroot -p < mysql-cprsubscription-alter-tables.sql |
---|
Opret og tilpas testdatabase over personer med CPR-nummer opdateringer i stamdata databasen:
$ mysql -f -uroot -p < init-mysql-nsp_stamdata.sql $ mysql --database=nsp_stamdata -uroot -p < create-test-stamdata-tables.sql $ mysql --database=nsp_stamdata -uroot -p < mysql-test-stamdata-alter-tables.sql |
---|
Fyld data i CPRABBS notifikationsdatabasen:
$ mysql --database=nsp_stamdata -uroot -p < src/test/resources/cprabbs_data_needed_for_performancetests_nsp_stamdata.sql |
---|
Opret og tilpas testdatabase over personer med CPR-nummer opdateringer i stamdata databasen:
$ mysql --database=nsp_reg_noti -uroot -p < src/test/resources/cprabbs_data_needed_for_performancetests_nsp_reg_noti.sql |
---|
Udførsel
Man udfører testen ved at køre følgende (som én linie, uden liniebrud):
rm -rf target/chronos/&& mvn integration-test site -Pperformancetest -DskipTests -DnumberOfIterations=5 -DnumberOfThreads=10 -Dhostname=localhost -Dport=8080 |
---|
(rm-delen sørger for, at Chronos-pluginn’et kører testen igen, selvom der ligger et resultat fra tidligere).
...
Når kommandoen har kørt, er testrapporter tilgængelige i
target/site |
---|
Denne html fil:
StamdataPersonLookupGetPersonDetails-report.html |
---|
Viser resultatet af den test, der forespørger på personer via fornavn, efternavn par. Resultater af den performancetest, der er abonnements (altså afhænger cpprabs-servicen) forefindes i
StamdataPersonLookupWithSubscriptionGetSubscribedPersonDetails-report.html |
---|
6 Tips og tricks
I de følgende beskrives problemer og deres løsninger:
...
Beskrivelse
I JBoss’s boot.log:
$JBOSS_HOME/server/default/log/boot.log |
---|
Logger JBoss noget i stil med ”out of memory” og nævner “permgenspace”
...
Forøg JBoss permgen space ved at ændre linien indeholdende:
JAVA_OPTS="-Xms2048m -Xmx2048m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000" |
---|
i filen
$JBOSS_HOME/bin/run.conf |
---|
til
JAVA_OPTS="-Xms2048m -Xmx2048m -XX:MaxPermSize=512m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000" |
---|
JBoss kan ikke skrive til “trancsaction.log”
Beskrivelse
I JBoss’s boot.log:
$JBOSS_HOME/server/default/log/boot.log |
---|
Logger JBoss noget i stil med ”transaction.log” og ”cannot write”
...
Løsning
Ignorér denne fejl.
7 Ændringslog
...