sql >> Database >  >> RDS >> Oracle

Permgen Memory Leak met hot re-implementatie en Oracle-database

Probeer het Oracle JDBC-stuurprogramma naar de lib-map van Tomcat te verplaatsen in plaats van in de lib-map van de toepassing. Het lijkt erop dat OracleDiagnosabilityMBean grip krijgt op Catalina.

Bewerken:aangezien je geen controle hebt over Tomcat, probeer dan zo in te pakken waar de Oracle-klassen worden geladen (behalve vervang de AppContext voor je Oracle-init):

http://cdivilly.wordpress.com/2012/04/ 23/permgen-memory-leak/

//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");
}


  1. Waar is het SQL National Character (NCHAR)-gegevenstype eigenlijk voor?

  2. Een cursor declareren na het begingedeelte van een Oracle PL/SQL-procedure

  3. Slaapstand en database met meerdere tenants met behulp van schema's in PostgreSQL

  4. Toepassing crasht bij installatie met fout sqlite3_exec - Kan synchrone modus =1 (Normaal) niet instellen