Skip to content

Administration_Installation

Florian Fehring edited this page May 7, 2024 · 5 revisions

Installationsvoraussetzungen

  • Postgres-Datenbankserver (ab Version 11.x)
  • Java17
  • Payara WebServer (Version 6.x)
  • Mind. 20 MB Speicherplatz (Anwendung)
  • 1 GB RAM
  • 900 MHz

Einfache Installation

  1. Datenbank anlegen
    1. Datenbank und Schema auf dem DB-Server anlegen
    2. Tabellen anlegen
  2. Anlegen eines Connection-Pools im Payara
    1. Der postgres jdbc Treiber muss im Payara installiert sein
    2. Payara Admin-Oberfläche öffnen (http://localhost:4848)
    3. Unter Resources / JDBC / JDBC Connection Pools auf "new" klicken
    4. Pool-Namen eingeben
    5. Connection-Type: javax.sql.ConnectionPoolDataSource
    6. Databasevendor: postgresql
    7. Auf next klicken
    8. Die Datenbankzugangsdaten in die entsprechenden Felder eintragen
  3. Anlegen einer Ressource "jdbc/SmartData", welche auf den Connection-Pool verweist
    1. Unter Resources / JDBC / JDBC Resources auf "new" klicken
    2. JNDI-Name: "jdbc/SmartData" (oder ein anderer, siehe dazu Hinweise unten)
    3. Pool-Name: Den zuvor angelegten auswählen
  4. Deploy der SmartData.war
    1. Über Applications dann auf Deploy klicken und die .war-Datei auswählen
    2. Über http://localhost:8080/openapi bzw. http://localhost:8080/swagger Verfügbarkeit prüfen

Installation zusätzlicher Instanzen

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:

Einrichten der Datenbank

Grundsätzlich kann SmartData mit jeder postgre-Datenbank verwendet werden, ohne das eine spezielle Konfiguration der Datenbank notwendig ist.

Hinweise für die Verwendung von Geodaten

Soll mit Geodatentypen in der Datenbank gearbeitet werden, ist Folgendes zu beachten:

  • Die postgis-Erweiterung muss im Schema "public" installiert werden

Datenbankseitige Skripte

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

Information bei Datenänderungen

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$
;

Information bei gelöschter Tabelle

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$
;

Information bei neuer Tabelle

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$
;

Information bei geänderter Tabelle

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$
;

Clone this wiki locally