Java Heap-Speicher Ausnahme, mit großer Datenmenge, jede Lösung?
-
30-09-2019 - |
Frage
Ich habe ein litle großes Problem mit Java-Heap-Speicher Ich versuche, aus Oracle-Datenbank 11g Access-Datei 2007
zu migrierenDies ist kein Problem, unter 65,000 Aufzeichnungen, jetzt von dort ... Die aplication wirft Ausnahme Java Heap, der Speicherverbrauch erzieht über 600m und die CPU-Auslastung über 50% bis zum exeption.
Soweit ich das rset.next wissen () nicht alle Daten erhalten (über 50 colums x 65000 Reihe), aber einige Aufzeichnungen x Zeit Ich habe versuchen Satz holen Größe, es ist nichts passiert
rset.setFetchSize(1000);
Ich habe meinen Code löschen und zeigt einen Ausgang, denselben Fehler
while (rset.next()) {
if (cont % 5000 == 0) {
System.out.println(cont + " proccesed and counting ...");
}
}
Bitte geben Sie nicht mir die Antwort der Verwendung -xm (s, x) 512, 1024, etc ... dies gelöst konnte, nicht in meinem besonders Fall (ich habe tryied diese noch höher xD, nichts geschieht zu setzen, ich habe die gleiche Ausnahme bei 65,000 Aufzeichnungen auch)
Gibt es andere Optionen ich versuchen könnte ?? meaby einige Treiberkonfigurationen oder String conections Ändern ?? bitte Hilfe
Entschuldigung aboubt mein Englisch
Das ist meine Verbindung:
Class.forName("oracle.jdbc.driver.OracleDriver");
this.conn = DriverManager.getConnection("jdbc:oracle:thin:@" + getServer() + ":1521:orcl", getUser(), getPassword());
this.stmt = this.conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_UPDATABLE);
Lösung
Es sieht aus wie das Problem ist, dass Sie eine rollbare ResultSet verwenden und mit mehr Speicher verwenden wird.