Allgemeines

Innerhalb von Neo4J findet die Speicherung von gecachten Daten für GISX 3.x statt.

Caching ist immer dann notwendig, wenn Daten aus der ursprünglichen Datenquelle (z.B. GISX 2.x Datenbank) nicht mit einer zufriedenstellenden Performance dargestellt werden. Um eine schnelle Verfügbarkeit zu gewährleisten, werden durch den Cachingvorgang Daten aus der ursprünglichen Datenquelle in eine Neo4J Datenbank kopiert. Bei jedem Zeichenvorgang werden die Daten aus dieser Datenbank verwendet.

Technische Informationen

Bei Neo4J handelt es sich um eine Graphendatenbank, die im embedded Modus betrieben wird. Dies bedeutet dass für den Betrieb keinerlei weitere Installationen notwendig sind, da die vollständigen Programmdateien bereits in GISX enthalten sind.

Um eine erhöhte Verfügbarkeit zu gewährleisten, werden in der Regel immer zwei Datenbanken vorgehalten:

  1. In einer Datenbank werden nur Daten durch den Cachingvorgang geschrieben. Diese Datenbank ist innerhalb des GISX 3.x Servers nicht in Verwendung. Diese Datenbank ist die "Produktionsdatenbank".
  2. Eine zweite Datenbank wird innerhalb des GISX 3.x Servers verwendet und dient der Anzeige von Daten. Diese Datenbank ist die "aktive Datenbank". Sobald der Cachingvorgang aus 1. abgeschlossen ist, wird die dort erstellte "Produktionsdatenbank" zur "aktiven Datenbank". Die alte "aktive Datenbank" kann gelöscht werden (Findet durch den Cachingvorgang statt).

Beide Datenbanken werden im Datenbankverzeichnis (siehe hierzu Konfiguration) in unterschiedlichen Unterverzeichnissen vorgehalten. Jedes Unterverzeichnis beginnt mit "neocachedb." gefolgt von einer Nummer.

Im Datenbankverzeichnis existiert eine Datei ".neocache". Diese wird durch den Cachingvorgang automatisch erstellt und enthält die Nummer der aktuellen "aktiven Datenbank".

Icon

Manuelle Änderungen der Datei ".neocache" sind unbedingt zu vermeiden!

Der Cachingvorgang hat folgenden Ablauf:

  1. Erstellung einer neuen Datenbank "neocachedb." + Nummer
  2. Aktualisierung Datei ".neocache" mit neuer Nummer
  3. Aktivierung der neuen Datenbank durch den Server (Aufgrund Dateiänderung ".neocache")
  4. Entfernen nicht mehr benötigter Datenbanken durch Server

Konfiguration

Die Konfiguration des Caches findet in der Datei <GISX3HOME>/datastores/neo4j/neo4j.properties statt.

Hier können zwei Parameter angegeben werden:

ParameterBeschreibungErforderlichBeispiel
home

Pfad zum Datenbankverzeichnis. In diesem Verzeichnis werden die durch den Cachingvorgang gebildeten Daten abgelegt.

Ja

home=C:\\temp\\neohome

triggerActiveDatabaseChange

Gibt an ob durch einen Wechsel der aktiven Datenbank (Nach Aufruf von "serverURL") weitere Aktionen stattfinden sollen. Ist dieser Wert nicht angegeben oder true, werden durch Wechsel des aktiven Caches alle Themen aus Layern die "untiled" sind einmalig geladen. Dadurch findet eine Beschleunigung des ersten Anzeigevorgangs nach dem Neucaching statt.

Ferner wird einmalig jedes Element im Cache geladen (sogenanntes "WarmUp"), dadurch werden erstmalige Zugriffe auf Bereiche massiv beschleunigt.

Allerdings dauert der Wechsel des aktiven Caches unter Umständen länger und der Server steht kurzzeitig nicht zur Verfügung.

Eine Angabe von "false" deaktiviert dieses Feature.

NeintriggerActiveDatabaseChange=false
Icon

Das in home angegebene Verzeichnis sollte sich auf dem gleichen Server wie Ihre GISX 3 Installation befinden. Nur dadurch kann eine gute Performance sicher gestellt werden, da keine Übertragung über Netzwerk notwendig ist.

Das in home angegebene Verzeichnis sollte außerhalb des GISX3HOME Verzeichnisses liegen, da eine Datenbank ständigen Änderungen unterworfen ist. Einige Prozesse innerhalb von GISX3 reagieren auf Veränderungen an Dateien im GISX3HOME Verzeichnis, weshalb eine Neo4J Datenbank nur unnötige Nachladevorgänge mit sich bringen würde.

Icon

Der Parameter "serverURL" in "neo4j.properties" wird nicht mehr benötigt und kann ignoriert werden

Icon

Geben Sie für unterschiedliche <GISX3HOME> Installationen unterschiedliche Werte für das home Verzeichnis an, da innerhalb eines Datenbankverzeichnisses nicht zwischen unterschiedlichen <GISX3HOME> Verzeichnissen unterschieden werden kann.

Cachingvorgang

Der Cachingvorgang findet außerhalb der Serverumgebung über ein Kommandozeilenwerkzeug statt.

Dieses befindet sich in <TOMCATHOME>/webapps/<appname>/command-line-tools (z.B. C:\Program Files\apache-tomcat-8\webapps\gisx3\command-line-tools).

Zum starten des Cachingvorgangs ist buildCache.cmd mit dem zu verwendenden <GISX3HOME> Verzeichnis aufzurufen. Da in der Regel auch Speichereinstellungen vorzunehmen sind, empfiehlt sich die Erstellung einer eigenen CMD Datei:

@rem if using bigger data it maybe usefull to increase heap on jvm
@rem follow up options are good enough for a database containing about 2M objects
set JAVA_OPTS=-server -Xmx2400m 

@rem only set, if this file is not in the same directory as buildCache.cmd
@rem cd /D "C:\temp\gisx3-commandline-utilities\bin"
cd /D "C:\Program Files\apache-tomcat-8\webapps\gisx3\command-line-tools"

call "buildCache.cmd" "--GISX3_HOME=C:\\gisxhome\\my-home"

Insbesondere das Setzen der JAVA_OPTS sollte durchgeführt werden, da der Cachingvorgang einiges an Speicher benötigt.

Icon

Legen Sie erstellte CMD Dateien außerhalb des Tomcatverzeichnisses ab, da sie sonst durch Updates überschrieben werden können.

Sonstiges

Innerhalb der Themendefinition können Sie festlegen ob ein Thema gecacht werden soll.