-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Daniel,
On 1/28/13 8:19 AM, Daniel Mikusa wrote: > On Jan 26, 2013, at 5:19 AM, Sunil Shevante wrote: > >> Hi, >> >> Is it possible to restart tomcat from within itself? >> >> I host a JSP website and somehow the memory utilization keeps on >> increasing from time to time. I then have to manually restart >> Tomcat. >> >> While I understand that in the long term, I should focus on >> fixing the memory leaks, is there a way by which I can restart >> Tomcat after the free memory goes below a threshold percentage? > > I wouldn't try to do this inside Tomcat. With the tools provided > by the JVM (jmap or JMX), you can monitor just as easily from > outside Tomcat. Instead, create a monitoring script to watch the > Tomcat process. When memory usage hits a certain level, dump the > heap (so you can analyze your memory problem later) and restart > Tomcat. +1 If you want to chance it, you could set -XX:OnOutOfMemoryError=<cmd> and write a script that tries to dump your heap (or just have the JVM do that for you) and then bounce Tomcat. Note that not all OOMEs are life-threatening for the JVM. I have experienced two kinds of OOMEs: 1) Truly out of memory: your app simply needs more heap. In these cases, the JVM generally goes into GC panic for a short amount of time trying to free-up memory and then finally throws OOME. Nothing meaningful seems to work after that: DBCPs run dry, etc. In these cases, I have had to restart my JVM completely in order for any users to get anything meaningful done. 2. Transient memory exhaustion: this happens when we have some careless code that loads 100,000 records from a single database query all into a big java.util.List or something like that. In these cases, a single thread gets an OOME, the List gets GC'd very quickly, and the server (and JVM) are fine. We generally do restart our JVMs when this happens, but we can wait until off-hours when fewer users are likely to be impacted in any way. > Alternatively, you could use a preexisting tool to monitor your > Tomcat instance like Nagios or Hyperic. These solutions really only monitor. Yes, you can configure them to "react" to certain situations by abusing the notification system, but they are really meant for monitoring and notification, not for automated tasks. >> I am using tomcat 6.0.14 on unix. > > This is really old, upgrade. +10 - -chris -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.17 (Darwin) Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEAREIAAYFAlEGmisACgkQ9CaO5/Lv0PAMeACfflakV2t8RT5kjF/wQf8joYl9 swgAmgL1pwbvX5yLe2jUSGaOXXr5SDzf =MaHM -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org