JDBC driver / grosse Datenmenge
- Dieses Thema hat 0 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 15 Jahre, 4 Monaten von
Anonym.
-
AuthorPosts
-
30. April 2008 um 22:09 Uhr #2850
AnonymInaktivich verwende den db2 jdbc driver: COM.ibm.db2.jdbc.app.DB2Driver aus dem jar-files: db2jcc.jar und db2jcc_license_cu.jar
db2 version ist 8.1.in meiner applikation muss ich grosse mengen von daten (ca 10 tabellen mit durchschnittlich 500’000 – 1’500’000 datensätzen) innerhalb einem programmdurchlauf in neue tabellen kopieren / bzw bearbeiten und dann kopieren.
ich verwende vorwiegend prepared statements, die jeweils erst am schluss, bzw. nach dem abschluss eines zwischenschrittes geschlossen werden. auto-commit ist ausgeschaltet (Connection.setAutoCommit(false)), nach einigen 1000 bearbeiteten zeilen erfolgt ein manueller commit (Connection.commit()).
mein problem ist nun, dass ich nach einer bestimmten zeit jeweils eine outOfMemory-exception erhalte (heapspace ist bereits auf 1gb).
mittels eines profilers habe ich herausgefunden, dass zur laufzeit immer grösser werdende mengen objekte der klasse com.ibm.db2.jcc.a.h angelegt werden, die über 90% des heapspaces an platz einnehmen. "eigene" objekte brauchen kaum platz, und sind mit sicherheit nicht schuld an der verursachten outOfMemory-exception. anhand des von mir erstellten codes, kann ich nicht feststellen, wo diese objekte erstellt werden,meine frage: weiss jemand, um was für objekte es sich bei der angegeben klasse handelt? wie könnte ich dem exzessiven erstellen dieser objekte entgegenwirken?
um antworten, tipps, hinweise würde ich mich freuen!
danke für eure hilfe!
scholesy
-
AuthorPosts
You must be logged in to reply to this topic.