Thread "WebContainer : 0" (00000029) aktiv gewesen 647279 Millisekunden und kann aufgehängt werden
Ich bin immer folgende exception in WebSphere, während Sie versuchen, generieren Sie einen excel-Bericht mit jasper.
ThreadMonitor W WSVR0605W: Thread "WebContainer : 0" (00000029) has been active for 647279 milliseconds and may be hung. There is/are 1 thread(s) in total in the server that may be hung.
Versucht, die Erhöhung der Standard-thread-pool-Größe von 20 bis 50
und auch erhöhte WebContainer pool-Größe von 50 bis 150. Nicht gearbeitet.
Keine Lösung für dieses.
Ist der Web-Container-Thread eine Antwort zurück endlich?
Nach dem anzeigen der Fehlermeldung-server laufen zu halten.
Dann ist dein problem ist, dass gerade der Prozess der Erzeugung der excel ist sehr langsam, blockiert der Thread, der erkannt wird, als Hing von der WAR-server. Sollten Sie optimieren die jasper-Betrieb.
Nach dem anzeigen der Fehlermeldung-server laufen zu halten.
Dann ist dein problem ist, dass gerade der Prozess der Erzeugung der excel ist sehr langsam, blockiert der Thread, der erkannt wird, als Hing von der WAR-server. Sollten Sie optimieren die jasper-Betrieb.
InformationsquelleAutor NaaN | 2014-11-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deine Fehlermeldung sagt, dass der thread namens "WebContainer : 0" wurde, etwas zu tun, für 647 Sekunden oder 10.7 Minuten und 1 thread aktiv in der JVM, dass meine auch aufgehängt (schon länger aktiv als die Schwelle Zeit).
Hing ein thread ist ein thread in Java EE-Anwendungen, die blockiert ist durch einen Anruf oder auf einen monitor wartet, für ein gesperrtes Objekt freigegeben werden, so dass der thread benutzen. Hing thread können durch eine einfache software-Fehler (wie eine Endlosschleife) oder eine komplexere Ursache (zum Beispiel eine Ressourcen-deadlock). CPU-Auslastung für die server-java-Prozess kann sich hoch und reagiert nicht mehr, wenn die Anzahl der threads, die wächst.
Gibt es Möglichkeiten zur Steigerung der Agilität (Standard 10min), aber nicht empfohlen. Sie optimieren, oder beschränken Sie Ihre excel-report-Erstellung Prozess. Ich glaube, der Bericht, den Sie extrahieren ist sehr groß oder das schlagen der db mehr für die generation, im Grunde könnte durch code-Fehler. Die Erhöhung der Anzahl der thread-pool hat nichts für Ihr Problem.
In sysout.log: Unten Linien der geposteten Warnmeldung geben sollte eine Vorstellung über die Java EE-Klasse, die dieses Problem verursachen. FFDC auch hilft dies, um es herauszufinden.
Hängen detection option ist standardmäßig aktiviert. Sie können konfigurieren, dass es für die Umwelt, so dass potenzielle hängt gemeldet werden können. Wenn ein hung thread erkannt, WAR Sie informiert, so dass Sie das problem zu beheben.
Verwendung der Hänge-Richtlinie Erkennung, können Sie einen Zeitpunkt angeben, zu lang für eine Arbeitseinheit abgeschlossen. Der thread monitor überprüft alle verwalteten threads, einschließlich Web-container-threads.
Deaktivieren der Erkennung hängen option, legen Sie den com.ibm.websphere.threadmonitor.interval-Eigenschaft kleiner als oder gleich null ist.
Ich denke, der code muss optimiert werden. Sie könnten erzeugen der riesigen excel verursacht den thread am Leben zu sein für diese Zeit. Haben Sie versuchen, erzeugen Sie eine leere excel-oder excel-mit kleinen Daten.
Sind Sie richtig. Ich könnte erzeugen einer excel-mit kleinen Menge von Daten.
Ich hoffe, riesigen Daten-Extraktion ist die Ursache. Sie können erhöhen Sie den Schwellenwert, um Ihren Bedarf, aber nicht eine gute Praxis. Java-core wird in den Profil-Stamm und Verwendung der IBM Thread and Monitor Dump Analyzer for Java für die Analyse. Beispiel
InformationsquelleAutor Joachin Joseph
Dies ist nicht eine Ausnahme. Wie Sie sehen können hat
W
Ebene, welche Warnung (ThreadMonitor W WSVR0605W
). Es ist nur informiert Sie, dass Ihre report generation ist extrem lang. Mehr als 647279 Millisekunden. Wenn Sie sich weiter unten anmelden, werden Sie wahrscheinlich feststellen, ähnlich wie die Meldung, dass dein thread hat fertig von der Arbeit, und ist nicht mehr gehängt.Zunehmende WebContainer pool hat nichts mit dem zu tun. Sie haben sich Klasse erstellen Ihren Bericht und sehen Sie, wenn Sie können, machen es schneller.
Andere Lösung wäre, nur behandeln die Erstellung von berichten als asynchrone Aufgabe mit entweder Asynchronen Bohnen oder JMS (Sie sind leider auf v7, so dass keine EJB 3.1 asynchrone servlets sind vorhanden), speichern Sie es in Datenbank-oder Datei-system und später wieder abrufen mit separaten Antrag, wenn der Bericht fertig ist.
InformationsquelleAutor Gas
In meinem team haben wir festgestellt, dass Websphere 8.5.5.13 nie heruntergefahren, die hingen Fäden, so dass unser team kam mit einer Lösung für ein Transaktions-system, welcher Prozess die hohe Anzahl der gleichzeitigen threads, so dass anstelle der hing immer fanden wir eine Lösung, die mit Java 8, die mal nach einer Einstellung für den parameter.
Folgende code zeigt eine demo, wie man eine Funktion schreiben, die ausgeführt wird, kritische, beliebigen code mit timeout.
so kann dies in einer factory-Klasse und rufen Sie diese von jedem thread, erfordern zu führen kritischen code, die möglicherweise timeout für immer, dies ist nützlich, um das senden eines timeout-exception wirft ein Warnungen, anstatt zu warten, für system ausgehen von Ressourcen
InformationsquelleAutor Gabriel Hernandez