cancel
Showing results for 
Search instead for 
Did you mean: 

java.lang.OutOfMemoryError: Java heap space

emerson
Champ in-the-making
Champ in-the-making
Hola a todos,

Mi alfresco está súper lento,

Validando los logs, me same una error como este:

java.lang.OutOfMemoryError: Java heap space
Exception in thread "SolrTrackingPool-alfresco4" java.lang.OutOfMemoryError: Java heap space
Exception in thread "SolrTrackingPool-alfresco5" java.lang.IllegalStateException: this writer hit an OutOfMemoryError; cannot flush
   at org.apache.lucene.index.IndexWriter.doFlushInternal(IndexWriter.java:4279)
   at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:4264)
   at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:4255)
   at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:2701)
   at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:2655)
   at org.alfresco.solr.AlfrescoUpdateHandler.addDoc(AlfrescoUpdateHandler.java:323)
   at org.alfresco.solr.tracker.CoreTracker.indexNode(CoreTracker.java:2503)
   at org.alfresco.solr.tracker.MultiThreadedCoreTracker$NodeIndexWorkerRunnable.doWork(MultiThreadedCoreTracker.java:758)
   at org.alfresco.solr.tracker.MultiThreadedCoreTracker$AbstractWorkerRunnable.run(MultiThreadedCoreTracker.java:699)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
   at java.lang.Thread.run(Thread.java:722)
Exception in thread "SolrTrackingPool-alfresco6" java.lang.IllegalStateException: this writer hit an OutOfMemoryError; cannot flush
   at org.apache.lucene.index.IndexWriter.doFlushInternal(IndexWriter.java:4279)
   at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:4264)
   at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:4255)
   at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:2701)
   at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:2655)
   at org.alfresco.solr.AlfrescoUpdateHandler.addDoc(AlfrescoUpdateHandler.java:323)
   at org.alfresco.solr.tracker.CoreTracker.indexNode(CoreTracker.java:2503)
   at org.alfresco.solr.tracker.MultiThreadedCoreTracker$NodeIndexWorkerRunnable.doWork(MultiThreadedCoreTracker.java:758)
   at org.alfresco.solr.tracker.MultiThreadedCoreTracker$AbstractWorkerRunnable.run(MultiThreadedCoreTracker.java:699)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
   at java.lang.Thread.run(Thread.java:722)
Exception in thread "SolrTrackingPool-alfresco2" java.lang.IllegalStateException: this writer hit an OutOfMemoryError; cannot flush
   at org.apache.lucene.index.IndexWriter.doFlushInternal(IndexWriter.java:4279)
   at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:4264)
   at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:4255)
   at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:2701)
   at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:2655)
   at org.alfresco.solr.AlfrescoUpdateHandler.addDoc(AlfrescoUpdateHandler.java:323)
   at org.alfresco.solr.tracker.CoreTracker.indexNode(CoreTracker.java:2503)
   at org.alfresco.solr.tracker.MultiThreadedCoreTracker$NodeIndexWorkerRunnable.doWork(MultiThreadedCoreTracker.java:758)
   at org.alfresco.solr.tracker.MultiThreadedCoreTracker$AbstractWorkerRunnable.run(MultiThreadedCoreTracker.java:699)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
   at java.lang.Thread.run(Thread.java:722)



He leído variis links, y apuntan a aumentar estos valores que tengo:

-Xms24m
-Xmx256m
-XX:MaxPermSize=96m


Servirá si los aumento?

Agradezco su valiosa ayuda.
15 REPLIES 15

cristinamr
World-Class Innovator
World-Class Innovator
Buenas.

Tienes ques subir tu memoria, en concreto la Xmx y la Xms (porque el error es con la HEAP). Qué memoria RAM tienes disponible en la máquina donde tienes instalado Alfresco?

Comentame y te digo.

Un saludo.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

emerson
Champ in-the-making
Champ in-the-making
Con gusto Cristina:

A continuación datos del Hardware:
Ram: 16 G
Procesador:  2 x Intel Xeon CPU E5-2640 @ 2.5 Hhz
Hdd (Instalación Alfresco) : 3.15 T , 10 RPM
SO: Windows 8 R2, 64 Bits


Gracias por tu ayuda.

