# Tomcat Fehler nach redeploy



## JimPanse (13. Mrz 2011)

Hi,

Ich habe eine Hibernate/JSF Web-Anwendung die ich unter Tomcat 7/ MySQL 5 entwickle und erhalte beim redeploy folgende Fehlermeldung:


```
21.02.2011 00:53:02 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SCHWERWIEGEND: The web application registered the JBDC 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.
21.02.2011 00:53:02 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SCHWERWIEGEND: The web application 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.
21.02.2011 00:53:02 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
```

Ich habe leider bis jetzt nichts hilfreiches gefunden! Anscheind ist da eine Konfiguration nicht ganz richtig. Hatte jemand das Problem schon mal und eventuell eine Lösung???

Danke im vorraus!


----------



## mvitz (13. Mrz 2011)

Habe die selbe Fehlermeldung mit Tomcat 6 beim entwickeln auch schon gehabt.

Da aber alles weiterhin funktioniert und der Tomcat bei mir ja nur während der Entwicklung (zum testen) läuft, stört mich das eigentlich recht wenig. Redeploy ist in Produktion dann eine andere Sache.


----------



## JimPanse (14. Mrz 2011)

Hi,

ich habe nochmal einige Foren durch stöbert und anscheind wurde in Tomcat etwas an der Implementierung geändert und aus dem Grund tritt der Fehler auf aber eine Lösung gibt es anscheind nicht dafür. 

@mvitz: jap in der Produktion ist das egal aber irgendwie stört mich der Fehler....

mmm ok dann versuche ich mal ein paar Parameter aus der Spec aus vielleicht gibt es ja eine Möglichkeit.

Apache Tomcat Configuration Reference - The Context Container
bzw.
Apache Tomcat 7 Configuration Reference (7.0.11) - The Context Container


----------



## JimPanse (19. Mrz 2011)

In das <tomcat-home>/bin Verzeichnis folgende Datei erstellen (für windows) setenv.bat

Inhalt:


```
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx1024m -XX:MaxPermSize=128m -Dfile.encoding=UTF8 -Duser.timezone=GMT  -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false
```

Das funktioniert bei mir -> die Fehlermeldungen treten mit dieser Einstellung nicht mehr! Falls jemand das gleiche Problem haben sollte....


Greetz


----------



## Noctarius (19. Mrz 2011)

Was bringt es dir, dass die Fehlermeldung nicht mehr kommt? Jetzt wird ja noch weniger aufgeräumt. Laut der Meldung wirst du einen Thread haben welcher irgendwo gestartet wird (vermutlich in einem Init-Servlet). Also nutze die Destroy-Methode um den Thread einfach zu beenden.


----------



## JimPanse (21. Mrz 2011)

Noctarius hat gesagt.:


> ... du einen Thread haben welcher irgendwo gestartet wird (vermutlich in einem Init-Servlet). Also nutze die Destroy-Methode um den Thread einfach zu beenden.




Ich starte nirgendwo den MySQL-Thread bzw. den MySQL-Thread über einen ServletContextListener zu beenden habe ich bereits versucht ohne  Erfolg!!!!


Ok! Sorry ich habe die einzelnen Schritte davor weggelassen... aber mit der Einstellung funktionierst... man muss vorher natürlich die web-app (context.xml, web.xml) konfigurieren und den jdbc-treiber, usw. in das tomcat/lib/ext Verzeichnis kopieren....


----------

