Das Parsen großer, defekter oder bösartiger Eingaben führt zu übermäßigem Speicher- oder CPU-Verbrauch während der Indizierung.

Im schlimmsten Fall kommt es zu JVM-Abstürzen.

Verwenden Sie Tika-Parser in separaten JVM-Prozessen.

Um sich besser vor solchen Fällen zu schützen und die Handhabbarkeit des Ressourcenverbrauchs durch Tika zu verbessern, führen Sie Tika-Parser in separaten JVM-Prozessen aus. Zur Umsetzung sehen Sie https://issues.apache.org/jira/browse/TIKA-416

Diese Funktion ermöglicht die Volltextindizierung von binären Dokumenten in separaten JVM-Prozessen. Auf diese Weise haben Probleme, die durch das Parsen großer oder fehlerhafter Dokumente verursacht werden, keinen Einfluss auf den Hauptprozess von CRX oder CQ. Diese Funktion erhöht die allgemeine Zuverlässigkeit und Stabilität des Systems, da Indizierungsprobleme besser isoliert werden.

Die Funktion startet automatisch einen Pool von Hintergrundprozessen für die Volltext-Extraktion.

Starten Sie diese Prozesse mit dem Java-Befehl, der als forkJavaCommand-Parameter des Abschnitts <SearchIndex/> in den entsprechenden Workspace- oder Repository-Konfigurationsdateien angegeben ist (normalerweise crx-quickstart/repository/workspaces/crx.default/workspace.xml).

Setzen Sie diesen Wert beispielsweise auf „java -Xmx512m“, um diese Funktion zu aktivieren.

Zusätzlicher Tipp

Die gegabelten Textextraktionsprozesse können dem übergeordneten Prozess nicht direkt schaden. Sie können jedoch viel CPU-Zeit beanspruchen, insbesondere bei der Verarbeitung von vielen großen PDF-Dokumenten. Um die Auswirkung auf die Gesamtsystemleistung zu verhindern oder zu kontrollieren, setzen Sie die Option „forkJavaCommand“ mit „nice“ oder einem anderen plattformspezifischen Befehl zur Reduzierung der Ausführungspriorität der gegabelten Extraktionsprozesse voraus. Die empfohlenen Werte für Linux und Windows sind:

  Linux: nice java -Xmx512m
Windows: cmd /c start /low /wait /b java -Xmx512m

Windows:

        <SearchIndex class="com.day.crx.query.lucene.LuceneHandler">
            <param name="path" value="${wsp.home}/index"/>
            <param name="resultFetchSize" value="100"/>
            <param name="cacheSize" value="100000" />
            <param name="forkJavaCommand" value="cmd /c start /low /wait /b java -Xmx512m"/>
        </SearchIndex>

Linux/Unix:

        <SearchIndex class="com.day.crx.query.lucene.LuceneHandler">
            <param name="path" value="${wsp.home}/index"/>
            <param name="resultFetchSize" value="100"/>
            <param name="cacheSize" value="100000" />
            <param name="forkJavaCommand" value="nice java -Xmx512m"/>
        </SearchIndex>

Gilt für

CRX 2.2, CRX 2.1 mit hotfixpack > = 2.1.0.9 installierte

Hinweis:

Bei Linux funktionieren nur die Befehle nice und java, wenn sie in der Variable Path der Shell-Sitzung des CQ-Benutzers zugänglich sind.

Unter Windows gilt das Gleiche für den Befehl java, die Variable PATH muss den Ordner bin der richtigen Java-Version enthalten.

Sehen Sie hier für Details, wie man die Variable „Path“ für Java setzt.

Weitere Informationen

Standardmäßig laufen Tika-Parser, die sich um diese Extraktion kümmern, im gleichen Java-Prozess wie CQ, was bei bestimmten Anwendungsfällen zu den beschriebenen Symptomen führen kann.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie