Geonetwork 3.4.x

Geonetwork Version 3.4.x wird aktuell als Exportziel für Metadaten unterstützt und empfohlen.

Vorraussetzungen

Bisher haben wir Geonetwork unter Windows betrieben. Deshalb können derzeit hier auch nur für Windows 64 Empfehlungen gegeben werden.

Der Geonetwork wurde getestet mit:

  • Java Version 8 (höher führt zu Fehlern)
  • Tomcat 9

Wegen der neuen Lizensbedingungen von Oracle Java wurde die Verwendung des Open JDK untersucht.

cardo unterstützt den Geonetwork 3.4.x ab cardo-Version 3.8.10.39452.

Installation der Software

Stand November 2018:

Geonetwork 3.4.4 benötigt ein Java 8, mit einer höheren Version gab es jeweils Probleme. Die aktuell getestete Umgebung sieht wie folgt aus:

  • Open JDK 8 (64 Bit)
    (als Binary nicht direkt bei OpenJDK zu finden aber alternativ bei ojdkbuild (von uns verwendet) oder zulu)
  • Tomcat 9 (64 Bit)
  • Geonetwork 3.4.4
  • falls CSW über URL des IIS aufrufbar sein soll: IIS Erweiterungen ARR und URL Rewrite (ab IIS Version 7 verfügbar)

Tomcat kann man als Installer herunterladen. Dieser entscheidet nach der ausgewählten Java-Version, ob Tomcat als 32 oder 64 Bit Version istalliert wird. Als Basisverzeichnis für die JRE bei Installation des Tomcat wird das Basisverzeichnis von Java (z.B. Programme/ojdkbuild/java-1.8.0-obenjdk-1.8.9.191-1) erwartet.

Installation Geonetwork

Sind alle Systemvoraussetzungen erfüllt, kann GeoNetwork installiert werden:

  • Version 3.4.x als war-File herunterladen (wenn als ZIP-File geliefert, in war umbenennen)
  • war-File in das Verzeichnis Programme/Tomcat[?]/webapps legen
  • autom. Installation beginnt sofort und es taucht das neue Verzeichnis geonetwork unter webapps auf
Achtung: Das war-File darf NICHT gelöscht oder umbenannt werden, sonst wird die Anwendung automatisch vom Tomcat wieder deinstalliert!
 
Hinweis: Prüfen Sie, dass in Windows Dateiendungen angezeigt werden (und das war-File auch wirklich *.war heißt).
 
Hinweis: Soll eine parallele Instanz des GeoNetwork betrieben werden, kann ein entsprechend umbenanntes war-File in das webapps-Verzeichnis gelegt werden.

Achtung: Bei zwei parallelen geoNetworks startete die zweite Instanz nicht mit dem Fehler 'OverlappingFileLockException'. Grund ist, dass beide Instanzen auf das selbe Data-Verzeichnis zugreifen. Der zweiten Instanz muss explizit das eigene Datenverzeichnis zugewiesen werden z.B. über eine Java-Variable:

-D<instanzname>.dir=<Pfad>

Beispiel:

-Dgeonetwork_test.dir=C:\Program Files (x86)\Apache Software Foundation\tomcat 8.5\webapps\geonetwork_test\WEB-INF\data
 
Hinweis: Bei parallelen Installationen muss nach Installation über den WebClient der Port für Z39.50 angepasst werden, damit es keine doppelte Belegung gibt.
Installation ARR und URL Rewrite
  • neuere Versionen des cardo-Installers installieren diese Erweiterungen bereits mit (im IIS Manager an der Webseite müssen das Icon 'URL Rewrite' verfügbar sein und am Server-Knoten 'Application Request Routing Cache')
  • Installieren falls nicht vorhanden: URL Rewrite, ARR
  • für ARR noch den Proxy aktivieren, sonst kann nicht auf eine externe Seite weitergeleitet werden: an Server-Knoten/ 'Application Request Routing Cache'/'Server Proxy Settings' nur die Checkbox 'Enable Proxy' aktivieren
    (siehe hier)
Einstellungen im Tomcat

Folgenden Parameter im Tomcat anpassen, sonst kommt es zu einer OutOfMemory-Exception:

  • Initial Memory Pool 300 MB
  • Maximum Memory Pool 1500 MB

"You can do that by shutting down the tomcat service, then going into the Tomcat/bin directory and running tomcat9w.exe. Under the "Java" tab, change the properties above. Click "OK" and then restart the service."

Damit das Konfig-Tool von Tomcat im SystemTray von Windows auftaucht, muss in einem CommandoZeilenFenster folgender Befehl ausgeführt werden:
tomcat9w //MS//

Hinweis: Es ist prinzipiell möglich verschiedene Versionen von Tomcat parallel zu installieren. Dazu müssen entsprechend bei der Installation alle Ports neu vergeben werden

Umleitung per IIS URL Rewrite

Vorbedingungen:

Ab IIS-Version 7 gibt es ein Zusatzmodul von Microsoft, welches URL-Rewrite ermöglicht: IIS URL Rewrite Module. Damit dieses als ReverseProxy verwendet werden kann, wird noch das Modul 'Application Reverse Routing' (APP) benötigt und für die Installation der WebPlatformInstaller. Die Installation ist oben beschrieben.

Wichtig: Per Checkbox den Proxy aktivieren (siehe Installationsanweisung weiter oben).

Zu definierende Regeln:

Über URL-Rewrite kann über entsprechende Regeln eine Weiterleitung einer IIS-Webseite auf einen Tomcat eingerichtet werden.

Die Basisurl des Geoneworks lautet normalerweise:

http://<domain>/geonetwork

Das Unterverzeichnis 'geonetwork' darf an der Webseite NICHT existieren sondern wird nur über die nachfolgenden Regeln an der Webseite behandelt. Die nachfolgenden Regeln funktionieren auch an einer cardo-Webseite. Sie können also damit eine Adresse http://<IhrCardo>/geonetwork einrichten.

Definieren Sie eine neue Eingangsregel (Inbound rule) mit folgenden Parametern (fett = geändert zum Standard):

Requested Url: Matches the pattern
Using: Regular expression
Pattern: geonetwork(.*)
Ignore case: true

Action: Rewrite
Rewrite Url: http://localhost:8080/geonetwork{R:1}
Append query string: true
 

Unter Umständen kann es noch sinnvoll sein, auf einen bestimmten Host-Header zu beschränken. Dann kann man eine Condition mit folgenden Parametern definieren:

Condition input: {HTTP_HOST}
Check if input string: Matches the pattern
Pattern: ^csw\.idu\.de$
Ignore case: true

Zudem wird eine Ausgangsregel benötigt, die Redirects auf die externe Adresse umschreibt.

Nachfolgend die Regeln als XML-Abschnitt, so wie sie in der web.config eingetragen werden:

    <system.webServer>

        <rewrite>

            <outboundRules>

                <rule name="Redirect auf GeoNetwork" preCondition="3xx Redirect" enabled="true">

                    <match serverVariable="RESPONSE_Location" pattern="http://localhost:8080(.*)" />

                    <action type="Rewrite" value="http://csw.idu.de{R:1}" />

                </rule>

                <preConditions>

                    <preCondition name="3xx Redirect">

                        <add input="{RESPONSE_STATUS}" pattern="3[0-9][0-9]" />

                    </preCondition>

                </preConditions>

            </outboundRules>

            <rules>

                <rule name="Geonetwork" stopProcessing="true">

                    <match url="geonetwork(.*)" />

                    <action type="Rewrite" url="http://localhost:8080/geonetwork{R:1}" />

                    <conditions>

                        <add input="{HTTP_HOST}" pattern="^csw\.idu\.de$" />

                    </conditions>

                </rule>

            </rules>

        </rewrite>

    </system.webServer>

Hinweis: Sollte als Protokoll https verwendet werden, muss auch entsprechend bei der Rewrite-Regel die richtige Adresse https://... verwendet werden.

