Lo strumento Oak Run lancia OutOfMemory | Esecuzione della pulizia del checkpoint

Lo strumento Oak Run manda l'errore di memoria esaurita

Quando esegui lo strumento Oak Run per pulire il checkpoint, questo lancia OutOfMemory.

I log mostrano la seguente eccezione:

Apache Jackrabbit Oak 1.0.6
Checkpoints /wcm/cq-author/crx-quickstart/repository/segmentstore
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at 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)
su org.apache.jackrabbit.oak.plugins.segment.file.FileStore.(FileStore.java:149)
su org.apache.jackrabbit.oak.plugins.segment.file.FileStore.(FileStore.java:154)
su org.apache.jackrabbit.oak.run.Main.checkpoints(Main.java:223)
at org.apache.jackrabbit.oak.run.Main.main(Main.java:121)

 

Esegui nuovamente lo strumento Oak Run con parametri diversi

Assicurati di avere una JVM a 64 bit installata. Quindi esegui nuovamente lo strumento Oak Run con il seguente parametro.

java -Dtar.memoryMapped=true -Xmx8g -jar oak-run-1.0.7-SNAPSHOT.jar checkpoint

Il parametro -Dtar.memoryMapped=true dice allo strumento di caricare la memoria dei segmenti mappati, il che significa che non sta usando la memoria JVM ma la memoria nativa disponibile.

Informazioni aggiuntive

Se l'archivio è enorme, lo strumento Oak Run tenta di caricare i file dei segmenti nella memoria della JVM, causando l'errore out-of-memory.

 

Logo Adobe

Accedi al tuo account