a common solution is to use this vm options
-XX:+CMSPermGenSweepingEnabled
-XX:+CMSClassUnloadingEnabled
but be aware that this options are avaible in only recent jdk
http://blogs.sun.com/watt/resource/jvm-options-list.html
regards marc






Piller Sébastien a écrit :
Thanks... but it's impossible to find a clear solution to this problem over the internet... Each things I try fails miserably... Nobody can provide something that works... Setting the "hibernate.bytecode.use_reflection_optimizer" property has no effect. And others solutions are bad: monitor the application and manually restitue the memory of useless objects, etc...

Am I sentenced to restart Tomcat each time I redeploy the app? I am under a shared server, I can't restart it myself! What do you do, you, when you are deploying your applications? Do you phone to your provider to ask him to restart the server himself? Or did you find a workaround?

It's so annoying... That's a problem everybody has when using tomcat, but nobody can give a solution...



Martijn Dashorst a écrit :
http://www.google.com/search?q=permgen+outofmemory+tomcat

On 4/1/08, Piller Sébastien <[EMAIL PROTECTED]> wrote:
 Hello everybody,

 I found some problem with my app, when I deploy it/undeploy it several
times under Tomcat (5.5) (Unix and Windows). I copied my app war file in the
webapp dir, and when it has been fully deployed, I surf on some pages. After
that, I delete that war, wait for the end of undeployment, and did it again.
The memory used by tomcat grows on each cycle. I did it about ten times, and
after that I got the message below:


java.lang.OutOfMemoryError: PermGen space
     at java.lang.ClassLoader.defineClass1(Native Method)
     at java.lang.ClassLoader.defineClass(Unknown Source)
     at java.security.SecureClassLoader.defineClass(Unknown
Source)
     at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1853)
     at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:875)
     at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1330)
     at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
     at java.lang.ClassLoader.loadClassInternal(Unknown
Source)
     at java.lang.Class.getDeclaredMethods0(Native Method)
     at java.lang.Class.privateGetDeclaredMethods(Unknown
Source)
     at java.lang.Class.getMethod0(Unknown Source)
     at java.lang.Class.getMethod0(Unknown Source)
     at java.lang.Class.getMethod0(Unknown Source)
     at java.lang.Class.getMethod0(Unknown Source)
     at java.lang.Class.getMethod0(Unknown Source)
     at java.lang.Class.getMethod(Unknown Source)
     at
org.apache.wicket.util.lang.PropertyResolver.findGetter(PropertyResolver.java:506)
     at
org.apache.wicket.util.lang.PropertyResolver.getGetAndSetter(PropertyResolver.java:331)
     at
org.apache.wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:275)
     at
org.apache.wicket.util.lang.PropertyResolver.getValue(PropertyResolver.java:84)
     at
org.apache.wicket.model.AbstractPropertyModel.getObject(AbstractPropertyModel.java:113)
     at
org.apache.wicket.Component.getModelObject(Component.java:1539)
     at
org.apache.wicket.markup.html.form.AbstractSingleSelectChoice.getModelValue(AbstractSingleSelectChoice.java:140)
     at
org.apache.wicket.markup.html.form.FormComponent.getValue(FormComponent.java:744)
     at
org.apache.wicket.markup.html.form.AbstractChoice.onComponentTagBody(AbstractChoice.java:344)
     at
org.apache.wicket.Component.renderComponent(Component.java:2459)
     at
org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1354)
     at
org.apache.wicket.Component.render(Component.java:2296)
     at
org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1240)
     at
org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1370)
     at org.apache.wicket.Page.onRender(Page.java:1446)
     at
org.apache.wicket.Component.render(Component.java:2296)

 As you can see, it talks about Wicket, but I don't know if it is really
related to it. I tried on Tomcat5.5/Linux too, and the message is not
exactly the same, but it stills speak of PermGen.

 PS: I use Hibernate 3.2.6ga and several other things in my app, like
Jasper, JFreeChart and C3P0 .

 Does anybody know how to avoid this? Or is the Tomcat list a better place
for this?

 Thanks!

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to