Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Permgen Memory Leak dengan hot redeploy dan database Oracle

Coba pindahkan driver Oracle JDBC ke direktori lib Tomcat alih-alih berada di dalam folder lib aplikasi. Sepertinya OracleDiagnosabilityMBean menguasai Catalina.

Sunting:Karena Anda tidak memiliki kendali atas Tomcat, coba bungkus tempat kelas Oracle dimuat seperti itu (kecuali ganti AppContext untuk init Oracle Anda):

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CONCAT() Fungsi di Oracle

  2. Bergabung dan menghapus Produk Cartesian

  3. Oracle JDBC ojdbc6 Jar sebagai Ketergantungan Maven

  4. Bagaimana cara membuat kolom kosong/kosong dengan kueri SELECT di Oracle?

  5. Sumber SSIS OLE DB kehilangan baris secara acak dari sumber data Oracle