tomcat7 - source des données jdbc - Ce qui est très susceptible de créer une fuite de mémoire
J'obtiens les messages suivants dans catalina.sortir le fichier de log lors de tomcat est à l'arrêt. J'utilise Tomcat 7.x et le Tomcat source de données JDBC.
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.
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.
Le premier affirme que la source de données a été expulsé non, donc c'est très bien. Cependant, il est étrange Parce que j'ai configuré le détruire-méthode comme suit:
<bean name="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
Ne sais pas pourquoi je obtenir la deuxième. L'une sur la "MySQL Déclaration d'Annulation de la Minuterie".
Toute aide est appréciée
EDIT 1:
J'ai essayé le fix proposé par @Zelldon et il se débarrasse de la première erreur. Cependant, le MySQL Statement Cancellation Timer
liées problème persiste
- Double Possible de Comment résoudre les problèmes de mémoire?
- Voir ce commentaire pour en savoir plus sur le MySQL Annulation Thread en question. stackoverflow.com/a/46733027/185565
- stackoverflow.com/a/47019335/3408531
Vous devez vous connecter pour publier un commentaire.
Essayer de mettre le Connecteur sql/Pilote dans le tomcat/lib et non pas dans la guerre.
Parce que chaque fois que vous déployez la guerre, le connecteur/pilote sera créé parfois le garbage collector cant les supprimer qui se termine par une fuite de mémoire. Donc, essayez de déplacer le connecteur sur le tomcat/lib dossier.
Veuillez lire les réponses suivantes:
Pourquoi faut-il le pilote JDBC être mis en TOMCAT_HOME/dossier lib?
Comment configurer Tomcat pour se connecter à MySQL
Il pourrait être lié à ce bug dans le connecteur jdbc MySQL: http://bugs.mysql.com/bug.php?id=65909.
Vous pouvez attendre pour le MySQL équipe de le réparer, ou vous essayez d'utiliser la Bruine connecteur JDBC qui fonctionne avec MySQL (vous avez juste à modifier le paramètre dans l'url de connexion) et, dans mes tests, n'ont pas ce genre de bug.