Für die Ausführung ist wichtig, dass der User als root angemeldet ist. Dazu führt man, falls der User auf der Sudoer-Liste steht (der User root hat dann meist kein eigenes Passwort), Folgendes aus:
sudo su -
Oder, wenn der User nicht auf der Sudoer-Liste steht (root hat eigenes Passwort), Folgendes:
su -
Alle folgende Befehle sollten als root-User ausgeführt werden.
Diese Variablen werden nur für diese Updatesession gesetzt.
Die Variable WILDFLY_HOME wird auf den Homedirectory von dem Wildfly-Service gesetzt, in Normalfall unter /opt/wildfly-9.0.2.Final/. Die Variable i2b2_WEBDIR linkt auf den Ordner des i2b2-Webclients. Diese befindet sich im Apache-Webordner, je nach Distribution /var/www/ oder /var/www/html/. In dem ursprünglichen Installationsschritt wurde zur Vereinfachung die Verlinkung /var/webroot/ erstellt.
WILDFLY_HOME=/opt/wildfly-9.0.2.Final i2b2_WEBDIR=/var/webroot/webclient
Zur Vereinfachung kann das bereitgestellte Updatepaket heruntergeladen und entpackt werden.
wget http://www.aktin.org/software/repo/org/aktin/dwh/dwh-update/1.1u4/dwh-update-1.1u4.tar.gz tar xvzf dwh-update-1.1u4.tar.gz
Vor dem Update sollte die Java-Version des Servers überprüft werden:
java -version # openjdk version "1.8.0_121" # OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-1~bpo8+1-b13) # OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
Sollte in der Anzeige stattdessen Java Version 7 angezeigt werden, sollte diese auf Java Version 8 geupdatet werden.
Unter Debian muss dies über den Jessie-Backport geschehen. Dafür führen Sie bitte folgenden Code aus:
if [ $(grep -c -e "^deb http://ftp.de.debian.org/debian jessie-backports main" /etc/apt/sources.list) -le 0 ] ; then echo 'deb http://ftp.de.debian.org/debian jessie-backports main' >> /etc/apt/sources.list; fi apt-get update ; apt install -t jessie-backports -y openjdk-8-jre-headless ca-certificates-java update-alternatives --set java $(update-alternatives --list java | grep "java-8")
Unter CentOS muss yum -y install java-1.8.0-openjdk-headless ausgeführt werden. Unter RedHat müssen Sie eventuell Ihren Serveradministrator um ein Repository-Update bitten.
Die alte Version von der DWH-J2EE-Software muss aus dem Wildfly-Service entfernt werden. Mit dem ersten Befehl des folgenden Blockes kann man alle in dem Service gelisteten Softwarepakete anzeigen lassen. Mit dem zweiten spezifisch die aktuell aktiven Pakete.
ls $WILDFLY_HOME/standalone/deployments/dwh-j2ee-* # /.../dwh-j2ee-0.6.3.ear # /.../dwh-j2ee-0.6.3.deployed ls $WILDFLY_HOME/standalone/deployments/dwh-j2ee-* | grep deployed # /.../dwh-j2ee-0.6.3.deployed
Mit dem folgenden Befehl werden alle DWH-J2EE-Softwarepakete deaktiviert.
$WILDFLY_HOME/bin/jboss-cli.sh -c --command="undeploy --name=dwh-j2ee*.ear"
In einem früheren Update wurd eine Konfigurationsdatei erstellt. Sollten Änderungen an dieser Datei notwendig sein, fügen Sie bitte die neue Einstellungen durch. Die Änderungen können durch den diff-Befehl erkannt werden. Sie können den Code-Abschnitt aus dem automatischen Updateskript unter dem Abschnitt STEP 0.02 entnehmen und verwenden. Dazu werden auf dem Server die Pakete diff, sed und patch benötigt. Dieser Code-Abschnitt geht davon aus, dass die aktive aktin.properties-Datei unter $WILDFLY_HOME/standalone/configuration/ zu finden ist. Sollten Sie noch keine $WILDFLY_HOME/standalone/configuration/aktin.properties eingerichtet haben, richten Sie es bitte wie folgt ein. Ein Template dafür kann dem Updatepaket entnommen (dwh-update/aktin.properties) oder per Hand erstellt werden.
Ein Template sowie weiterführende Erläuterungen zu wichtigen Einstellungen finden Sie auf der Seite Installationsskript im Bereich “Aktin-Properties”.
In dieser Datei werden Angaben zum lokalen DWH und Standort-spezifische Änderungen gemacht. Falls die Datei manuell angelegt wird, sollte darauf geachtet werden, dass als Encoding UTF-8 und Unix-Zeilenendungen verwendet werden.
Diese Datei muss dann in den Konfigurationsordner des Wildfly gelegt werden, zu finden unter $WILDFLY_HOME/standalone/configuration/:
cp aktin.properties $WILDFLY_HOME/standalone/configuration/
Sollten zu einem späteren Zeitpunkt Änderungen an der Datei erfolgen, muss dies auch in dem Ordner übernommen werden und der Wildfly-Service muss neugestartet werden (diese Befehle müssen beim Update nicht an dieser ausgeführt werden):
# debian service wildfly stop service wildfly start
Unter CentOS sind diese Befehle wie folgt, sofern der Wildfly als Service eingerichtet wurde:
# centos systemctl stop wildfly systemctl start wildfly
Mit einem früheren Update wurde ein E-Mail-Dienst eingerichtet, der z.B. die monatlich erzeugten Berichtsdokumente an die in aktin.properties angegebenen E-Mail-Adresse sendet.
Sollten Sie bereits den E-Mail-Dienst eingerichtet haben, jedoch die Daten ändern wollen, rufen Sie bitte zuerst das Skript dwh-update/email_config_reset.sh aus dem Updatepaket auf, um die vorhandenen Einstellungen zu entfernen. Nach einem Neustart des Wildfly-Service fahren Sie dann bitte wie bei einer Neueinrichtung fort.
Ein Template und weiterführende Erläuterungen der Parameter finden Sie auf der Seite Installationsskript im Bereich “E-Mail-Konfiguration”.
Zum Einrichten des E-Mail-Services steht auch ein Skript aus dem Updatepaket bereit. Dazu muss die Datei dwh-update/email.config angepasst und das Skript dwh-update/lib/email_create.sh ausgeführt werden.
Alternativ können auch direkt die folgenden Befehle aufgerufen werden, wobei die Variablen XXXsmtphostXXX, XXXsmtpportXXX, XXXsmtpuserXXX, XXXsmtppassXXX, XXXusetlsXXX, XXXusesslXXX sowie XXXmailfromXXX durch die lokalen Daten ersetzt werden müssen.
$WILDFLY_HOME/bin/jboss-cli.sh -c "/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=aktin-smtp-binding:add(host=XXXsmtphostXXX, port=XXXsmtpportXXX)" $WILDFLY_HOME/bin/jboss-cli.sh -c "/subsystem=mail/mail-session=AktinMailSession:add(jndi-name=java:jboss/mail/AktinMailSession)" $WILDFLY_HOME/bin/jboss-cli.sh -c "/subsystem=mail/mail-session=AktinMailSession/server=smtp:add(outbound-socket-binding-ref=aktin-smtp-binding, username=XXXsmtpuserXXX, password=XXXsmtppassXXX, tls=XXXusetlsXXX, ssl=XXXusesslXXX)" $WILDFLY_HOME/bin/jboss-cli.sh -c "/subsystem=mail/mail-session=AktinMailSession/:write-attribute(name=from, value=XXXmailfromXXX)"
Die neue Ontologie kann dem Updatepaket dwh-update/packages/cda-ontology-0.13.jar entnommen oder über das Paket CDA-Ontology heruntergeladen werden:
wget http://www.aktin.org/software/repo/org/aktin/cda-ontology/0.13/cda-ontology-0.13.jar
Man sollte das Paket in ein temporäres Verzeichnis entpacken und die enthaltenen sql-Skripte über den postgres-User ausführen. Anschließend kann das temporäre Verzeichnis wieder gelöscht werden.
CDATMPDIR=/var/tmp/cda-ontology unzip dwh-update/packages/cda-ontology-0.13.jar -d $CDATMPDIR chmod 777 -R $CDATMPDIR su - postgres bash -c "psql -d i2b2 -f $CDATMPDIR/sql/remove_ont.sql" su - postgres bash -c "psql -d i2b2 -f $CDATMPDIR/sql/meta.sql" su - postgres bash -c "psql -d i2b2 -f $CDATMPDIR/sql/data.sql" rm -r $CDATMPDIR
Diese Einstellung muss nur einmal ausgeführt werden. Sollte sie bereits vorhanden sein, kann dieser Abschnitt übersprungen werden.
Es kann eventuell notwendig sein, die Genauigkeit der Datumsangaben für Patienten und Besuche anzupassen. Dies geschieht durch die Datei lib/fix_visit_patient_date_accuracy.sql im Update-Paket.
CDATMPDIR=/var/tmp/cda-ontology mkdir $CDATMPDIR cp dwh-update/lib/fix_visit_patient_date_accuracy.sql $CDATMPDIR/sql/ chmod 777 -R $CDATMPDIR su - postgres bash -c "psql -d i2b2 -f $CDATMPDIR/sql/fix_visit_patient_date_accuracy.sql" rm -r $CDATMPDIR
Diese Einstellung muss nur einmal ausgeführt werden. Sollte sie bereits vorhanden sein, kann dieser Abschnitt übersprungen werden.
Aus Sicherheitsgründen und zur verbesserten Nutzung werden die Defaultlogindaten aus dem Webformular des i2b2 entfernt. Die Logindaten werden dabei nicht geändert, es werden lediglich die Vorbelegungen aus der Login-Maske gelöscht.
Mittels der folgenden beiden Befehlen werden die Einträge gelöscht:
sed -i "s/name=\"uname\" id=\"loginusr\" value=\"demo\"/name=\"uname\" id=\"loginusr\" value=\"\"/g" $i2b2_WEBDIR/js-i2b2/cells/PM/PM_misc.js sed -i "s/name=\"pword\" id=\"loginpass\" value=\"demouser\"/name=\"pword\" id=\"loginpass\" value=\"\"/g" $i2b2_WEBDIR/js-i2b2/cells/PM/PM_misc.js
Zudem sollten, sofern noch nicht geschehen, die Passwörter der Benutzer “i2b2” und “demo” für den Zugang zum i2b2-Web-Client geändert werden. Die Standardpasswörter für beide Nutzer lauten “demouser”. Das Ändern der Passwörter können Sie nach dem Update in der Adminoberfläche des i2b2 durchführen. Sollte dazu Fragen auftauchen, kontaktieren Sie uns gerne.
Diese Einstellung muss nur einmal ausgeführt werden. Sollte sie bereits vorhanden sein, bitte diesen Abschnitt überspringen.
Zur lokalen Verwaltung wird eine zusätzliche AKTIN-Datenbank angelegt, in der z.B. das Datum des letzten Monatsberichts oder die Angaben der Abfragen gespeichert werden.
Dazu muss der User auf postgres gewechselt werden:
su - postgres
Die folgenden Befehle müssen zum Anlegen des Datenbanknutzers und der Datenbank ausgeführt werden:
createdb aktin psql -c "CREATE ROLE aktin with password 'aktin'" aktin psql -c "CREATE SCHEMA IF NOT EXISTS aktin AUTHORIZATION aktin" aktin psql -c "GRANT ALL ON SCHEMA aktin to aktin" aktin psql -c "ALTER ROLE aktin WITH LOGIN" aktin
Anschließend wird der User zurück auf root gewechselt (postgres-User wird abgemeldet):
exit
Um die erstellte Datenbank anzuwenden, muss im Wildfly-Service die AKTIN-Datasource angelegt werden:
$WILDFLY_HOME/bin/jboss-cli.sh -c --command="data-source add --name=AktinDS --jndi-name=java:jboss/datasources/AktinDS --driver-name=postgresql-9.2-1002.jdbc4.jar --jta=false --connection-url=jdbc:postgresql://localhost:5432/aktin --user-name=aktin --password=aktin"
Zur Überprüfung kann dann folgender Befehl ausgeführt werden:
$WILDFLY_HOME/bin/jboss-cli.sh -c --command="/subsystem=datasources:read-resource"
Die Änderungen treten erst nach einem Neustart des Services in Kraft. (In der Konsole wird reload-required angezeigt. Da im Updateverlauf noch der Neustart erfolgt, wird der Neustart in diesem Schritt übersprungen).
Diese Einstellung muss nur einmal ausgeführt werden. Sollte sie bereits vorhanden sein, bitte diesen Abschnitt überspringen.
Zur Vermeidung von Überfüllung des Servers durch Log-Dateien und Konsolausgaben, wird hier die Logging-Einstellung der Wildfly-Service umgestellt.
Zur Sicherheit sollte die betreffende Datei gesichert werden:
cp $WILDFLY_HOME/standalone/configuration/standalone.xml $WILDFLY_HOME/standalone/configuration/standalone.xml.$NEW_VERSION.orig
Zur Entfernung der alten Konsolen- und Daterotating-Logging:
/subsystem=logging/root-logger=ROOT:remove-handler(name="FILE") /subsystem=logging/root-logger=ROOT:remove-handler(name="CONSOLE")
Und Einstellung eines neuen Filerotating-Logging, mit maximal 64 Dateien je maximal 50MB:
/subsystem=logging/size-rotating-file-handler=srf:add(named-formatter="PATTERN", file={"relative-to"=>"jboss.server.log.dir", "path"=>"server.log"}, autoflush=true, max-backup-index=64, rotate-size=50m, rotate-on-boot=true) /subsystem=logging/root-logger=ROOT:add-handler(name="srf")
Diese Einstellung muss nur einmal ausgeführt werden. Sollte sie bereits vorhanden sein, kann dieser Abschnitt übersprungen werden.
Die später erzeugten Berichte werden in dem Ordner /var/lib/aktin/ abgelegt. Dazu wird der Ordner angelegt und die Benutzerrechte gesetzt:
mkdir -p /var/lib/aktin chown wildfly /var/lib/aktin
Diese Einstellung muss nur einmal ausgeführt werden. Sollte sie bereits vorhanden sein, bitte diesen Abschnitt überspringen.
Standardmäßig wird der Wildfly-Service nur 1GB bzw 1024MB Arbeitsspeicher zugeordnet. Dies kann bei Abfragen sehr schnell ausgereizt werden. Daher wird in diesem Schritt der Arbeitsspeicher auf 2GB erhöht.
if [ ! -f $WILDFLY_HOME/bin/standalone.conf.orig.$NEW_VERSION ] ; then cp -v $WILDFLY_HOME/bin/standalone.conf $WILDFLY_HOME/bin/standalone.conf.orig.$NEW_VERSION fi sed 's/Xmx1024m/Xmx2g/g' $WILDFLY_HOME/bin/standalone.conf > $WILDFLY_HOME/bin/standalone1.conf mv $WILDFLY_HOME/bin/standalone1.conf $WILDFLY_HOME/bin/standalone.conf
In diesem Schritt wird der Wildfly-Service gestoppt, um eine fehlerfreie Entfernung der alten Softwarepakete zu garantieren. Danach wird der Service neugestartet. (Für CentOS muss der Code entsprechend angepasst werden.)
service wildfly stop # debian # systemctl stop wildfly # centos rm -v $WILDFLY_HOME/standalone/deployments/dwh-j2ee-*
Sollten noch alte Log-Dateien aus dem Daterotating-Logging vorhanden sein, werden diese komprimiert und die Originaldateien gelöscht:
if [ $( ls /opt/wildfly-9.0.2.Final/standalone/log/server.log.201* 2>/dev/null | wc -l ) -gt 0 ] ; then current=$(date +%Y%h%d%H%M) tar cvfz $WILDFLY_HOME/standalone/log/serverlog_pre_${NEW_VERSION}_${current}.tgz $WILDFLY_HOME/standalone/log/server.log.201* rm -v $WILDFLY_HOME/standalone/log/server.log.201* fi
Anschließend wird die Wildfly-Service wieder gestartet.
service wildfly start # debian # systemctl start wildfly # centos
Das neue Softwarepaket kann entweder dem geladenen Updatepaket entnommen werden (dwh-update/packages/dwh-j2ee-1.1rc1.ear) oder herunter geladen werden unter EAR Release 1.1rc1. Es muss in denWildfly-Deploymentordner kopiert werden.
cp dwh-update/packages/dwh-j2ee-1.1rc1.ear $WILDFLY_HOME/standalone/deployments/
Das Deployment wird damit automatisch gestartet und kann einige Minuten andauern.
Nach erfolgereichem Deployment wird die Datei $WILDFLY_HOME/standalone/deployments/dwh-j2ee-1.1rc1.ear.deployed erstellt.
ls /opt/wildfly-9.0.2.Final/standalone/deployments/dwh-j2ee-*.deployed
Sollte eine Datei angezeigt werden, war das Update erfolgreich.Sollte stattdessen $WILDFLY_HOME/standalone/deployments/dwh-j2ee-1.1rc1.ear.failed auftauchen, melden Sie uns bitte den Fehler zusammen mit dem Wildfly-Konsolenlog, zufinden unter /var/log/wildfly/console.log oder /opt/wilfly*/standalone/logs/...
Nach dem erfolgreichen Update können Sie auf der Seite http://IHRSERVER/aktin/admin/plain/test.html die Grundfunktionalität testen.
Eine weiterführende Anleitung zum Testen der Verbindung finden Sie auf der Seite Installationsskript im Bereich “Test der Betriebsfähigkeit”.
Sollten weitere Probleme entstehen, kontaktieren Sie uns bitte unter it-support(at)aktin.org
Sollten Probleme beim mauellen Update auftreten, so führen Sie bitte das Aktin-Diagnose-Skript aus. Eine genauere Beschreibung finden Sie auf der Seite Installationsskript im Bereich “Aktin Diagnose-Skript”.
Senden Sie diese Datei bitte an den Aktin-Support, unter it-support(at)aktin.org, mit einer Support-Anfrage. Die erzeugten Logs helfen bei der Identifizierung von Problemen.