memoria - java.lang.OutOfMemoryError: espacio PermGen en tomcat con eclipse
aumentar memoria tomcat windows (3)
Puede configurar estos argumentos para eclipse:
"Para resolver esto detuve el servidor en Eclipse. Hice doble clic en el servidor en la pestaña Servidores para abrir la página de Información general para el servidor. Haz clic en Abrir configuración de lanzamiento y luego en la pestaña Argumentos .
Agregué los siguientes argumentos de VM:
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
obtengo esta excepción frecuentemente cuando ejecuto mi aplicación en tomcat usando eclipse:
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:265)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:180)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)
at com.spacerdv.dao.impl.UserDaoImpl.getUserDetails(UserDaoImpl.java:170)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
Tengo este problema hoy también. Pasó completamente de la nada. Ayer he actualizado JDK / JRE de 1.6.0_13 a 1.6.0_21 para arreglar un problema específico de Glassfish 3.0.1 y Eclipse rompió repentinamente con esos errores de OutOfMemoryError: PermGen space
. Después de despotricar (incorrectamente) sobre el plugin Glassfish y concluir que el problema no se solucionó después de limpiar los metadatos del espacio de trabajo, resulta que esto se debe al cambio de la cadena del proveedor de JVM de "Sun" a "Oracle" desde 1.6.0_20 . Eclipse no reconoció el nuevo proveedor de JVM y, por lo tanto, no aplicó los argumentos de VM como se especifica en eclipse.ini
.
Esto se informó como Eclipse issue 319514 y los chicos de Eclipse lanzaron rápidamente un patch . Hasta que lo arreglen de forma más permanente, la solución consiste en agregar las siguientes líneas al eclipse.ini
:
-XX:MaxPermSize=256m
Por lo tanto, si recientemente realizó una actualización de JVM, podría valer la pena echarle un vistazo.
intente aumentar el espacio permanente, agregue los siguientes parámetros a la puesta en marcha de VM
-XX: PermSize = 256m -XX: MaxPermSize = 256m
también agregue -XX: MaxPermSize = 256m a Tomcat en Eclipse: Server > Open Launch Configuration > Arguments
inicio Server > Open Launch Configuration > Arguments
Actualización (en 2014): mire aquí esta pregunta y respuesta sobre el nuevo Java 8 Metaspace.
y mira aquí:
Cómo lidiar con el error "java.lang.OutOfMemoryError: PermGen space"