java.lang.OutOfMemoryError: Java heap space

cancel
Showing results for 
Search instead for 
Did you mean: 
emerson
Member II

java.lang.OutOfMemoryError: Java heap space

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
cristinamr
Advanced

Re: java.lang.OutOfMemoryError: Java heap space

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
Member II

Re: java.lang.OutOfMemoryError: Java heap space

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
Advanced

Re: java.lang.OutOfMemoryError: Java heap space

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
Member II

Re: java.lang.OutOfMemoryError: Java heap space

El rendimiento ha mejorado considerablemente.

Muchas gracias Cristina Smiley Happy eres un Sol.

Saludos desde Panamá.
cristinamr
Advanced

Re: java.lang.OutOfMemoryError: Java heap space

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
magarcia_sm
Active Member II

Re: java.lang.OutOfMemoryError: Java heap space

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
Alfresco Employee

Re: java.lang.OutOfMemoryError: Java heap space

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
Member II

Re: java.lang.OutOfMemoryError: Java heap space

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.
gonial
Member II

Re: java.lang.OutOfMemoryError: Java heap space

Buenas de nuevo a todos.

Perdonar que vuelva a insistir, pero me podéis confirmar si existe una limitación con el límite máximo de tamaño de los archivos para la versión 4.2.f¿?.

Es que ni intentando cambiar los parámetros del archivo "setenv.bat", soy capaz de hacer superar esa limitación usando mi aplicación web para cargar los documentos.