|
From: Leif M. <le...@ta...> - 2009-02-07 14:09:28
|
Dom, Please try this property: wrapper.jvm_exit.timeout=600 The WrapperManager's shutdown hook makes a call to the native Wrapper process that the Java application is stopped. From that point, there is a default 15 second timeout that the Wrapper will wait for the JVM process to terminate. If it fails to do so then the Wrapper will forcibly kill it. This is what you are seeing. The above property extends this timeout. When the JVM completes normal operation, it will start doing the full heap dump. This can take several minutes for large applications. During this time, the JVM process still exists, but is in a state which appears to be frozen. Cheers, Leif 2009/2/7 DJP JEAN-PROST Dominique <Dom...@de...>: > Well, when the dump is getting done, the jvm is not trying to exit, so I don't think what you suggest could help me, or I didn't really understand. > > For what I understand, jvm gets the oome, it then tries to dump memory on disk, but wrapper does something (it kills the process ?) before the dump gets done. > > Where am I worng ? > dom > > -----Message d'origine----- > De : Leif Mortenson [mailto:le...@ta...] > Envoyé : vendredi 6 février 2009 17:56 > À : wra...@li... > Objet : Re: [Wrapper-user] don't have time to get heap dump > > > Dom, > The problem here is that the Wrapper itself does not know that the JVM > is doing a heap dump on exit. It tells the Wrapper that it is > shutting down but then the java process does not terminate. The > Wrapper by default waits for 15 seconds before deciding that the java > process is frozen and kills it. This is what you are seeing. > > Normally this is the desired action. In the case of large heap dumps > however, the timeout needs to be extended. Try adding the following > to your wrapper.conf: > > wrapper.jvm_exit.timeout=600 > > That will tell the Wrapper to wait up to 10 minutes for the jvm > process to exit. Another useful timeout may be: > > wrapper.shutdown.timeout=600 > > They are both described here: > http://wrapper.tanukisoftware.org/doc/english/prop-jvm-exit-timeout.html > http://wrapper.tanukisoftware.org/doc/english/prop-shutdown-timeout.html > > Let me know how this works for you. > Cheers, > Leif > > 2009/2/7 DJP JEAN-PROST Dominique <Dom...@de...>: >> Hello, >> >> I'm actually meeting Out of Memory in my production environment. I configured jvm so that I get a heap dump when the oome is raised. >> So the I met out of memory, but wrapper did not let jvm the time to dump the heap : >> >> INFO | jvm 1 | 2009/02/06 15:56:33 | java.lang.OutOfMemoryError: Java heap space >> INFO | jvm 1 | 2009/02/06 15:56:33 | Dumping heap to c:\dumps\java_pid2308.hprof ... >> ERROR | wrapper | 2009/02/06 15:56:48 | JVM appears hung: Timed out waiting for signal from JVM. >> ERROR | wrapper | 2009/02/06 15:56:48 | JVM did not exit on request, terminated >> STATUS | wrapper | 2009/02/06 15:56:49 | JVM Restarts disabled. Shutting down. >> >> I thought wrapper.disable_restarts=TRUE would let time the jvm to do the dump, but it didn't. >> What parameter should I use so that I get the full dump ? >> What would be really cool is that I got the heap dump and that wrapper automatically restart the jvm *after*. >> >> Can someone help me ? >> Best regards, >> dom |