Welche Bereinigungsstrategien gibt es beim Documentviewer?

Welche Bereinigungsstrategien gibt es beim Documentviewer?

Diese Strategien gibt es: 

Art

Kurzbeschreibung

Art

Kurzbeschreibung

Größe

  • Standardmäßig führt der Documentviewer eine Bereinigung nach Größe aus. Dazu wird eine heuristische Berechnung beim Dienststart ausgeführt. 
    Vereinfacht gesprochen: nimm ein beliebiges Verzeichnis des Documentviewer-Cache und ermittle die Größe, rechne dann mal 256 Verzeichnisse (= hexadezimal 00-FF = dezimal 0-255) .

  • Diese Berechnungsmethode kann man umstellen auf reelle Größe, siehe
    https://enaiodevelop.atlassian.net/wiki/spaces/PS/pages/21425013. Der Dienst benötigt dann deutlich mehr Zeit zum Starten. 
    Während der Verarbeitung rechnet der Documentviewer alle Daten hinzu bzw. zieht sie ab, je nach Aktion.

Alter / Datum

  • Es gibt die Strategie nach Alter, siehe auch KB-152/14.
    Wichtig: Dabei wird die Größe nicht mehr beachtet. Man muss also hochrechnen, wie viel pro Tag an Datenmenge hinzukommt und wie viel es an Plattenplatz nimmt. 

spezielle Bereinigung

  • Der Documentviewer geht generell und periodisch durch das komplette Documentviewer-Cache-Verzeichnis und prüft, ob DEL-Dateien darin liegen. Diese werden automatisch weggeräumt inklusive zugehöriges Verzeichnis.

  • Das ist nicht konfigurierbar und man kann und sollte es nie abstellen.

keine / deaktivieren

  • Ab enaio 8.50 kann man die Bereinigung deaktivieren.

  • Versionen kleiner 8.50 konnten dies nicht, daher wurde als Workaround ein extrem hohe Größe angegeben, die garantiert nie erreicht wird, z. Bsp. 2000GB

externe Quellen / Skripte

Nachfolgend Anleitungen für:

Schritt-für-Schritt-Anleitung

Umstellung von Größe auf Dateialter (enaio <8.50)

  1. Sichern der Konfiguration des Documentviewer (mind. der Datei, die geändert wird) in ein Verzeichnis außerhalb des Documentviewer.

  2. In das Spring-Verzeichnis des Documentviewer-Renditioncache gehen
    services\documentviewer\webapps\osrenditioncache\WEB-INF\spring

  3. Den Zeitstempel ermitteln für die Bereinigung:
    Die Zeitangabe ist in Millisekunden:
    z.Bsp.: 6 Monate: 6*30.5*24*60*60*1000 = 15811200000 

  4. Die Datei applicationContext-sor-fs.xml muss angepasst werden.

    1. applicationContext-sor-fs.xml sichern (in einem anderen Verzeichnis) 

    2. Suche dann in der Datei <bean id="cacheSizeManager" 
      und die Sektion ersetzen durch: 

      <bean id="cacheSizeManager" class="com.os.osecm.renditioncache.sordao.fs.clear.CacheLastModifiedManager"> <property name="sorDao" ref="sorDao" /> <property name="cacheInformation" ref="cacheInformation" /> <property name="elementsSelectorStrategy" ref="elementsSelectorStrategy" /> <property name="cleanUpStrategyElementSelector" ref="lastModifiedStrategyElementSelector" /> <property name="notificationManager" ref="notificationManager" /> </bean>
    3. Suche <bean id="deletedDirectoryEraser"
      und die Sektion ersetzen durch:

      <bean id="deletedDirectoryEraser" class="com.os.osecm.renditioncache.sordao.fs.impl.DeletedDirectoryEraser">    <property name="sorRootFolder" value="${sor.root}" />    <property name="ioManager" ref="ioManagerReduced" />    <property name="sorDao" ref="sorDao" />    <property name="notificationManager" ref="notificationManager" />    <property name="deleteOlderThanInMs" value="15811200000" /> <!-- 6 months --> </bean> 
    4. Suche nach <bean id="lastModifiedStrategyElementSelector" 
      und die Sektion ersetzen durch: 

      <bean id="lastModifiedStrategyElementSelector" class="com.os.osecm.renditioncache.sordao.fs.clear.LastModifiedSelector"> <property name="keyParser" ref="idParserStrategy" /> <property name="olderThanInMs" value="15811200000" /> <!-- 6 months --> </bean>
    5. Die Datei speichern und den Documentviewer neu starten. Empfehlung: alle Protokolle löschen vor dem Start des Dienstes.

    6. Die Logs auf Fehler prüfen.

Umstellung von Größe auf Dateialter (ab enaio 8.50)

  1. Sichern der Konfiguration des Documentviewer (mind. der Datei, die geändert wird) in ein Verzeichnis außerhalb des Documentviewer.

  2. Es muss nur noch die config.properties im RenditionCache-Verzeichnis angepasst werden
    services\documentviewer\webapps\osrenditioncache\WEB-INF\classes\config
    Die nachfolgenden beiden Werte ändern. Die Zeitangabe ist in Sekunden, also den Wert von Punkt 2 durch 1000 teilen oder so berechnen:
    6 Monate: 6*30.5*24*60*60 = 15811200 
    oder genauer: Tage * Stunden * Minuten * Sekunden 

    cache.olderThanInSeconds=15811200 cache.activeIndex=1
  3. nur zur Info:
    Die Wert bei activeIndex entsprechend der Datei applicationContext-sor-fs.xml:

    <bean id="cacheAdministration" class="com.os.osecm.renditioncache.sordao.fs.clear.CacheClearingAdministration"> <property name="cacheManager"> <list> <ref bean="cacheHighLowWaterSizeManager"/> <!--  Das ist Wert 0 --> <ref bean="cacheLastModified"/> <!--  Das ist Wert 1 --> <ref bean="noopCacheManager" /> <!--  Das ist Wert 2 --> </list> </property> <property name="activeIndex" value="${cache.activeIndex}"/> </bean>
  4. Die Datei speichern und den Documentviewer neu starten. Empfehlung: alle Protokolle löschen vor dem Start des Dienstes.

  5. Die Logs auf Fehler prüfen.

Cachebereinigung deaktivieren (ab enaio 8.50):

  1. Sichern der Konfiguration des Documentviewer (mind. der Datei, die geändert wird) in ein Verzeichnis außerhalb des Documentviewer.

  2. Einfach die Datei config.properties im RenditionCache-Verzeichnis anpassen:
    services\documentviewer\webapps\osrenditioncache\WEB-INF\classes\config
    Den Werte für cache.activeIndex ändern auf 2.

    cache.activeIndex=2
  3. Die Datei speichern und den Documentviewer neu starten. Empfehlung: alle Protokolle löschen vor dem Start des Dienstes.

  4. Die Logs auf Fehler prüfen.

 

Bei Umstellung der Strategie nach Größe bitte darauf achten, dass genügend Plattenplatz vorhanden ist für die Menge an Daten, die durchschnittlich verarbeitet werden. 
Wichtig: Der Parameter olderThanInSeconds wird ab enaio 8.50 in Sekunden angegeben!

 

Verwandte Artikel