Untergeordnete Seiten
  • Löschen von Dateien aus dem Server-Dateisystem im jadice web toolkit
Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Das Laden von Dokumenten im jadice web toolkit erfolgt in kundenspezifischen DocumentDataProvidern. Oft werden dabei Dateien aus einem Archiv ins Filesystem des JWT Servers heruntergeladen und von dort für die Anzeige im Browser eingelesen. Vom Browser wird die aktuell angezeigte Seite und ein konfigurierbares Intervall an umgebenden Seiten angefordert (Lazy Loading). Falls der Benutzer einen Dokumentbereich erst zu einem späteren Zeitpunkt betrachtet, muss die aus dem Archiv heruntergeladene Datei zu diesem späteren Zeitpunkt erneut gelesen werden. Daher wird der zugehörige InputStream serverseitig gecacht und nicht geschlossen. Erfolgt über eine konfigurierbare Zeitspanne (im Standard 60 Minuten) kein Zugriff mehr auf ein Dokument, werden alle zugehörigen Elemente aus dem Cache entfernt. Muss das Dokument danach erneut gelesen werden, geschieht dies über die recover-Methode des DocumentDataProviders. Dabei wird ein neuer InputStream erzeugt und gecacht. 

Parallel dazu gibt es häufig die Anforderung, nach der Bearbeitung eines Dokuments die zugehörige, nicht mehr benötigte Archivdatei aus dem Filesystem des Servers zu löschen. Das Ende der Bearbeitung ist allerdings serverseitig nicht zuverlässig erkennbar. Beispielsweise erhält der Server beim Schließen des Browsertabs keine Benachrichtigung darüber, dass ein in Bearbeitung befindliches Dokument nicht mehr benötigt wird.

Eine Möglichkeit die Anforderung abzubilden, stellt die Verwendung des Buffer Managers dar (seit JWT Version 5.4.12.0). Damit werden Dokumente initial komplett eingelesen und intelligent im Hauptspeicher und einer temporären Datei gepuffert. Sobald im serverseitigen Cache keine Einträge mehr auf das Dokument vorhanden sind (im Standard 60 Minuten nach dem letzten Zugriff), gibt der Buffer Manager automatisch den zugehörigen Pufferbereich zum Überschreiben frei. Heruntergeladene Archivdateien können damit direkt nach dem Einlesen gelöscht werden.

Der Buffer Manager stellt die folgenden Konfigurationsmöglichkeiten zur Verfügung:

  • Die Größe des Puffers im Hauptspeicher

Das Verhalten bei der Pufferung sieht folgendermaßen aus:

  • falls es einen freien Bereich im Hauptspeicherpuffer gibt, wird dieser verwendet
  • falls der Hauptspeicherbereich keinen freien Platz besitzt, wird ein freier Bereich in der Pufferdatei verwendet
  • falls weder in Hauptspeicher noch in der Pufferdatei ein freier Bereich existiert, wird die Pufferdatei vergrößert
  • die Pufferdatei wird nicht verkleinert
  • durch das Wiederbeschreiben freigegebener Bereiche ist Größe der Pufferdatei beschränkt (abhängig vom Nutzungsverhalten)
  • beim Neustart des Servers wird eine bestehende Puffderdatei gelöscht und eine neue Pufferdatei mit der Größe 0 angelegt

Step-by-step guide

  • Einmalige Aktivierung des Buffer Managers beim Starten des Servers (z.B. im ContextListener)

  • Nutzung des Buffer Managers im DocumentDataProvider

  • Konfiguration der maximalen Verweildauer von Einträgen im serverseitigen Cache in der Datei Jadice.properties

 

5 von 87 Ergebnissen werden angezeigt