Chris made the following good suggestion in another thread: "Can I make a suggestion? Fix your web application so it can cleanly un-deploy and re-deploy and then simply do a hot deployment?"
I've been down this track with our own Spring web apps and found it to be quite a deep rabbit hole where a number of 3rd party libs are used. We get the issue where the webapp classloader is not GC'ed due to classes in the libraries we use not being terminated cleanly. Which means we get a big permgen memory leak when we redeploy the app. The "occasional tomcat restart" workaround is effective, if nasty. I did what Chris suggested for one of our apps and I think I got to 3rd party library problem number FIVE (an oracle jdbc driver connection timer) before I gave up in disgust. As I recall undisposed thread locals were a common theme. I used various strategies to resolve the prior issues in things as simple as logging frameworks, JMS queuing libraries, underlying http client code etc. Strategies such as: 1. Specifically calling a low level library finalization routine in a context listener or Spring lifecycle bean 2. Updating the 3rd party library to a later version which fixed the leak 3. Including Mattias Jiderhamn's active leak prevention library I would so love it if Tomcat could just throw away the entire webapp memory footprint on undeploy... Tomcat 7x memory leak protection wasn't good enough for our app a few months ago. Or failing that, if anyone can share successful strategies for "Fixing your web application so it can cleanly un-deploy and re-deploy" please do. Dale Ref: http://wiki.apache.org/tomcat/MemoryLeakProtection Ref: https://github.com/mjiderhamn/classloader-leak-prevention -----Original Message----- From: Christopher Schultz [mailto:ch...@christopherschultz.net] Sent: Thursday, 7 November 2013 10:44 a.m. To: Tomcat Users List Subject: Re: how to bounce tomcat remote? <snip> Can I make a suggestion? Fix your web application so it can cleanly un-deploy and re-deploy and then simply do a hot deployment? <snip>