Potentielles Memory Leak bei Servlet

Status
Nicht offen für weitere Antworten.

wolfgke

Mitglied
Hallo,
für die Uni muss ich mit einem Team eine Anwendung mittels Java-Servlets+Firebird umsetzen. Als Applikationsserver wird auf Tomcat gesetzt. Für das Binding Java-Firebird setzen wir auf Jaybird. Für die Entwicklung wird auf die Java EE-Version von Eclipse gesetzt. Um was für eine Anwendung es sich handelt, tut wenig zur Sache.

Auf jeden Fall sollen wir hierbei auf Code aufbauen, den ein anderer Student im Rahmen seiner Diplomarbeit entwickelt hat.

Nun ergab sich bei einem komplexeren (geforderten) Testszenario, dass Java irgendwann der Heap-Speicher ausgeht und die Anwendung damit mit einer entsprechenden Exception (OutOfMemory) abbricht. Auf meinem eigenen Rechner konnte ich diesen Test nicht wiederholen, da bei mir das System schon vorher in die Knie ging. Selbstverständlich habe ich für den Test das ganze als .war-Datei exportiert und den Test im "normalen" Tomcat gemacht und nicht in einem aus Eclipse gestarteten Tomcat.

Aus diesem Grund tippe ich darauf, dass in irgendeiner Form ein Memory Leak vorliegt und zwar in der Form, dass Speicher, der eigentlich nicht mehr benötigt wird, zu lange allokiert bleibt, weil noch irgendein Objekt eine Referenz darauf besitzt.

EDIT: es sei denn jemand kann mir belegen, dass der GC eventuell schuld sein könnte. Ich möchte es nicht definitiv ausschließen.

Um diesen Fehler aufzudecken und zu fixen, würde ich gerne wissen: was für (kostenlose) Tools stehen zur Verfügung um derartige Speicherlecks aufzudecken? Sie sollten natürlich idealerweise in die oben geschilderte Anwendungsumgebung passen. Aber das wichtigste Zielkriterium ist: bin ich in der Lage unter Verwendung des Tools das geschilderte Problem zu lösen.

Grüße
wolfgke
 
M

maki

Gast
Ob du damit was anfangen kannst weiss ich nicht, aber lade dir doch mal Eclipse TPTP runter, ime funzt das besser als Gesamtpacket als wenn du versuchen würdest es als Plugin runterzuladen.
 

byte

Top Contributor
Sind die Servlets zustandlos oder werden Membervariablen angelegt? Werden Daten in der Session gespeichert? Mit welchen Parametern startet Ihr den Tomcat (Heapsize)?
 

wolfgke

Mitglied
@Helios

Das sieht hilfreich aus. Weißt du, ob das auch mit Tomcat-Prozessen funktioniert (ich werde es sowieso ausprobieren - schon alleine, um das Java-SDK mal wieder zu updaten)?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Alternative zu Memory Leak Detector (Bea JRockIt) Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben