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?
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?
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
Mas como farei isso?
estou utilizando o JBoss 3.2.6 por dentro do eclipse 3.0.
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.
Mesmo startando com estes parametros a aplicação continua a gerar o OutOfMemoryError.
Qual eh a quantidade de dados? 1gb?
Rafael
Deve dar aproximadamente 300MB.
Qto vc tem de memória nessa máquina?
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
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…