Java Heap Space-Error

Hallo Team,

sehr ärgerlich: Nachdem der Run über 6 Stunden gelaufen ist, kommt:

Der Flow steht dann auf
FEHLER

Letzte Meldung: Detected hanging flow (3987s): auto_restart_hanging

aber es geht nichts mehr. Ich weiß aus einem früheren Thread, daß das offenbar euer RAM ist, der voll ist - aber wieso geht er dann nicht irgendwann weiter? Das verunsichert kolossal, soll ich den Flow jetzt nochmal laufen lassen? Aber wer sagt dann, daß das Problem nicht wieder kommt?

Gruß Micha

Hallo Micha,
ich hatte das Problem auch schon. Nachdem ich konsequent die Caching Möglichkeiten der Steps eingesetzt habe wurde der Flow bei mir deutlich! schneller und ich bin nicht mehr in die Zeitspanne von 6 Stunden gelaufen. Ich hatte dann nur noch eine maximale Laufzeit von ca. 1,5 Stunden.
Vielleicht geht das bei Dir auch.

Gruß Dirk

Hallo Micha,

Ja, das ist korrekt. Wenn der Java heap Space Fehler kommt, ist das Speicherlimit erreicht. Das führt dazu, dass keine neuen Objekte erstellt werden können und in den meisten Fällen dazu das der Flowrun nicht weiterläuft („hängt“). Der Java Garbage Collector versucht nicht verwendete Objekte aufzuräumen. In einigen Fällen kann aber nichts mehr entfernt werden und der Flow hängt (für immer) fest. Die Ursachen dafür können vielfältig sein. Hier einige Beispiele:

  • gruppierte / sortierte Mapper Steps mit nicht aktivierten Cache Modus
    → bei gruppierten / sortierten Mapper Steps am besten den Cache Modus aktivieren, siehe auch Und wie wirkt sich das auf die Performance aus? (Teil 1)

  • Einige Steps sind sehr „speicherhungrig“, u.a der ExcelSheetUpdate Step oder auch der XMLReader. Wenn die Dateien sehr groß sind, kann das zu diesem Problem führen.
    Wenn es möglich ist dann den ExcelSheetUpdate durch den ExcelWriter oder CSVWriter Step ersetzen und große input Spreadsheets in getrennt Dateien schreiben.
    Bei großen XML Dateien den XMLSplitter verweden

  • Flows mit insgesamt sehr vielen Steps und entsprechend sehr vielen Step-Outputs die alle im Speicher gehalten werden müssen
    Wenn möglich Gruppen oder Steps pausieren oder Flow aufteilen

Falls das nicht hilft, kannst du auch gerne nochmal per Ticket schreiben und ggf. über den Flow schauen.

Viele Grüße
Torsten