привет разработчикам Java.(outofmemoryerror: java heap space) при повторении через записи оракула
У меня здесь проблема. У меня есть код, который получает набор результатов из базы данных оракула, печатает каждую строку в файле, затем получает следующую строку и продолжается до конца набора результатов.
Только это не то, что происходит. Что происходит, так это то, что он получает набор результатов, запускает итерацию по строкам, печатает в файл по мере его поступления, пока не закончится память - он требует, чтобы ему было больше места в куче java.
Приложение в настоящее время работает с 2 г памяти в куче, а код разбивается примерно на 150000-й строке.
Я использую jodbc6.jar и Java 6
Вот идея о том, что делает мой код:
Connection conn = DriverManager.getConnection(url,"name","pwd");
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(strSql);
String strVar_1 = null;
long lCount = 0;
while(rset.next()){
lCount++;
if (lCount % 100000 == 0){
System.out.println(lCount + " rows completed");
}
strVar_1 = rset.getString("StringID"); /// breaks here!!!!!!!!!
if (strVar_1 == null){
strVar_1 = "";
}
if (!strQuery_1.equals("")){
out.write(strVar_1 + "\n");
}
}
out.close();
Хорошо, попробуем и отправьте отчет (запрос занимает некоторое время, чтобы возвращать записи по всей сети) спасибо – rockit
Я понял, что ваш запрос возвращал довольно большое количество строк. Также, как примечание, вы также должны позвонить close на ResultSet, Statement и Connection. –
Я просто оставил его вне кода выше - спасибо – rockit