Comment faire pour résoudre les problèmes de mémoire?
J'ai un problème avec du fil et une fuite de mémoire...Dans le journal de ma Tomcat7 j'ai trouvé ces lignes sur mon graal application:
SEVERE: The web application [/myApp] 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.
May 16, 2012 6:02:10 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/myApp] appears to have started a thread named [pool-63-thread-1] but has failed to stop it. This is very likely to create a memory leak.
May 16, 2012 6:02:10 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/myApp] appears to have started a thread named [pool-63-thread-2] but has failed to stop it. This is very likely to create a memory leak.
May 16, 2012 6:02:10 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/myApp] appears to have started a thread named [pool-63-thread-3] but has failed to stop it. This is very likely to create a memory leak.
May 16, 2012 6:02:10 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/myApp] appears to have started a thread named [pool-63-thread-4] but has failed to stop it. This is very likely to create a memory leak.
May 16, 2012 6:02:10 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/myApp] appears to have started a thread named [pool-63-thread-5] but has failed to stop it. This is very likely to create a memory leak.
May 16, 2012 6:02:10 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/myApp] appears to have started a thread named [pool-63-thread-6] but has failed to stop it. This is very likely to create a memory leak.
May 16, 2012 6:02:10 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/myApp] appears to have started a thread named [pool-63-thread-7] but has failed to stop it. This is very likely to create a memory leak.
et plus encore de ceux-là...
Le problème est que je pense que tous les threads sont créés dans une partie de l'application développée à partir d'un tiers 3ème POT que je n'ai pas la source, et je ne peux pas modifier par moi-même.
Est-il un moyen de le résoudre, ou au moins de comprendre ce qui ne va pas bien?
grâce
Eu le même problème une fois, n'a pas vraiment trouver une solution, mais il a encore continué à travailler très bien. Quelqu'un sait si le décapage de la guerre de taille de fichier aura aucun effet?
OriginalL'auteur rascio | 2012-05-16
Vous devez vous connecter pour publier un commentaire.
La première ligne indique un bogue dans le pilote JDBC MySQL. Regarde comme il a été fixé dans 5.1.6 - voir http://bugs.mysql.com/bug.php?id=36565 de sorte que vous pourriez essayer de remplacer le pot avec la dernière de http://dev.mysql.com/downloads/connector/j/
Les autres lignes indiquent un pool de threads qui a été commencé, et pas arrêtée lorsque l'application s'arrête.
Cela peut vraiment être résolu en modifiant le code source du tiers pot, si c'est bien où est le problème.
Si possible, vous pourriez essayer d'éliminer temporairement le tiers pot pour voir si le problème disparaît.
J'ai mis à jour le pilote jdbc mysql pour la dernière, mais il ne résout pas le problème. J'ai toujours la même erreur MySql.
MYSQL bug la solution : la mise à jour de mysql à la version 5.1.27 ou supérieur
Malheureusement, le deuxième lien ne montre que la version 5.1.45; je ne sais pas pourquoi 5.1.6 n'était pas libéré.
vraiment? Comment s'étonner que de plus de 5 ans plus tard, à l'origine de la cité de la version n'est pas la dernière...
OriginalL'auteur GreyBeardedGeek
Pour le pool de threads problème, la solution que j'ai utilisé (et il semble fonctionner) était :
ServletContextListener
contextDestroyed
méthode, par l'aide de la réflexion, j'ai appeler la méthode close de la source de données - dans mon cas, il semble fonctionner avec c3p0 et DBCPcom.mchange.v2.c3p0.DataSources.destroy
(source de données);OriginalL'auteur Marian Ion