My tomcat 5 server running on centos frequently (several times / day) produces the following error:
Apr 7, 2011 11:02:30 PM org.apache.catalina.loader.WebappClas
Where is your JDBC connection pool configured? Is it in Tomcat's JNDI (conf/server.xml) or directly in your application? Is one of your web apps undeployed/redeployed when that message appears?
From the stacktrace and source code of MysqlIO.java and WebappClassLoader.java I would guess that:
one of the webapps is undeployed - based on the code in WebappClassLoader:
// Log access to stopped classloader
if (!started) { try { throw new IllegalStateException(); } catch (IllegalStateException e) { log.info(sm.getString("webappClassLoader.stopped", name), e); } }
your JDBC connections are not clean up correctly during the web app shutdown (your ServletContextListener.contextDestroyed should do that or e.g. Spring's bean destroy-method parameter)
My solution to your problem would be to check how your JDBC connection pool is cleaned up during web app shutdown and make sure the pool is also explicitly shutdown.
You are most probably usign connection pooling in you application which is checking for database connectivity.