Hallo,
stehe gerade vor dem Problem, dass eine Applikation, bei der es sich um ein relativ komplexes, aber ansonsten normales Servlet handelt (also nix mit JEE, JSP, JSF, JPA etc.), nach einiger Laufzeit (Tage, Wochen, Monate..) 100% CPU-Last belegt, aber mit der Applikation eigentlich nichts auffälliges ist und sie auch nicht übermässig viel Speicher beansprucht. Als einzige Möglichkeit bleibt da ein Server-Neustart, aber das ist natürlich nicht so toll.
Frage, was ist da los? Entweder ein Bug in java oder im Tomcat, was ich aber eher nicht glaube, oder naheliegenderweise einer in meiner Applikation. Also kein Memory Leak aber sozusagen ein "Prozess"- oder "Thread"-Leak. Aber wie kann ich den finden?
Gibts irgendwelche Erfahrungen mit sowas? "Tpyische" Fehlerquellen? Und wie kann ich mir alle zur Zeit aktiven Threads innerhalb meiner Applikation oder der JVM anzeigen lassen? Das würde ja vielleicht schon weiterhelfen beim Fehlersuchen..
Gruß+Danke
Jan
stehe gerade vor dem Problem, dass eine Applikation, bei der es sich um ein relativ komplexes, aber ansonsten normales Servlet handelt (also nix mit JEE, JSP, JSF, JPA etc.), nach einiger Laufzeit (Tage, Wochen, Monate..) 100% CPU-Last belegt, aber mit der Applikation eigentlich nichts auffälliges ist und sie auch nicht übermässig viel Speicher beansprucht. Als einzige Möglichkeit bleibt da ein Server-Neustart, aber das ist natürlich nicht so toll.
Frage, was ist da los? Entweder ein Bug in java oder im Tomcat, was ich aber eher nicht glaube, oder naheliegenderweise einer in meiner Applikation. Also kein Memory Leak aber sozusagen ein "Prozess"- oder "Thread"-Leak. Aber wie kann ich den finden?
Gibts irgendwelche Erfahrungen mit sowas? "Tpyische" Fehlerquellen? Und wie kann ich mir alle zur Zeit aktiven Threads innerhalb meiner Applikation oder der JVM anzeigen lassen? Das würde ja vielleicht schon weiterhelfen beim Fehlersuchen..
Gruß+Danke
Jan