OutOfMemoryError

9 respostas
F

Oi, galera!

Se puder me ajudar, estou tentando gerar um relatório com o iReport a partir de uma consulta sql e dependendo da quantidade de dados me é apresentado o erro OutOfMemoryError.

Alguém de vcs saberia como me ajudar?

9 Respostas

mcampelo

Você já tentou startar a sua aplicação utilizando os parâmetros -Xms e -Xmx?

http://blogs.sun.com/roller/resources/watt/jvm-options-list.html

F

Mas como farei isso?

estou utilizando o JBoss 3.2.6 por dentro do eclipse 3.0.

T

Para passar parâmetros -Xmx e
-Xms para o Eclipse é necessário modificar o "shortcut’ que inicia o Eclipse. Em vez de simplesmente ter algo no seu shortcut como

C:\java\eclipse\eclipse.exe

você deve fazer algo como:

C:\java\eclipse\eclipse.exe -vm c:\j2sdk1.4.2_06\jre\bin\javaw.exe -vmargs -Xmx512m

por exemplo. (-vm é o nome do seu java.exe ou javaw.exe, -vmargs são as opções que serão repassadas ao java.exe ou javaw.exe.

Não sei como é em Linux, mas não deve ser muito diferente.

F

Mesmo startando com estes parametros a aplicação continua a gerar o OutOfMemoryError.

Rafael_Steil

Qual eh a quantidade de dados? 1gb?

Rafael

F

Deve dar aproximadamente 300MB.

mcampelo

Qto vc tem de memória nessa máquina?

Rafael_Steil

Bom, se ta dando OOM, eh pq vc esta tentando buferizar mais dados que o suportado pela ram configurada para o container.

Passe -Xms400m, alem do -Xmx512m

Rafael

F

Mesmo setando o maximo de memória da máquina continuo tendo este problema.

A exceção esta sendo gerada quando o aplicativo entra na seguinte linha de comando:

//arq = arquivo .jasper;
//parametros = HashMap com o titulo e o arquivo de imagem da logo 
//do relatório;
//datasource = JRResultSetDataSource com o ResultSet da pesquisa
JasperPrint jp = JasperFillManager.fillReport(arq, parametros,datasource);

Acho que erro esta sendo gerado pq o jasper esta armazenando todo o objeto que ele gera para o relatório na memória. Sendo assim acho que a solução seria fazer com que o jasper fosse imprimindo parte do relatório por vez e não o relatório inteiro como ele faz, mas essa solução eu realmente não sei como implementar, se vcs puderem ajudar…

Criado 15 de dezembro de 2004
Ultima resposta 16 de dez. de 2004
Respostas 9
Participantes 4