Wie kann man den Documentviewer-Cache neu aufbauen?
Grundsätzlich geht der Documentviewer davon aus, dass das Dokument bei Änderung einen neuen Hashwert bekommt. Daher werden einmal erstellte Daten im Documentviewer-Cache nicht mehr angefasst. Es kann aber viele Gründe geben, warum ein Documentviewer-Verzeichnis neu aufgebaut werden muss, angefangen von "das Verzeichnis wurde aus Versehen gelöscht", "nach Serverumzug ist das Verzeichnis leer", "die Vorschau wurde mit falschen Convertern ausgeführt und muss korrigiert werden" bis "die Markierung im Dokument stimmt nicht".
Im Prinzip baut sich das Cache-Verzeichnis neu auf, sobald man im Client auf "Neuerstellung" geht.
Es wäre natürlich besser, wenn man das Ganze automatisiert ausführen könnte. Ein leerer Cache füllt sich, sobald es Rendition-Jobs gibt. Ist das Cache-Verzeichnis aber gefüllt, dann wird der Documentviewer u.U. den einfachen Rendition-Job verwerfen, da es ja schon ein fertiges Cache-Verzeichnis gibt.
Gibt es mehrere Documentviewer oder ist die Cache-Datenbank des Documentviewer kaputt gewesen, dann wird nur geprüft, ob es im Cache-Verzeichnis Daten gibt und falls dort steht, dass alles vollständig ist, wird nur ein Eintrag in der Datenbank erstellt.
Nur ein RENRESET-Job führt dazu, dass das Rendern erneut ausgeführt wird.
Möglichkeiten:
Am besten per Indexmanager und Preview-Erstellung. Hier kann man wählen für welchen Dokumenttypen es erfolgen soll. Das erzeugt RENRESET-Jobs in der CPQueue.
Falls die betroffenen Dokumente Volltext haben: In der Datenbank in osftslog-Tabelle alle Dokumente des betroffenen Types ein bestimmtes Flag geben, das noch nicht vorhanden ist (aber der Indexmanager kennt), z. Bsp. 404 oder 504. Dann Postindexing per Indexmanager auf dieses Flag ausführen. Das bewirkt ebenfalls RENRESET-Jobs in der CPQueue.
Alternativ kann man ein Skript für DV-Cache-Aufbau verwenden. Das arbeitet eine Liste ab (die man vorher über die Datenbank ermitteln muss) und erstellt Jobs. Die Jobs sollten in kleinen Happen in das Documentviewer-Jobs-Verzeichnis verschoben werden. Der Documentviewer macht im Normalfall noch viel mehr und sollte mit der Preview-Erstellung nicht ausgebremst werden.
RENRESET-Jobs in der CPQueue erstellen. >> Das wurde bisher aber nicht verwendet, da eine eindeutige GUID nötig ist. Es wäre aber denkbar per Server-API-Jobs zu generieren.
Schritt-für-Schritt-Anleitung
Indexmanager - Preview-Erstellung
Indexmanager mit Parameter -config starten. Bitte explizit "als Administrator ausführen"!
Auf der Konfig-Seite die Haken entfernen und bei "Previewindexing" setzen. Damit schaltet sicher der entsprechende Tab frei:
Bei Dateivorschauerstellung den Haken bei "Objekttypen festlegen" setzen und den gewünschten Dokumenttyp wählen.
Dann den Pfad zum Documentviewer-Cache eintragen:
Mit "Speichern und starten" wird die Verarbeitung aktiviert. Nun werden die Vorschaudaten erstellt.
Indexmanager - PostIndexing
Voraussetzung: Die Dokumente, haben "Volltext=ja" laut enaio Editor.
über den enaio Editor den/die gewünschten Dokumenttypen ermitteln. Einfach den Dokumenttyp öffnen und die Eigenschaften öffnen:
Sichern der Tabelle OSFTSLOG.
MSSQL: SELECT * INTO OSFTSLOG_20220530 FROM OSFTSLOG;
Orale: CREATE TABLE OSFTSLOG_20220530 SELECT * FROM OSFTSLOG;Anpassen des Flags der Dokumente, z. Bsp. 415:
-- Anzahl ermitteln:
SELECT COUNT(*) FROM OSFTSLOG WHERE OSTYPE=262144;
UPDATE OSFTSLOG SET FLAG2=415 WHERE OSTYPE=262144;Indexmanager mit Parameter -config starten. Bitte explizit "als Administrator ausführen"!
Auf der Konfig-Seite die Haken entfernen und bei "Postindexing" setzen. Damit schaltet sicher der entsprechende Tab frei:
Bei Flagauswahl "Benutzerdefinierte Flagliste" wählen und das vergebene Flag, z. Bsp. 415 vergeben.
Mit "Speichern und starten" wird die Verarbeitung aktiviert. Nun werden die Vorschaudaten erstellt.
Skript:
Über die Datenbank die IDs ermitteln. Der Typ ist nicht erforderlich. Die Daten in eine Liste schreiben. Pro Zeile eine ID.
Skripte herunterladen und anpassen. Für Version kleiner 7.10 bitte die Skripte verwenden von KB-047/09.
DV-Cache-aufbauen.zipDa der Documentviewer auch andere Jobs ausführt, sollte in das Job-Verzeichnis immer nur eine kleine Anzahl an Jobs eingefügt werden. Daher laufen die Skripte so:
Skript 1 erstellt alle nötigen Jobs in einem Temp-Verzeichnis. Skript 2 verschiebt die Daten stückchenweise bis nichts mehr übrig ist.
nötige Anpassungen der Skripte:
Skript dv-jobs-erstellen.vbs: Pfad zur Liste, Pfad zum temporären Job-Verzeichnis, Pfad zum Log
Skript DV-Jobs-verschieben.vbs: Pfad zum temporären Job-Verzeichnis, Pfad zum Documentviewer-Job-Verzeichnis
zur Info:
Inhalt der Job-Datei für Erstellung im Cache:
action=create-preview
object-id=<object-id>
Job für Neuaufbau bei vorhandenen Daten:
rc-action-documentviewer=true
object-id=<object-id>
Bitte beachten: Es ist möglich, dass der Documentviewer Daten im Cache hat und damit die Vorschau nicht erstellt wird. Dann wird eine DEL-Datei benötigt. In dem Fall kann man das Skript für Reparatur des Documentviewers verwenden. Confluence-Eintrag folgt.Aufruf der Skripte:
einmalig aufrufen = Jobs erstellen
wscript.exe dv-jobs-erstellen.vbs D:\_Jobs\DV-Jobs_erstellen\DVListe.txt
als geplanten Task periodisch laufen lassen = Jobs verschieben
wscript.exe DV-Jobs-verschieben.vbs
Bitte beachten, dass der Documentviewer permanent aufräumt. Wenn tatsächlich eine Datenmenge x vorgehalten werden soll, sollte auch der Plattenplatz entsprechend erweitert werden.
Verwandte Artikel