Pilote JDBC désenregistré de force : prévention des fuites de mémoire
Lorsque vous rencontrez l'erreur « Pour éviter une fuite de mémoire, le pilote JDBC a été désenregistré de force ," cela indique qu'un pilote JDBC n'a pas été géré correctement lors de l'arrêt de l'application Web. Ce problème est survenu avec les versions 6.0.24 et ultérieures de Tomcat en raison d'une fonctionnalité de détection de fuite de mémoire.
Cause de l'erreur
Pilotes JDBC de niveau service chargés via la classe chemin d'enregistrement automatique lors du démarrage de l'application Web. Cependant, si le pilote ne parvient pas à se désenregistrer correctement lors de l'arrêt, cela peut entraîner des fuites de mémoire. Tomcat désenregistre automatiquement ces pilotes pour éviter ce problème.
Résolution
-
Ignorer l'avertissement : Tomcat a déjà pris les mesures correctives nécessaires , atténuant ainsi les fuites de mémoire potentielles.
-
Rétrograder Tomcat (pas Recommandé) : Les versions 6.0.23 et antérieures n'afficheront pas cet avertissement, mais elles peuvent toujours être sensibles aux fuites de mémoire.
-
Déplacez le pilote JDBC vers le dossier Lib de Tomcat : Placer le pilote dans le dossier partagé "/lib" de Tomcat et configurez une source de données regroupée en connexion pour gérer le pilote. Évitez d'utiliser le DBCP de Tomcat car il ne désenregistre pas correctement les pilotes à la fermeture. Envisagez d'utiliser des pools de connexion alternatifs tels que HikariCP ou Tomcat JDBC Pool.
-
Enregistrez et désenregistrez manuellement le pilote : Si vous ne parvenez pas à déplacer le pilote vers le dossier "/lib" de Tomcat, vous pouvez l'enregistrer manuellement. et désenregistrez le pilote à l'aide d'un ServletContextListener.
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!