Я пытаюсь заполнить список массивов типа tableList базой данных примерно с 12000 записями, а затем заполнить мою страницу jsp с помощью тега итератора struts, но при выполнении этого действия снова и снова jvm выходит из памяти, и, как я вижу, размер кучи продолжает уменьшаться каждый раз, когда я вызываю это действие со своей страницы. Я считаю, что пространство списка не освобождается всякий раз, когда создается новый экземпляр этого класса действий. Предложите решение этой проблемы. Я также запускаю tableList.clear ( ); в конструкторе класса
int records=0;
spl("BEFORE: "+run.freeMemory()+"-"+run.totalMemory()+"-"+run.maxMemory());//spl is for system.out.println and run is an object of Runtime class
while(resultSet.next())
{
records++;
if(!resultSet.getString("service_date").equals("N/A"))
{
serviceYear=resultSet.getString("service_date").split("-");
regnNumber=officeCode+"/"+resultSet.getString("serviceid_requested")+"/"+resultSet.getString("country_code")+"/"+resultSet.getString("service_file_srno")+"/"+serviceYear[2];
}
else
{
regnNumber=officeCode+"/"+resultSet.getString("serviceid_requested")+"/"+resultSet.getString("country_code")+"/"+resultSet.getString("service_file_srno")+"/0000";
}
tableList.add(new MISTable(regnNumber,resultSet.getString("given_name"),resultSet.getString("surname"),
resultSet.getString("nationality"),resultSet.getString("service_date"),resultSet.getString("service_expiry_date"),
resultSet.getString("passport_number"),resultSet.getString("passport_expiry_date"),resultSet.getString("visa_number"),
resultSet.getString("visa_expiry_date"),resultSet.getString("visa_type"),"")
);
}
spl("AFTER: "+run.freeMemory()+"-"+run.totalMemory()+"-"+run.maxMemory());