Surveiller ce forum | Commencer une nouvelle discussion Commencer une nouvelle discussion
RE: java.lang.OutOfMemoryError: PermGen space [ Répondre ]
Par : R Q on 2010-04-09 09:09
[forum:472693]
Pour voir les ressource consommé par Tomcat, c'est possible
avec le manager de Tomcat à l'adresse :
http://localhost:8080/manager/status/all
Sinon sous Linux avec la commande top puis renseigner l'utilisateur
qui lance tomcat (par exemple usertomcat) avec le touche u, un
exemple de résultat :
PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
717 usertomcat 40 0 1436m 555m 14m S 0 27.8 11:46.39 java



RE: java.lang.OutOfMemoryError: PermGen space [ Répondre ]
Par : Benjamin NORMAND on 2010-04-08 17:10
[forum:472692]
Merci,

Je vais aller voir la doc pour ces flags, les rajouter et vérifier que l'erreur ne se reproduit pas.

Connais-tu un moyen de visualiser les ressource consommé par Tomcat?

Merci encore,

Ben

RE: java.lang.OutOfMemoryError: PermGen space [ Répondre ]
Par : Philippe HUET on 2010-04-08 16:47
[forum:472691]
L'erreur PermGen Space est assez courante avec un tomcat. Le PermGen space est une zone mémoire qui est en dehors de la zone gérée par le garbage collector et les flags -Xms et -Xmx n'ont pas d'effet sur son paramètrage.

Il faut ajouter les flags: -XX:PermSize=256m et -XX:MaxPermSize=256m dans la variables d'environnement JAVA_OPTS (sachant que 256m n'est qu'une valeur indicative, il faut généralement faire différents tests pour trouver la bonne).

Cette erreur est souvent lié à l'utilisation de la librairie CGLIB qui est elle-même utilisée intensément par spring ou hibernate (par spring je pense dans le cas de mapfishapp, et probablement par hibernate pour geoserver).

java.lang.OutOfMemoryError: PermGen space [ Répondre ]
Par : Benjamin NORMAND on 2010-04-08 15:28
[forum:472690]
Bonjour,

Je sais bien que ce problème n'ait pas spécifique à Georchestra, mais la solution ne peut qu'y être mieux adapter.

J'ai un Tomcat 6.0.20 sur ubuntu 8.04 server virtualisé avec plusieurs applications web de déployées

- mapfishapp
- geoserver 2.0.1
- geosource 2.2.2
- host-manager }
- manager } application de tomcat
- root }

Pour geonetwork j'ai paramétré un contrext tomcat comme suit:
<Context path="/geonetwork" docBase="/opt/geosrource/web/geonetwork" crossContext="false" debug="0" reloadable="false"/>

j'ai eu l'erreur suivante après un redéploiement de mapfishapp : java.lang.OutOfMemoryError: PermGen space

J'ai modifier le lancement de catalina.sh avec ceci : " JAVA_OPTS="$JAVA_OPTS -Xms256 -Mmx512m " car j'ai déjà eu l'erreur : java.lang.OutOfMemoryError: Java heap space

Cette nouvelle erreur m'inquiète plus car le serveur a craché et a du être remonté. Merci de m'éclairer de vos lumières. Ce problème est souvent dû à un trop grand nombre de webapp déployés dans tomcat. Est-ce mon cas?
Je cherche une solution pour le régler de mon coté ...

Merci, cordialement.

Ben

**********************************************
log tomcat
**********************************************

8 avr. 2010 10:49:19 org.apache.catalina.core.ApplicationContext log
INFO: Destroying Spring FrameworkServlet 'ws'
8 avr. 2010 10:58:53 org.apache.catalina.core.ApplicationContext log
INFO: La servlet ws est marqué comme indisponible
8 avr. 2010 10:58:53 org.apache.catalina.core.StandardContext loadOnStartup
GRAVE: La servlet /mapfishapp a généré une exception "load()"
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
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.loadClassInternal(ClassLoader.java:316)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.springframework.web.servlet.FrameworkServlet.class$(FrameworkServlet.java:105)
at org.springframework.web.servlet.FrameworkServlet.<clinit>(FrameworkServlet.java:105)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1116)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4149)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4458)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:850)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:518)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1288)
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)
8 avr. 2010 10:59:06 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
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.loadClassInternal(ClassLoader.java:316)
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)
at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:93)
at org.apache.jasper.compiler.JspConfig.processWebDotXml(JspConfig.java:91)
at org.apache.jasper.compiler.JspConfig.init(JspConfig.java:220)
at org.apache.jasper.compiler.JspConfig.findJspProperty(JspConfig.java:273)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:112)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
8 avr. 2010 10:59:28 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
java.lang.OutOfMemoryError: PermGen space
8 avr. 2010 10:59:43 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
java.lang.OutOfMemoryError: PermGen space
8 avr. 2010 11:06:45 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'ws'
8 avr. 2010 11:06:52 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Apr 8, 2010 11:30:49 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'ws'
Apr 8, 2010 11:30:55 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Apr 8, 2010 11:33:18 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'dispatcher'
Apr 8, 2010 11:37:16 AM org.apache.catalina.core.ApplicationContext log
INFO: Destroying Spring FrameworkServlet 'ws'

***********************************

FEDER Powered By FusionForge Collaborative Development Environment Charte d'utilisation / Nous contacter / Mentions légales Haut de page