Mittwoch, 9. September 2009

java.lang.outOfMemory und SAP Netweaver

Mich wollte neulich jemand davon überzeugen, dass die J2EE engine von SAP (EP 7.0 auf x64 VM von Sun) zwangsläufig crashed und restarted wird sobald sie auf einen OutOfmemory error läuft, weil Out of Memory Errors ja so schlimm, "da geht gar nix mehr!".

Ich musste richtig dagegen halten um ihn vom Gegenteil zu überzeugen (wahrscheinlich glaubt er es auch heute noch nicht), aber dem ist NICHT so.
  • Erstens weil wir hier ungefähr 10000 dieser OutOfMemory Errors sehen, wo definitiv nichts restarted wird
  • Zweitens, weil ein OOM eigentlich ein normaler Fehler ist, der (wenn er richtig behandelt wird) auch nicht zum Problem wird.

Es scheint irgendwie common sense zu sein, dass die halbe Welt glaubt dass man mit Java unbegrentzt Objekte zaubern kann - bei einem malloc in C/C++ muss doch auch darauf gefasst sein, dass man mal kein Memory mehr bekommt!

Naja, ich habe besagtem Kollegen dann versucht zu erklären dass es sein könnte dass ein Programm den Fehler berücksichtigt, die OOM Exception fängt und aufgibt. Danach kann der Garbage Collector dann aufräumen weil die Objekte nicht mehr referenziert werden. Die Antwort: *seufz* "OOM Errors kann man nicht fangen".

Lieber Senior Consultant (oder was-auch-immer Kollege), schau bitte hier und wirf deine alten Java Mythen über Bord. Wenn man keine Ahnung hat einfach mal...

http://www.velocityreviews.com/forums/t146111-catching-an-outofmemoryerror.html

http://www.google.de/search?source=ig&hl=de&rlz=&q=Java+Catch+out+of+memory+exception+&meta=lr%3D&aq=f&oq=

Keine Kommentare:

Kommentar veröffentlichen