Ich habe den Java-Service-Wrapper in einer benutzerdefinierten Anwendung für eine ganze Weile verwendet, und es hat gut funktioniert. Seit der Aktualisierung unserer Anwendung auf eine neue Version in den letzten Tagen begann die JVM zu hängen und dann Wrapper druckt dies in das Protokoll: JVM erscheint aufgehängt: Zeitüberschreitung beim Warten auf Signal von JVM.Java scheint hängen
Es beendet dann automatisch die JVM und startet die App erneut. Dies geschieht nach ungefähr 10 Stunden Laufzeit, was das Debuggen erschwert.
Natürlich werde ich die Änderungen durchsehen, die wir gemacht haben, aber es wurden keine wesentlichen Änderungen vorgenommen, von denen ich vermute, dass sie diese Art von Problemen verursachen.
Wo kann ich versuchen herauszufinden, was passiert? Debug-Nachrichten von der Anwendung zeigen nichts Interessantes an. Wenn die JVM gerade abstürzt, erstellt sie normalerweise einen Dump, der beim Debuggen helfen kann, aber sie hängt, also erstellt sie keinen Dump. Wenn ich den Dienst nicht automatisch neu starten lasse, kann ich etwas tun, um vor dem Neustart nützliche Informationen aus der JVM zu erhalten?
Es scheint mir, dass die JVM nicht von typischen Programmierfehlern hängen sollte. Worauf hast du schon einmal hingewiesen, dass die JVM hängen kann?
Linux RHEL4, Java 1.6.0, Intel 32 Bit. Ich überwache die Anzahl der Threads und die Speichernutzung. Bis jetzt benutzt es nicht viel von beiden. Wir verwenden Threads nicht viel. Wir starten nur wenige zur Startzeit der Anwendung, um alle paar Minuten nachzusehen, ob etwas zu verarbeiten ist. –
Wie konsistent sind die 10 Stunden? Es gibt wirklich nur ein paar Möglichkeiten: entweder * einige * Ressourcen Erschöpfung, oder eine zufällige Deadlock/Verzögerung. Welche Art von Anwendung? –
Nicht konsistent. Bis jetzt ist es nur dreimal passiert. Eigentlich sieht es so aus, als wäre der Durchschnitt ein bisschen höher als 10 Stunden. Es passierte um 12, 14 und 19 Uhr. Was ich versuchen werde, ist, es nicht auf automatischen Neustart zu setzen, damit ich den Zustand ein wenig untersuchen kann, wenn es passiert. –