Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Speicherleck mit Webservice und AWT-Image

  1. #1
    Registrierter Benutzer
    Registriert seit
    10.03.2006
    Beiträge
    22

    Speicherleck mit Webservice und AWT-Image

    Hallo!

    ich habe hier einen Webservice laufen, dem mit Hilfe von mtom aus meiner Java-Anwendung ein Bild geschickt werden kann. Mit dem Metro-Framework habe ich mir aus der WSDL-Datei die entsprechenden Klassen erstellt, als Parameter für den Webservice-Aufruf wird ein AWT-Image benötigt.

    Funktioniert auch alles ganz toll, aber beim Aufruf der Webservice-Methode wird Heap-Speicher reserviert und später nicht mehr freigegeben, sodass meine Anwendung sich irgendwann mangels Speicher verabschiedet. Den Heap-Speicher zu vergrößern zögert das Problem nur hinaus. Dann kann ich ein paar mehr Bilder schicken, bis sich ich einen Fehler bekomme.

    Hat jemand schonmal was ähnliches erlebt und weiß Rat?

  2. #2
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Wie rufst du den Webservice auf?

    Hast du eh keine Referenzen mehr vom Bild im Speicher?

    Vielleicht kannst du den Code ja posten und dann könnte man diesen besser analysieren.

    Lg, Christian
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  3. #3
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Hm, bist du sicher, dass es sich um ein Speicherleck handelt? Kann es nicht auch ein versehentliches mehrfaches Objekterzeugen sein? Speicherleck wäre schon hart und sicher eine Meldung an Sun wert.
    Das Ziel ist das Ziel.

  4. #4
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182
    Mittels jconsole kann man einen heap-dump machen, den man anschließend mit jhat analysieren kann.
    In 99,9% der Fälle sinds wirklich referenzen im eigenen Code welche java daran hindern des zeugs wegzuräumen
    Geändert von Lin728 (21-08-2017 um 15:14 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    10.03.2006
    Beiträge
    22

    Gelöst

    Ich hab das Problem behoben. Der Knackpunkt lag darin, dass ich dem Webservice-Aufruf ein AWT-Image übergebe. Das wurde dann nicht wieder von der Garbage-Collection beseitigt, weil scheinbar noch irgendwo Referenzen darauf waren (bei mir im Code jedenfalls nicht).
    Jetzt verschicke ich das Bild als Byte-Array und die ganze Sache funktioniert. Trotzdem Danke an alle, die geantwortet haben.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •