Tomcat hört nicht auf. Wie kann ich das debuggen?

Ich habe eine Tomcat 7 läuft auf Linux, ich starte über $CATALINA_HOME/bin/startup.sh - und Herunterfahren über $CATALINA_HOME/bin/shutdown.sh
von /etc/init.d

Alles ok ist, außer 1 problem. Manchmal tomcat ist nicht zu stoppen.
Obwohl ich es beenden und ich sehe in catalina.aus Protokollen, die den Bach runter geht, wenn ich ps -ef ich noch sehen können, der Prozess läuft.

Was das problem sein könnte? Wie kann ich Debuggen? Mein Gefühl ist, dass dieses mit threads.

Also die Teile, die verdächtig sind, sind die folgenden:
1) ich benutze Log4j ist LogManager zu erkennen, ob die log4j-Konfiguration geändert wurde, aber ich Log4jManager.shutdown auf eine contextDestroyed ServletContextListener
2) ich benutze H2 Datenbank und ich sehe auf shutdown:

SCHWERER: Die web-Anwendung [/MyApplication] scheint begonnen zu haben, ein
thread namens [H2 Log-Writer MYAPPLICATION] aber hat es versäumt, ihn zu stoppen.
Dies wird sehr wahrscheinlich einen Speicherverlust

SCHWERER: Die web-Anwendung [/MyApplication] scheint begonnen zu haben, ein
thread namens [H2 Datei-Lock-Watchdog
/opt/myOrg/tomcat/webapps/MyApplication/db/myDatabase.lock.db] aber hat
versäumt, ihn zu stoppen. Dies wird sehr wahrscheinlich einen Speicherverlust. Apr 2,
2012 9:08:08 AM org.apache.catalina.loader.WebappClassLoader
clearReferencesThreads SCHWERER: Die web-Anwendung [/MyApplication]
scheint begonnen zu haben einen thread namens " [FileWatchdog] aber hat es versäumt
um es zu stoppen. Dies wird sehr wahrscheinlich einen Speicherverlust.

Jede Hilfe bitte? Wie kann ich erkennen das problem hier?

UPDATE:
Ich habe eine kill -3 wie vorgeschlagen von @daveb, und in der catalina.ich sehe:

JVMDUMP006I Verarbeitung dump-Ereignis "Benutzer", " detail "" - bitte warten.
JVMDUMP032I JVM angefordert Java-dump mit
'/etc/init.d/javacore.20120402.093922.2568.0001.txt' in Reaktion auf ein
Veranstaltung JVMDUMP010I Java dump geschrieben
/etc/init.d/javacore.20120402.093922.2568.0001.txt JVMDUMP013I
Verarbeitet dump-Ereignis "Benutzer", " detail "".

Es ist ein javacore in /etc/init.d aber ich weiß nicht, wie Sie zu verarbeiten. I. e. welche Teile sollte ich untersuchen

InformationsquelleAutor der Frage Jim | 2012-04-02

Schreibe einen Kommentar