cristinamr
World-Class Innovator
World-Class Innovator
Vale mira, prueba a poner esta JVM:

set "JAVA_OPTS=-Xms4096m -Xmx4096m -XXSmiley TongueermSize=256m -XX:MaxPermSize=512m -Xss1m"

En mi caso, yo lo tengo especificado en "carpeta_alfresco/bin/startup.bat"

Prueba con esos valores y nos dices.

Un saludo Smiley Wink

PS: Perdona la tardanza, es que no me doy cuenta de cuando responden en el foro :#
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

emerson
Champ in-the-making
Champ in-the-making
El rendimiento ha mejorado considerablemente.

Muchas gracias Cristina Smiley Happy eres un Sol.

Saludos desde Panamá.

Hola Cristina, yo tambien tengo el mismo problema intente hacer lo que recomendaste pero no encuentro el archivo que indicas donde lo puedo encontrar?

cristinamr
World-Class Innovator
World-Class Innovator
De nada hombre… Ya ves tú que a todos nos ha ocurrido eso mismo jaja

Oye, pues si tienes más RAM siempre puedes jugar con los valores Xmx y Xms, por ejemplo en vez de 4 gigas, poner  -Xms8G -Xmx8G
Pero ten siempre en cuanta la memoria que tienes disponible en la máquina… Si no te aranca el alfresco es porque "te has pasado" al asignarle la JVM.

Me alegro que te haya servido ^^

Un saludo desde Bélgica!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

Hola Cristina

Estaos probando el Alfresco 5.0 y tenemos este mismo error,pero el añadir la línea que nos comentas en el startup.bat no nos lo arregla :-(.

Tenemos un equipo de pruebas con Windows7 y 4 GB de RAM. hemos introducido esta línea:

set "JAVA_OPTS=-Xms512m -Xmx1024m -XXSmiley TongueermSize=512m -XX:MaxPermSize=512m -Xss1m"

¿qué podemos hacer?

Gracias!!

angelborroy
Community Manager Community Manager
Community Manager
Yo colocaría en
Alfresco\tomcat\bin\setenv.bat
algo así como
JAVA_OPTS="-Xms2048M -Xmx3072M $JAVA_OPTS"
para una máquina con 4 GB. Aunque deberías ver qué consumo de memoria tienes con el sistema "parado" para ajustar más el tamaño máximo.
Hyland Developer Evangelist

gonial
Champ in-the-making
Champ in-the-making
Buenas a todos, tengo el mismo problema que Emerson con la versión 4.2.f de Alfresco.

En mi caso el error salta cuando intento cargar ficheros de mas de 116 MB para luego subirlos en Alfresco, saltando el error que muestro a continuación.

GRAVE: java.lang.OutOfMemoryError: Java heap space
   at java.util.Arrays.copyOf(Unknown Source)
   at java.io.ByteArrayOutputStream.toByteArray(Unknown Source)
   at org.primefaces.model.NativeUploadedFile.getContents(NativeUploadedFile.java:67)
   at alfresco.DocumentoManagedBean.subidaDocumentoPrincipal(DocumentoManagedBean.java:2015)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.apache.el.parser.AstValue.invoke(AstValue.java:277)
   at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
   at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
   at org.primefaces.component.fileupload.FileUpload.broadcast(FileUpload.java:310)
   at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:755)
   at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:931)
   at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
   at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
   at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at alfresco.filters.SecurityFilter.doFilter(SecurityFilter.java:104)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at alfresco.modelbd.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:52)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)


Siguiendo las instrucciones de Angel, he intentado modificar el fichero setenv.bat:
set JAVA_HOME=C:\Alfresco\java
set JRE_HOME=%JAVA_HOME%
set JAVA_OPTS=++JvmOptions="-XX:-DisableExplicitGC" ++JvmOptions="-XX:ReservedCodeCacheSize=128m" –JvmMs 1024 –JvmMx 4096 ++JvmOptions="-XX:MaxPermSize=512M" %JAVA_OPTS%


Pero aun así no consigo aumentar esa limitación que obtengo al intentar cargar un fichero (paso previo para subirlo en alfresco) en la aplicacion web. Por último indicar que esta limitación no la tenia cuando trabajaba sobre la version 5.0.d de Alfresco.

Gracias a todos.