JDBC/Oracle Probleme

Hallo,

Ich habe für einen Kunden ein Finanz-Interface geschrieben, welches mittlerweile mehr als die verfügbaren Systemresourcen konsumiert. Die Hauptprobleme sind zB. Max Open Cursors reached, Max Extents of Temp TS oder auch JavaOutOfMemory.

Da die Struktur der Daten in der Datenbank (Oracle) und im Zielformat (XML) nicht unterschiedlicher sein können, habe ich als ersten Schritt mehrere Views erstellt, die quasi hierarchisch zueinander stehen - äquivalent zu der vorgegebenen Struktur des XML-Baumes.

Vereinfacht gesagt, wird mit Werten des ersten Views, der zweite View eingeschränkt abgefragt und durchgelaufen, mit den Werten des zweiten Views der dritte View eingeschränkt abgefragt und durchgelaufen und so weiter und sofort => verursacht viele offene Cursor und konsumiert viel Speicher.

Im Gegensatz zu JDBC bietet MSADO die Möglichkeit, RecordSets von der Datenbank zu trennen und lokal zu browsen bzw. zu Filtern.

-> Gibt’s für JDBC „Offline“-ResultSets oder ResultSetFilter?

-> …oder Design Patterns, die ähnliches beiten?

-> Hat jemand ähnlich Erfahrungen gemacht?

Schon mal Dank im Voraus - bin auf Eure Antworten gespannt!

VG, Stefan.

Morgen.

Bei so Problemen kommt doch wirklich Freude auf…
Unter http://www.entwickler-forum.de -> Datenbanken -> Oracle hatte die Suche nach ResultSets (anderer Begriff erfolglos) knapp 150 Beiträge ausgeworfen. Vielleicht ist hier was dabei ?
Davon mal abgesehen scheint das auch ein Problem (oder Feature ?) des JDBC-Treibers zu sein. Laut dem neuen ‚Server Magazin‘ lässt sich der neuste Treiber auch für Oracle >= 8.1.7 einsetzen. Aber ob der das Problem ist…?

HTH
mfg M.L.

***Werbung***
http://www.server-magazin.de
http://www.derentwickler.de
http://www.it-administrator.de

Hallo,

warum nutzt Du nicht die XML Funktionalität in der Datenbank?

Die MAX_OPEN_CURSORS kannst Du bei Oracle hochsetzen. Aber Dein Problem ist wohl eher die Abfrage. Versuch einen Join oder hol die Objekte nacheinander. Oder speicher sie in einer geeigneteren Zwischenstruktur.

Das Speicherproblem in Java kannst Du mit den X Optionen lösen (javac -h und dann gehts weiter). Wenn Du mehr Speicher brauchst als Du da allokieren kannst - dann ist Dein Programm WIRKLICH groß.

Gruß

Peter