Desalocar memória depois de post

3 respostas
vitorisaia

Pessoal!
Eu tenho uma aplicação de upload de arquivos, que consiste em um applet que se comunica com um servlet atraves das classes do HttpClient… eu faço o upload em pacotes (100), ou seja, para realizar um upload de um arquivo são realizados 100 posts ao servlet. O problema é que, a cada post, a memória do servidor (JBOSS 4.0.3SP1 - Tomcat 5) aumenta de acordo com o tamanho do conteúdo do post, e ao final do upload a memória não é desalocada… então se eu fizer alguns uploads grandes, logo a memória chega ao seu limite e eu tenho um outOfMemory exception…
o servidor não deveria desalocar essa memória? existe alguma maneira de eu desalocar na mão? no final do doPost do servlet eu coloquei um System.gc() mas não fez nenhuma diferença…

Obrigado!
Vitor Isaia

3 Respostas

T

Esse é o tipo de coisa que só ocorre por algum motivo chato - por exemplo, você está usando um código-exemplo de alguém que, para simplificar, não chamou as APIs adequadas do pacote que faz o upload. Não é problema de garbage collection; é alguma referência que ficou presa (por exemplo, você amarrou os byte arrays recebidos em um hashmap).

vitorisaia

Pois é… só que eu fiz o código inteiro, garantindo que não existam referências perdidas em lugar nenhum. Mesmo que eu não faça nenhum processamento no servidor o problema persiste. Basta dar o POST.

T

Hum, já ouvi falar de um problema semelhante quanto ao uso do upload. Só não sei exatamente como foi resolvido.

Criado 5 de setembro de 2006
Ultima resposta 5 de set. de 2006
Respostas 3
Participantes 2