Rumah  >  Artikel  >  pangkalan data  >  Mengapa Tomcat 7.x Mengeluarkan Amaran Kebocoran Memori Apabila Menggunakan Sumber Data JDBC?

Mengapa Tomcat 7.x Mengeluarkan Amaran Kebocoran Memori Apabila Menggunakan Sumber Data JDBC?

DDD
DDDasal
2024-11-07 18:39:02994semak imbas

Why Does Tomcat 7.x Issue a Memory Leak Warning When Using JDBC Data Sources?

Amaran Sumber Data Tomcat JDBC: Kebocoran Memori

Apabila menutup Tomcat 7.x dengan sumber data Tomcat JDBC yang dikonfigurasikan, anda mungkin menghadapi amaran berikut dalam fail log catalina.out:

Mar 26, 2013 1:17:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJDBC
SEVERE: The web application [/my_webapp] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

Amaran ini menunjukkan bahawa kebocoran memori boleh berlaku disebabkan oleh pemacu JDBC tidak didaftarkan dengan betul apabila aplikasi web dihentikan. Untuk menyelesaikan isu ini, walaupun menetapkan kaedah pemusnahan untuk DataSource, amaran itu berterusan.

Satu lagi punca potensi kebocoran memori diserlahkan dengan amaran berasingan:

Mar 26, 2013 1:17:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/my_webapp] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak.

Untuk menangani kedua-dua amaran:

  1. Pindahkan Pemacu JDBC MySQL ke lib Tomcat Folder:

Pindahkan fail MySQL Connector/Driver JAR daripada fail WAR ke folder Tomcat lib. Menggunakan fail WAR dengan pemandu disertakan boleh menyebabkan kebocoran memori akibat pengumpulan sampah yang tidak betul.

  1. Siasat Benang Pemasa Pembatalan Penyata MySQL:

Tentukan mengapa utas "Pemasa Pembatalan Penyata MySQL" tidak dihentikan. Semak kod aplikasi atau mana-mana perpustakaan pihak ketiga yang digunakan untuk mengenal pasti tempat urutan ini dimulakan dan pastikan ia dihentikan dengan betul apabila aplikasi ditutup.

Dengan melaksanakan langkah-langkah ini, anda boleh mencegah kebocoran memori dengan berkesan dan elakkan amaran dalam fail log catalina.out.

Atas ialah kandungan terperinci Mengapa Tomcat 7.x Mengeluarkan Amaran Kebocoran Memori Apabila Menggunakan Sumber Data JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn