Привет всем !!!!!
Имеется следующий код программы, которая делает выборку информации из таблицы, содержащей несколько миллионов записей
import java.sql.*;
...
Connection targetCon;
Statement targetStmt;
ResultSet targetRs;
...
targetCon = DriverManager.getConnection (targetURL,dbfInProperties);
targetStmt = targetCon.createStatement ();
targetRs = targetStmt.executeQuery("select * from table1");
while (targetRs.next()) {
//обработка записей
}
targetRs.close();
targetStmt.close();
targetCon.close();
...
При чтении в цикле записей (примерно несколько сот тысяч записей) задача "вылетает" с сообщением об ошибке
о нехватке памяти для приложения. Из этой ситуации удается выйти, если увеличить объем выделяемой памяти под приложение (параметр командной строки -Xmx256m). Однако, это не спасает ситуацию в принципе.
Получается, что все прочитанные записи ResultSet хранит у себя в памяти. Эта ошибка происходит со всеми серверами СУБД, используемые в проекте (MSSQL, Informix, DBF). (использование хранимой процедуры в данной ситуации не приемлемо).
Помогите разрешить эту проблемму !!!!!!!!!!!!!