ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
310
310
EMPFEHLEN
-
16.12.09 10:28 #1
- Registriert seit
- Apr 2007
- Beiträge
- 127
Hi,
hab ein riesen Problem... wie immer
... naja es geht um Folgendes. Wenn mein Web-Service starte nimmt mein Servlet anfragen entgegen, erstellt Objekte die wiederum was machen und sendet am Schluss eine Anfrage zurück. Funktioniert auch alles wunderbar... ABER wenn der Service so ein Tag mal läuft, werden immer mehr Threads erzeugt bis dann ein Out-Of-Memory entsteht. Letztens waren es 4000.... -.-
Ich weiß das es eine destroy() Methode gibt, aber die ist doch nicht unbedingt notwendig oder?
Wie macht man es denn für gewöhnlich oder kann dieses Verhalten andere Ursachen haben?
Gruß
Green
-
16.12.09 16:51 #2
- Registriert seit
- Apr 2007
- Beiträge
- 127
Hat keiner eine Ahnung?

Bin für jeden Vorschlag dankbar
Edit 1: Ich habe es nun mit dem Befehl Thread.currentThread().interrupt(); versucht, welcher kurz nach senden des response ausgeführt werden sollte. Leider brachte der Befehl gar nichts... -.-Geändert von 'GreenDragon' (16.12.09 um 18:33 Uhr)
-
21.12.09 13:27 #3
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
welchen Servlet Container verwendest du denn?
Bei den meisten Servlet Containern kannst du den Thread Pool Konfigurieren. Dort würde ich in deinem Fall die Anzahl der gepooled-ten Threads runtersetzen und / oder das Timeout für diese Threads senken.
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
21.12.09 15:30 #4
- Registriert seit
- Apr 2007
- Beiträge
- 127
Hi,
danke für den Tipp. Das Problem konnte ich nun finden und beseitigen. Der Fehler bzw. das Problem lag in meinen Konstruktoren. Dort habe ich nämlich bei jeder einzelnen Klassen die Anweisung
drin gehabt. Somit wurde bei jeder Objekterstellung ein Thread gestartet der meine log4j Konfiguration überwacht und sich nicht mehr beendet.Code :1
DOMConfigurator.configureAndWatch(...);
Es reicht jedoch die oben genannte Anweisung nur im Servlet Konstruktor zu implementieren.
Beste Grüße
Green
Ähnliche Themen
-
[C#] Backgroundworker beendet nicht
Von DexXxtrin im Forum .NET Windows FormsAntworten: 9Letzter Beitrag: 05.07.10, 21:55 -
Zwei Threads. Warum werden beide beendet?
Von F22 im Forum Java GrundlagenAntworten: 3Letzter Beitrag: 25.02.10, 16:27 -
Spring Webservices ohne Servlet Container?
Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 2Letzter Beitrag: 26.08.09, 23:48 -
Servlet-Mapping --> findet Servlet nicht
Von Ahuga im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 26.08.09, 15:41 -
Threads: WaitForMultipleObjects(); wartet nicht wenn ich über 64 Threads starte
Von FBIagent im Forum C/C++Antworten: 6Letzter Beitrag: 24.11.05, 13:56





Zitieren

Login





