Oak Run-Tool zeigt „Nicht genügend Arbeitsspeicher“-Fehler an
Wenn Sie das Oak Run-Tool zur Bereinigung des Kontrollpunktes ausführen, wirft es den Fehler „Nicht genügend Arbeitsspeicher“ aus.
Die Protokolle zeigen die folgende Ausnahme:
Apache Jackrabbit Oak 1.0.6
Kontrollpunkte /wcm/cq-author/crx-quickstart/repository/segmentstore
Ausnahme in Thread „main“ java.lang.OutOfMemoryError: Java heap space
in org.apache.jackrabbit.oak.plugins.segment.file.TarReader.loadGraph(TarReader.java:453)
at org.apache.jackrabbit.oak.plugins.segment.file.TarReader.(TarReader.java:481)
at org.apache.jackrabbit.oak.plugins.segment.file.TarReader.openFirstFileWithValidIndex(TarReader.java:230)
at org.apache.jackrabbit.oak.plugins.segment.file.TarReader.open(TarReader.java:107)
at org.apache.jackrabbit.oak.plugins.segment.file.FileStore.(FileStore.java:191)
at org.apache.jackrabbit.oak.plugins.segment.file.FileStore.(FileStore.java:149)
at org.apache.jackrabbit.oak.plugins.segment.file.FileStore.(FileStore.java:154)
at org.apache.jackrabbit.oak.run.Main.checkpoints(Main.java:223)
at org.apache.jackrabbit.oak.run.Main.main(Main.java:121)
Starten Sie das Oak Run-Tool mit verschiedenen Parametern erneut
Stellen Sie sicher, dass Sie 64-Bit-JVM installiert haben. Führen Sie dann das Oak Run-Tool mit dem folgenden Parameter erneut aus:
java -Dtar.memoryMapped=true -Xmx8g -jar oak-run-1.0.7-SNAPSHOT.jar checkpoint
Der Parameter -Dtar.memoryMapped=true weist das Tool an, den zugeordneten Segmentspeicher zu laden, was bedeutet, dass es nicht den JVM-Speicher, sondern den verfügbaren nativen Speicher verwendet.
Weitere Informationen
Wenn das Repository sehr umfangreich ist, versucht das Oak Run-Tool, die Segmentdateien in den Speicher der JVM zu laden, was den Fehler „Nicht genügend Arbeitsspeicher““ verursacht.