Einstellungen im Geonetwork
  • Standard-Administratorpasswort admin/admin im Geonetwork ändern
  • GeoNetwork bringt eine integrierte H2-Datenbank mit, welche wir in unseren Installationen auch verwenden (empfohlen). Alternativ kann eine Postgres DB verwendet werden (alte Anleitung für Version 2.10.4, für Version 3.4.x noch nicht getestet).
  • Host, Port und Prefered Protocol müssen angepasst werden, damit im Ergebnis-XML korrekte URLs zum CSW erzeugt werden
    (AdminConsole/Settings/Abschnitt 'Catalog server')
  • importierte Datensätze müssen automatisch für alle sichtbar geschalten werden (Admin console/Settings/'Inserted Metadata is Public' anhaken), cardo versucht nicht mehr, exportierte Datensätze frei zu schalten!
  • Parameter, welche in den Capabilities des CSW ausgegeben werden:
    - AdminConsole/Settings/Organization, Contact (dafür kann am besten ein neuer Benutzer angelegt werden)
    - AdminConsole/CSW (obere Toolbar)/Title, Abstract (hier unter Sprache 'English' definieren, damit in Capabilities angezeigt
  • Gegebenenfalls Benutzer anlegen, welche für den Export verwendet werden sollen. Diese müssen mindestens in einer Gruppe vom Typ 'Previewer' sein, nur diese hat auch das Recht, Datensätze zu puplizieren (also für alle freizuschalten) und nur dann funktioniert auch 'Inserted Metadata is Public' über den Transaktionsdienst.
  • Unter dem Abschnitt 'Inspire Directive Configuration' der Geonetwork-Settings muss die Checkbox 'Inspire' angehakt sein, damit u.a. ein Inspire-konformes Capabilities-Dokument ausgegeben wird, welches keine Vergleichsoperatoren 'LessThanOrEqual' bzw. 'GreaterThanOrEqual' mehr enthält (Problem beim Monitoring des Katalogs)

Beachten Sie bitte auch die Anweisungen zur Konfiguration des Geonetwork 2.10.4, da noch nicht alle Einstellungen für 3.4.x getestet worden sind.

Wichtige Schnittstellen

Abruf eines Metadatensatzes über seinen Identifier (geonetworkspezifische Schnittstelle):


http://<serveradresse:port>/geonetwork/srv/eng/xml_iso19139?uuid=<Identifier>

Einstellungen im cardo

Hinweis: Beachten Sie, dass die neue Version GeoNetwork 3.4.x bei der Definition des CSW im cardo explizit bekannt gegeben werden muss (Servertyp = GeoNetwork_3x).

Geonetwork umziehen

Soll der Geonetwork z.B. auf einen anderen Server umgezogen werden, ist eine Neuinstallation zu empfehlen, da die Daten jederzeit durch einen Neuexport aus cardo wieder hergestellt werden können.

Hinweis: Eventuell wurden kundenspezifische Logo-Dateien im Bereich webapps/geonetwork/images hinterlegt (z.B. CSW der Landkreise). Diese müssen dann mit auf den neuen Server kopiert werden.

Konfiguration für GeoMIS Sachsen

Definition spezieller Kategorien für GeoMIS Sachsen

GeoMIS Sachsen nutzt zur besseren Gliederung selbstdefinierte Kategorien nach denen gruppiert werden kann. U.a. werden auch die 'Datenhaltenden Stellen' beachtet, wenn diese am publizierten Metadatensatz vermerkt sind.

GeoMIS Sachsen erwartet die Angabe entsprechender Kürzel im Feld 'hierarchyLevelName' des ISO-Datensatzes.

Bei der Generierung eines Metadatensatzes aus cardo wird anhand des aktuellen Projektes ermittelt, ob der Ersteller zu einer der bekannten datenhaltenden Stellen gehört und wenn ja, wird das entsprechende Kürzel automatisch in den Metadatensatz übernommen.

Es ist also keinerlei Konfiguration in cardo nötig, sollte kein entsprechendes Kürzel in den Metadaten ausgegeben werden, wenden Sie sich bitte an uns. Die Liste der Kürzel kann sich ändern und muss von uns entsprechend nachgepflegt werden.

GeoNetwork anpassen für den kaskadierten Zugriff auf diese Kategorie

Publizieren Sie Ihre Metadaten in einen selbsverwalteten GeoNetwork, dann muss dessen Konfiguration angepasst werden, damit die kaskadierte Suche nach den Kategorien funktioniert.

Der GeoNetwork (getestet mit Version 3.4.4, 2.10.4 und 2.6.3) hat in seiner Standardeinstellung eine Liste von Parametern definiert, in welchen mit der Operation 'GetRecords' gesucht werden kann. Das Feld 'hierarchyLevelName' ist da noch nicht dabei und muss noch aufgenommen werden, damit GeoMIS Sachsen bei kaskadiertem Zugriff dieses Feld mit auswerten kann.

Fügen Sie dazu in die Datei

geonetwork/WEB-INF/config-csw.xml

folgende Zeile als neue Zeile nach allen anderen Definitionen der 'AdditionalQueryables' ein:

<parameter name="HierarchyLevelName" field="levelName" type="AdditionalQueryables" />

Sie müssen den Tomcat neu starten, damit die Änderung wirksam wird. Dann sollte die Suche nach Kategorien im GeoMIS (mit aktivierten externen Katalogen) das gewünschte Ergebnis bringen.

Als weitereführende Info ist diese Seite zu empfehlen.