-
Notifications
You must be signed in to change notification settings - Fork 2
Administration_Installation
Florian Fehring edited this page May 7, 2024
·
5 revisions
- Postgres-Datenbankserver (ab Version 11.x)
- Java17
- Payara WebServer (Version 6.x)
- Mind. 20 MB Speicherplatz (Anwendung)
- 1 GB RAM
- 900 MHz
- Datenbank anlegen
- Datenbank und Schema auf dem DB-Server anlegen
- Tabellen anlegen
- Anlegen eines Connection-Pools im Payara
- Der postgres jdbc Treiber muss im Payara installiert sein
- Payara Admin-Oberfläche öffnen (http://localhost:4848)
- Unter Resources / JDBC / JDBC Connection Pools auf "new" klicken
- Pool-Namen eingeben
- Connection-Type: javax.sql.ConnectionPoolDataSource
- Databasevendor: postgresql
- Auf next klicken
- Die Datenbankzugangsdaten in die entsprechenden Felder eintragen
- Anlegen einer Ressource "jdbc/SmartData", welche auf den Connection-Pool verweist
- Unter Resources / JDBC / JDBC Resources auf "new" klicken
- JNDI-Name: "jdbc/SmartData" (oder ein anderer, siehe dazu Hinweise unten)
- Pool-Name: Den zuvor angelegten auswählen
- Deploy der SmartData.war
- Über Applications dann auf Deploy klicken und die .war-Datei auswählen
- Über http://localhost:8080/openapi bzw. http://localhost:8080/swagger Verfügbarkeit prüfen
Zusätzliche Instanzen können über das Deployen der Anwendung unter einem anderen Anwendungsnamen angelegt werden. Die zusätzlichen Instanzen können denselben Connection-Pool verwenden, oder einen anderen.
Siehe auch:
Grundsätzlich kann SmartData mit jeder postgre-Datenbank verwendet werden, ohne das eine spezielle Konfiguration der Datenbank notwendig ist.
Soll mit Geodatentypen in der Datenbank gearbeitet werden, ist Folgendes zu beachten:
- Die postgis-Erweiterung muss im Schema "public" installiert werden
Die Datenbank kann um weitere Funktionen zur Information externer Anwendungen erweitert werden. Dafür müssen die folgenden Skripte auf er Datenbank ausgeführt werden:
Hinweise:
- SCHEMANAME jeweils durch den Namen des Schemas austauschen
- Die Funktionen werden derzeit noch nicht durch SmartData genutzt, aber die OpenDataApp benötigt diese
CREATE OR REPLACE FUNCTION SCHEMANAME.datachanged()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
PERFORM pg_notify('smartdata_datachanged', TG_TABLE_NAME);
RETURN NEW;
END;
$function$
;
CREATE OR REPLACE FUNCTION SCHEMANAME.deletetable()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
PERFORM pg_notify('smartdata_tabledeleted', row_to_json(OLD)::text);
RETURN OLD;
END;
$function$
;
CREATE OR REPLACE FUNCTION SCHEMANAME.newtable()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
PERFORM pg_notify('smartdata_tablecreated', row_to_json(NEW)::text);
RETURN NEW;
END;
$function$
;
CREATE OR REPLACE FUNCTION SCHEMANAME.updatetable()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
PERFORM pg_notify('smartdata_tablechanged', row_to_json(NEW)::text);
RETURN NEW;
END;
$function$
;