Global Tile Cache

Über

Standardmäßig speichert cardo Tiles in einer SQLite Datenbank. Dabei wurden zwei Probleme beobachtet:

  • Massiver Performance Einbruch, wenn das WAL File (Transaktionsdatei) wächst. Das dürfte zwar lt. SQLite Dokumentation nicht passieren, wurde aber doch ab und an beobachtet. In dem Fall wird ein Full-Tablescan durchgeführt, was die Operationen enorm verzögert.

  • Prinzipbedingt kann der Cache nur lokal verwendet werden, d.h. mehrere Server haben mehrere Caches der gleichen Tiles.

Als Alternative kann eine Webseite ("GCWeb") eingerichet werden, die für das Lesen und Schreiben der Tiles in cardo eingerichtet werden kann.

Intern basiert die Implementierung auf der Google "LevelDB", einem einfachen KeyValueStore ("NoSQL" Datenbank), verpackt als 64 Bit .Net Assembly.

Es sind einmalig zwei Schritte für die Nutzung erforderlich:

  • Installation der Webseite
  • Einstellen des Dienstes in cardo

Einrichtung des Dienstes

Installation

Die Installation ist in wenigen Schritten erfolgt. Aktuell ist die Software nicht im Updater oder Installer von cardo enthalten.

  • Laden Sie das Zip herunter (die Url erhalten Sie kostenfrei auf Anfrage).

  • Entpacken Sie das Zip auf dem Zielserver in einen beliebigen Ordner (hier wird im Folgenden der Zielpfad d:\GCWeb angenommen).

  • Starten Sie den Internetinformationsdienste-Manager.

  • Erstellen Sie dort eine neue Webseite ("Website hinzufügen").

    • Sitename: "GCWeb" (oder beliebiger anderer)

    • Anwendungspool: Lassen Sie den Vorschlag stehen (wird vom Sitename übernommen)

    • Physischer Pfad: "d:\GCWeb"

    • Bindung: http, Port 9004 (oder beliebiger anderer)

      Http genügt hier, die Seite ist nur für die interne Server<->Server Kommunikation gedacht und sollte nicht von "außen" erreichbar sein.

  • Wechseln Sie im IIS Manager auf "Anwendungspools"

    • Wählen Sie "GCWeb" (bzw. den Eintrag, welchen Sie bei "Sitename" angegeben haben). Folgende Einstellungen sollten gegeben sein: .Net CLR Version: : ".NET Clr-Version v4.0xxxxx" Verwalteter Pipeline Modus: : Integriert

      Ggf. unter "Erweiterte Einstellungen" prüfen, dass "32 Bit Anwendungen aktiveren" auf false steht.

Dateipfad einstellen

Als Vorlage ist in den Web-Ordnern eine Datei mit dem Namen web.config.template vorhanden.

Benennen Sie diese in web.config um.

Dann passen Sie mit einem Texteditor Ihrer Wahl den Wert CacheStoreBaseDirectory in dem Abschnitt appSettings an.

Der Pfad muss vorhanden und leer sein.

Es sollten dort keine anderen Daten gespeichert werden.

Bedenken Sie, dass ausreichend Speicherplatz verfügbar ist.

Der Nutzer des Anwendungspools muss Lese-/Lösch-/Schreibberechtigungen in dem Ordner haben.

Wenn Sie den Pfad nachträglich ändern wollen, gehen Sie bitte folgendermaßen vor:

  • den Anwendungspool im IIS Manager beenden,
  • das Verzeichnis verschieben,
  • die web.config anpassen
  • ... und den Anwendungspool wieder starten.

Prüfen, ob der Dienst funktioniert

Öffnen Sie einen Browser Ihrer Wahl (idealerweise einen Browser, der application/json formatiert anzeigt, z.B. der Firefox) und rufen Sie dann die Url http://localhost:9004/content auf.

Hier sollten einige Informationen erscheinen. Achten Sie auf ein evtl. vorhandenes "error" Element. Hier werden u.U. Fehler bzgl. des eingestellten Datenpfades angezeigt.

Diese Url kann auch später für den Abruf von Informationen zu den Datenspeichern aufgerufen werden. Es werden die Funktions-Endpunkte pro Datenspeicher aufgelistet, z.B. Abruf der Anzahl der gespeicherten Elemente etc.

Die an den Endpunkten hinterlegte Aktion wird ohne Nachfrage durchgeführt. Aus diesem Grund ist bei besonderes "Teueren" Aktionen die Id mit Ausrufezeichen versehen, bitte entfernen Sie dieser manuell.

Einstellungen in cardo

Zum Hinterlegen des Dienstes in cardo öffnen Sie das Managementcenter und navigieren Sie zu ...

Status und Einstellungen=> Systemparameter => Weitere Systemeinstellungen => cardo Systemeinstellungen.

Hier kann dann in der Eigenschaft "Url zum Cachedienst" die Adresse des Dienstes hinterlegt werden. Bsp.http://IhrServer:9004/

Verwenden Sie hier statt localhost besser den Hostnamen des Servers. Evtl. muss der cardo-Cache geleert werden. Im Zweifelsfall starten Sie den cardo Anwendungspool im IIS neu.


Zuletzt geändert: 22.07.2020 08:49:24 (erstmals erstellt 17.03.2020)