out of memory em n-tier

Delphi

03/12/2008

Pessoal, estou passando pelo seguinte problema, em produção:

quando o sistema tem mais de 120 usuarios conectados e atinge um consumo de mais de 100 mb de memoria dá a exception out of memory, mesmo com mais de 2 gb livres no windows.

engraçado que essa exception está acontecendo somente em um metodo, que é chamado muitas vezes. Esse metodo aceita um integer como parametro, que é a foreign key, faz um select no servidor, poe os dados em um clientdataset e retorna o data desse clientdataset como variant, sendo que no cliente eu atribuo esse data a um clientdataset limpo e exibo os dados ao usuario.

depois dessa exception trava tudo. Como posso resolver esse problema? Fiz um teste com um programinha em delphi alocando 1 gb de memoria e tudo correu bem....



const
mega = 1024*1024;
var
i : Integer;
vetor: array[1..1024] of Pointer;
begin
Randomize;
for i := 1 to 1024 do
begin
//guardo o ponteiro em algum lugar
vetor[i] := AllocMem(mega);
//sujar um pouquinho a memoria
Integer(vetor[i]^) := Random(1024);
end;


Vitor Rubio

Vitor Rubio

Curtidas 0
POSTAR