Kann ich Tomcat als Dienst ausgeführt wird, um dump-heap?

Ich bin versucht zu haben Tomcat, die derzeit läuft als Dienst auf einem Windows 2003-box -, dump-heap auf einem OutOfMemoryError.

(Tomcat ausgeführt wird Hudson, die Berichterstattung ein heap space problem, am Ende meines bauen. Läuft der build manuell produziert keine solchen Fehler. Die Hudson Jungs brauchen ein heap-dump, um loszulegen.)

Angewiesen anderswo, ich habe gesagt, dass der Apache-Service-Monitor zum konfigurieren der JVM verwendet wird, um Tomcat zu laufen dump-heap, wenn ein OutOfMemoryError aufgetreten ist, indem Sie die folgenden JVM-Optionen:
-XX:+HeapDumpOnOutOfMemoryError
Dann Lauf ich die wieder bauen. Sicher genug, es Berichte gab es ein Haufen Fehler. Ich scan die ganze Festplatte auf der Suche für die Standard - java_pid123.hprof Datei (wo offenbar 123 wird ersetzt durch die PID von der JVM). Keine .hprof Dateien, die überall existieren.

Ich bin gefangen in einem catch-22: ich muss die heap-dump der Hudson Jungs lösen Ihre Speicherverlust, aber ich kann nicht die heap-dump, wenn ich Hudson unter Tomcat.

Gibt es einige Besondere Art und Weise, wenn Tomcat als Windows-Dienst ausgeführt, um einen heap-dump, die von ihm auf einen OutOfMemoryError?

Die andere Sache, die ich versucht habe zu schreiben, ist es, auf die Startup-und Shutdown-Registerkarten, um die "Java" - option anstelle von "jvm" - option. Ich glaube, das sollte sagen, der Service-Manager versuchen, starten Sie Tomcat mit einem ausführbaren Java-Befehl anstelle der Einleitung der jvm.dll direkt. Wenn ich dies tun, wird der Dienst nicht gestartet werden kann.

Sicherlich hat jemand anderes ein ähnliches problem gehabt?

InformationsquelleAutor der Frage Laird Nelson | 2010-01-31

Schreibe einen Kommentar