Ohne Böse zu sein, dass das doc.recycle() fehlt, habe ich schon geschrieben, aber leider ist machineslave nicht darauf eingegangen, wie auch auf die meisten anderen Hinweise von mir. Aber na ja, vielleicht hilft es ja jemand anderen.
Grüße
Ralf
Ehm sorry... hatte ich vergessen zu erwähnen; das doc.recycle() ist ebenfalls eingefügt.
Am Errorhandling habe ich noch nichts gemacht, aber wenn er an irgendeiner Stelle auf die Nase fällt, dann bekomme ich doch zumindest die "wilden" Fehlermeldungen auf der Konsole und kann zumindest "ahnen", wo der Fehler ist.
Ich werd mal die Konfig bzgl. Speicher aktualisieren (JavaMaxHeapSize=512MB , JavaMinHeapSize=256MB)
Der Form halber ist hier nochmal die geänderte ImportColors Klasse:
public class ImportColors{
public int records;
public ImportColors (String system, String username, String password, String collectionName, Database db, String param) {
try {
DriverManager
.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
Connection connection = DriverManager.getConnection("jdbc:as400://"
+ system, username, password);
DatabaseMetaData dmd = connection.getMetaData();
// Execute the query.
Statement select = connection.createStatement();
String tableName = "SGEEANP";
System.out.println("SELECT * FROM "
+ collectionName + dmd.getCatalogSeparator() + tableName + " WHERE SEPARM='" + param + "'");
ResultSet rs = select.executeQuery("SELECT * FROM "
+ collectionName + dmd.getCatalogSeparator() + tableName + " WHERE SEPARM='" + param + "'");
int x = 0;
while (rs.next()) {
try {
Document doc = db.createDocument();
doc.replaceItemValue("Form", "SGSCLRP");
doc.replaceItemValue("SFSSEA", rs.getString("SESSEA"));
doc.replaceItemValue("SFYEAR", rs.getString("SEYEAR"));
doc.replaceItemValue("SFDIV", rs.getString("SEDIV"));
doc.replaceItemValue("SFSTYL", rs.getString("SESTYL"));
doc.replaceItemValue("SFSCLR", rs.getString("SESCLR"));
doc.replaceItemValue("SFCDSC", rs.getString("SECDSC"));
doc.replaceItemValue("param", param);
doc.save(true, false);
x = x + 1;
doc.recycle();
} catch (NotesException e2) {
e2.printStackTrace();
}
}
setRecords(x);
rs.close();
select.close();
connection.close();
connection = null;
DriverManager.deregisterDriver(null);
} catch (SQLException e) {
e.printStackTrace();
}
}
public int getRecords() {
return records;
}
public void setRecords(int records) {
this.records = records;
}
}
Gruß
Stefan