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:
- 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".
- 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".
Der Cachingvorgang hat folgenden Ablauf:
- Erstellung einer neuen Datenbank "neocachedb." + Nummer
- Aktualisierung Datei ".neocache" mit neuer Nummer
- Aktivierung der neuen Datenbank durch den Server (Aufgrund Dateiänderung ".neocache")
- 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:
Parameter | Beschreibung | Erforderlich | Beispiel |
---|---|---|---|
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. | Nein | triggerActiveDatabaseChange=false |
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.
Sonstiges
Innerhalb der Themendefinition können Sie festlegen ob ein Thema gecacht werden soll.