एप्लिकेशन के lib फ़ोल्डर के अंदर होने के बजाय Oracle JDBC ड्राइवर को Tomcat की lib निर्देशिका में ले जाने का प्रयास करें। ऐसा लगता है कि OracleDiagnosabilityMBean को Catalina पर नियंत्रण मिल रहा है।
संपादित करें:चूंकि आपके पास टॉमकैट पर नियंत्रण नहीं है, इसलिए जहां ओरेकल कक्षाएं लोड हो रही हैं, वहां लपेटने का प्रयास करें (अपने ओरेकल इनिट के लिए ऐपकॉन्टेक्स्ट को छोड़कर):
http://cdivilly.wordpress.com/2012/04/ 23/permgen-स्मृति-रिसाव/
//somewhere in application startup, e.g. the ServletContextListener
try {
final ClassLoader active = Thread.currentThread().getContextClassLoader();
try {
//Find the root classloader
ClassLoader root = active;
while (root.getParent() != null) {
root = root.getParent();
}
//Temporarily make the root class loader the active class loader
Thread.currentThread().setContextClassLoader(root);
//Force the AppContext singleton to be created and initialized
sun.awt.AppContext.getAppContext();
} finally {
//restore the class loader
Thread.currentThread().setContextClassLoader(active);
}
} catch ( Throwable t) {
//Carry on if we get an error
LOG.warning("Failed to address PermGen leak");
}