Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi Tomcat 7.x émet-il un avertissement de fuite de mémoire lors de l'utilisation de sources de données JDBC ?

DDD
Libérer: 2024-11-07 18:39:02
original
935 Les gens l'ont consulté

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

Avertissement de source de données Tomcat JDBC : fuite de mémoire

Lors de l'arrêt de Tomcat 7.x avec une source de données Tomcat JDBC configurée, vous pouvez rencontrer l'avertissement suivant dans le fichier journal 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.
Copier après la connexion

Cet avertissement indique qu'une fuite de mémoire pourrait se produire en raison du fait que le pilote JDBC n'est pas correctement désenregistré lorsque l'application Web est arrêtée. Pour résoudre ce problème, malgré la définition de la méthode de destruction pour DataSource, l'avertissement persiste.

Une autre cause potentielle d'une fuite de mémoire est mise en évidence par un avertissement distinct :

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.
Copier après la connexion

Pour résoudre les deux avertissements :

  1. Déplacez le pilote MySQL JDBC vers le dossier lib Tomcat :

Déplacez le fichier JAR du connecteur/pilote MySQL du fichier WAR dans le dossier lib Tomcat. Le déploiement du fichier WAR avec le pilote inclus peut entraîner des fuites de mémoire dues à un garbage collection incorrect.

  1. Enquêtez sur le fil de discussion du minuteur d'annulation de la déclaration MySQL :

Déterminez pourquoi le thread « Minuterie d'annulation d'instruction MySQL » n'est pas arrêté. Vérifiez le code de l'application ou toute bibliothèque tierce utilisée pour identifier l'endroit où ce thread est démarré et assurez-vous qu'il est correctement arrêté lorsque l'application est arrêtée.

En mettant en œuvre ces mesures, vous pouvez prévenir efficacement les fuites de mémoire et évitez les avertissements dans le fichier journal catalina.out.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!