Дорогие все, я использую Java RMI для моей программы, со стороны клиента я вызываю мой интерфейсный метод, передавая один аргумент.Используя этот аргумент, интерфейс запускает запрос и возвращает 40000 строк (каждая строка содержит 10 строк) в результате. Все они хранятся в векторе внутри структуры вектора [[0,1,2,3,4,5,6,7,8, 9], [], [], [], [], [] ...].Это происходит, когда я нажимаю одну кнопку.Первый раз это работает, но снова я пытаюсь сделать то же самое (то есть, нажав кнопку). Он показывает java.lang.out исключения памяти на стороне клиента .Пожалуйста, помогите мне. Я использую Postgresql db.
Client side:
Vector data = new Vector();
data = Inter.getEndProductDetailsForCopyChain(endProductId);
Server side:
public Vector getEndProductDetailsForCopyChain(int endProductId1)
{
Connection OPConnect = StreamLineConnection.GetStreamline_Connection();
Vector data=new Vector();
try{
System.out.println("Before query data vector size>>>>>>>>"+data.size());//mohan
String sqlQry = "select distinct style_no,version_no,matNo,type,specs,color,size,ref_no,uom1 from garment where id=" +endProductId1;
System.out.println("sqlQry"+ sqlQry);
Statement st=OPConnect.createStatement();
ResultSet rs = st.executeQuery(sqlQry);
while(rs.next()){
Vector row = new Vector();
row.add(rs.getString("style_no"));
row.add(rs.getString("version_no"));
row.add(rs.getString("matNo"));
row.add(rs.getString("type"));
row.add(rs.getString("specs"));
row.add(rs.getString("color"));
row.add(rs.getString("size"));
row.add(rs.getString("ref_no"));
row.add(rs.getString("uom1"));
row.add(new Boolean(false));
data.add(row);
}
System.out.println("After query data vector size>>>>>>>>"+data.size());
}catch(Exception e)
{ e.printStackTrace();
closeConnection(OPConnect);
}
return data;
}
Я очистил все векторы и hashmap после завершения моего процесса, но все еще выбрасываю исключение Out of memory на стороне клиента, это происходит, когда отправляются данные (вектор результата запроса)на стороне клиента.