Unser Tomcat 6.0.29 geht runter, nachdem es die maximale Anzahl von Threads erreicht hat. Ich würde wirklich jede Hilfe damit schätzen, weil es ein Produktionsserver ist.
Hier ist ein Teil der Datei catalina.log:
%Vor%Nimm einen Thread Dump, um zu sehen, was an all deinen Threads festgehalten wird. Der Stacktrace für jeden Thread ist ein Hinweis auf Ihr Problem mehr als der catalina.out-Fehler war.
Windows
Drücken Sie im Konsolenfenster ctrl + break
Unix
Geben Sie in der Befehlszeile Folgendes ein: kill -3 <pid>
Diese können bei einer laufenden Produktionsinstanz sicher übernommen werden.
Es sieht so aus, als ob Ihr Executor auf 500 oder 600 Threads eingestellt ist. Wenn jeder Thread normalerweise auf eine DB-Verbindung zugreift, haben Sie den dbcp-Pool auf denselben oder einen höheren Wert gesetzt?
Sie können auch Ihre dbcp-Poolkonfiguration
überprüfenSehen Sie sich den Auslagerungsspeicher und andere Ressourcen an. Ich hatte eine Erfahrung, bei der die Speichernutzung jedes Threads zu hoch war (schlechtes App-Design), was dazu führte, dass der Server nicht mehr reagierte. Wenn dies der Fall ist (oder einfach testen), reduzieren Sie die Anzahl der Threads und sehen Sie, ob es noch passiert.
Sie könnten BTrace ausprobieren.
Fügen Sie eine Probe an org.apache.catalina.startup.Catalina
class, stopServer
methods an. Wenn das nicht hilft, versuchen Sie, andere Shutdown-Hooks zu finden und BTrace-Profiler an sie anzuhängen.
Sie sollten in der Lage sein, den vollständigen Stack-Trace zu erhalten, der auf denjenigen verweist, der das Herunterfahren angefordert hat.
Tags und Links multithreading tomcat