lug-dd@schlittermann.de writes:
Bau DOM aus. Nimm was anderes.
Du kennst Dich sicher besser mit dem XML-Kram aus, aber überall lese ich, daß DOM Speicherprobleme macht. Nimm' was anderes.
DOM hat soweit ich weiss keine Speicherprobleme im vorliegendene Sinne, es benötigt nur mehr Speicher als SAX, da das ganze XML-Objekt im Speicher vorgehalten wird. Es wird aber immer nur ein XML per SOAP an das Programm übergeben. Dann rödelt es und wenn fertig, dann das nächste XML. Meines Verständnisses nach sollte am Ende, wenn ich auch alles schon "geundeft" habe der allozierte Speicher für das nächste XML benutzt werden. Alle XMLs sind kleiner 100KB. Mit top kann man sehr schön sehen, wie der allozierte Speicher in so einem Lauf anwächst, dann gleich bleibt bis zu m nächsten Lauf. Und der alloziert frisch weiter. Möglicherweise wird die Anwendung die der SOAPserver bedient irgendwie nicht richtig beendet, oder der gc greift nicht oder wass weiss ich ...
Ja, wenn das Programm schon geht, ist es schwer, das umzubauen, ich weiß ...
Wenn ich ein XML gegen ein in ihm referenziertes Schema parsen will, bleibt nur der Einsatz eines "grossen" Parsers. Xerces bietet sich da an. Der kann SAX und DOM. Ich war froh das ich die DOM-Kacke halbwegs verstanden habe ... Umbau ist schlecht, weil 1. ich nicht weiss ob es was bringt, 2. die Anwendung bereits produktiv ist. Der Fehler wurde aber erst im Produktivsystem bemerkt, da hier das ganze erstmals über längeren Zeitraum mit vielen Daten laufen musste. Zum Glück gibts dafür einen extra Server und ich kann den ganzen Tag kontrollieren.
Fängt interessant an, ich lese ...
Mit freundlichen Grüßen
Jens Puruckherr