Gute Morgen liebe Tutorialgemeinde,
ich möchte im folgenden Beitrag kurz auf meine Projekt eingehen an dem ich programmiere und was für Fehler dabei enstehen. Würde mich über Lösungen oder Ansatzhilfen freuen.
Zunächst möchte ich erwähnen das ich Server+CLient+Datenbank(MYSQL 5.0.22 ) Seitig arbeite also nach dem 3 Schicht Modell mit dem Jboss Server 1.4.0.2. Soviel sei nur dazu gesagt. Sollte eigentlich unrelevant zum folgenden Fehler sein:
Das Tool an dem ich arbeit ist ein Exporttool das anhand von gesetzter Filter eine Textdatei erstellen soll mit fest definierter Satzlänge. Soweit so gut, auf meiner CLientseite gibt es folgende Methode die Aufgerufen wird wenn der benutzer seine Filter gesetzt hat und auf erstellen geklickt hat:
Das Problem ist nun das ich diesen Fehler bei einer Anzahl >= 5000 bekomme : Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
Habe schon versucht den Heap Space mit -Xmx256 zu erhöhen aber das erscheint mir keine Dauerhafte Lösung bei so einer geringen Anzahl von Sätzen. Zudem dies ne zeit Funktioniert hat bei ungefähr 13.000 Sätzen aber nun auch nix bringt. Zugriffzeit von minimalen 26 sek und max über 30 Oo was mir schon sehr viel erscheint.
Würde mich freuen wenn ihr irgendein Hinweis auf eine Lösung habt.
ich möchte im folgenden Beitrag kurz auf meine Projekt eingehen an dem ich programmiere und was für Fehler dabei enstehen. Würde mich über Lösungen oder Ansatzhilfen freuen.
Zunächst möchte ich erwähnen das ich Server+CLient+Datenbank(MYSQL 5.0.22 ) Seitig arbeite also nach dem 3 Schicht Modell mit dem Jboss Server 1.4.0.2. Soviel sei nur dazu gesagt. Sollte eigentlich unrelevant zum folgenden Fehler sein:
Das Tool an dem ich arbeit ist ein Exporttool das anhand von gesetzter Filter eine Textdatei erstellen soll mit fest definierter Satzlänge. Soweit so gut, auf meiner CLientseite gibt es folgende Methode die Aufgerufen wird wenn der benutzer seine Filter gesetzt hat und auf erstellen geklickt hat:
Code:
public void erstelleAusgabeDatei() {
try {
//Erstellung eines FileWriters und BufferedWriter
ausgabeWriter = new FileWriter(ausgabeDatei);
ausgabeBuff = new BufferedWriter(ausgabeWriter);
// "daten" vom Datentyp ARRAY ist eine Instanz meine DTO Objekts
// instanceMzaw10Facade.Holen_MZAW10_Export ist eine Servermethode die anhand folgender Parameter die gewünschte Menge holt
daten = instanceMzaw10Facade.Holen_MZAW10_Export(
this.monathaelftenvon, this.monathaelftenbis,
this.IDErhebung, this.Aland);
//REST SELBSTERKLÄREND
AnzahlDatensaetze = daten.length;
if (daten != null) {
for (int i = 0; i < daten.length; i++) {
String EF10 = daten[i].getB_ef10();
if (EF10.length() < 15) {
int differenz = 15 - EF10.length();
for (int j = 0; j < differenz; j++) {
EF10 += " ";
}
}
....
// Zum Schluss setze ich die Abgefragten Felder zu einen String zusammen und schreibe diese in eine Datei.
String datensatz = EF10 + usw ...
ausgabeBuff.write(this.datensatz);
ausgabeBuff.newLine();
}
} else {
JOptionPane.showMessageDialog(null, "Keine Sätze vorhanden");
}
ausgabeWriter.close();
ausgabeBuff.close();
} catch (Exception e) {
System.out.println(e + "Fehler beim Erstellen der Ausgabedatei");
}
}
Das Problem ist nun das ich diesen Fehler bei einer Anzahl >= 5000 bekomme : Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
Habe schon versucht den Heap Space mit -Xmx256 zu erhöhen aber das erscheint mir keine Dauerhafte Lösung bei so einer geringen Anzahl von Sätzen. Zudem dies ne zeit Funktioniert hat bei ungefähr 13.000 Sätzen aber nun auch nix bringt. Zugriffzeit von minimalen 26 sek und max über 30 Oo was mir schon sehr viel erscheint.
Würde mich freuen wenn ihr irgendein Hinweis auf eine Lösung habt.
Zuletzt bearbeitet: