# XML ( ca. 280 MB) JDom & SAXBuilder lesen = OutOfMemoryE



## Felix-the-Cat (14. Dez 2006)

Habe ein kleines Problemchen, doch dieses nervt mich ungemein.

Ich sollte ein ca. 280 MB - 300 MB grosses XML einlesen und im Oracle auf einzelne Tables schreiben.
Schön und gut, mit kleinen XML's kriege ich das hin aber bei dieser Grösse streich meine Umgebung.


```
try {
					Document _xmlRecSet = new Document();
					SAXBuilder builder = new SAXBuilder();
					_xmlRecSet = builder.build(inputFile);

					if (inputFile.getPath().equals(aPropertiesArgs.get("DescriptorXMLFileName"))) {
						Element _root = _xmlRecSet.getRootElement();

						// liste aller Records die im Recordset enthalten sind erstellen
						Iterator r = (_root.getChildren(DESCRIPTOR_RECORD)).iterator();
						while (r.hasNext()) {
							Element curRecords = (Element) r.next();

							// liste aller Elemente die in curRecord enthalten sind erstellen
							ArrayList _arrayOfAttrList = createDBRowsQualifier(curRecords);
		
                                                       ==> Start Unter Programm

                                                       Iterator e = (aCurRecords.getChildren()).iterator();
		                                       while (e.hasNext()) {
			                                       Element curElement = (Element) e.next();
			                                      // aufbereiten der Daten für die Tabellen
```

*Ergebnis:*
*java.lang.OutOfMemoryError*
*Exception in thread "main" *

*Nun meine Frage*, wie oder wo kann ich Einstellungen ändern oder im Code unterbringen damit ich meine Memory
Probleme gelöst kriege.   :###   

Schon mal vielen Dank für die Unterstützung.

LG Felix   ???:L


----------



## Wildcard (14. Dez 2006)

Mit Xmx als Paramter kannst du den Heap erhöhen.
Allerdings ist es meiner Meinung nach keine Lösung ein 300MB Monster komplett in den Speicher zu laden.
Da fragt man sich natürlich direkt wer 300 MB *XML* Dateien erzeugt  :shock:


----------



## Guest (15. Dez 2006)

Ich weiss, ist etwas ungewöhlich, es handelt sich dabei um medizinische Begriffe und zusammenhänge von MeSH.
Diese werden nun halt mal so für den Offline gebrauch geliefert.

Aber schon mal vielen Dank probiere es mal aus.

Felix


----------



## DP (15. Dez 2006)

jdom kann mit "großen" dateien (>3mb) nicht umgehen


----------



## Felix-the-Cat (19. Dez 2006)

Vielen Dank,

habe mein Problem mittels StAX gelöst gekriegt.
Nicht ganz so feudabel wie JDOM, aber ich habe da keine Probleme was die Grösse der Datei betriftt.
Eine lösung die so, für mich stimmt.

Gruss Felix 

 :###   ???:L   :toll:


----------

