Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Rò rỉ bộ nhớ Permgen với triển khai lại nóng và cơ sở dữ liệu Oracle

Hãy thử di chuyển trình điều khiển Oracle JDBC vào thư mục lib của Tomcat thay vì nằm trong thư mục lib của ứng dụng. Có vẻ như OracleDiagnosabilityMBean đang xử lý Catalina.

Chỉnh sửa:Vì bạn không có quyền kiểm soát Tomcat, hãy cố gắng bọc nơi các lớp Oracle đang được tải như vậy (ngoại trừ thay thế AppContext cho Oracle init của bạn):

http://cdivilly.wordpress.com/2012/04/ 23 / Permgen-memory-Rò rỉ /

//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. Thực thi câu lệnh hay chạy tập lệnh?

  2. Xóa nhà cung cấp dữ liệu Oracle cho .NET khỏi Global Assembly Cache

  3. Cách chuyển đổi thập phân sang thập lục phân bằng TO_CHAR () trong Oracle

  4. Cách THÊM TÊN CONSTRAINT vào một CONSTRAINT đã TỒN TẠI

  5. Giá trị mặc định của VARCHAR2 trong Oracle là gì?