Daniel Sousa

Um blog sobre tecnologia, internet, entre outros…

Navegando Posts marcados como OutOfMemoryException

Afim de possibilitar a geração de relatórios relativamente grandes, o JasperReports dispõe de um recurso chamado “virtualização”. Ao gerar um relatório utilizando virtualização, o JasperReports busca gerenciar melhor a memória RAM utilizada para geração do mesmo, tentando assim, eliminar um grande incômodo chamado “OutOfMemoryException: Java heap space”.

Existem 3 tipos de virtualização: JRFileVirtualizer, JRSwapFileVirtualizer, e JRGzipVirtualizer. Cada uma gerencia a memória de forma distinta, cabe ao desenvolvedor identificar a situação e a que melhor se adequar ao seu problema. Neste artigo, pretendo explicar o funcionamento de cada um deles.

continue lendo…

Como esse é um tema bastante procurado, escrevi um novo post com maiores detalhes sobre virtualização: http://bit.ly/aJYhV9

Quando tentamos gerar relatórios muito grandes com o JasperReport / iReport, é muito comum que aconteça erro de estouro de memória: OutOfMemoryException: Java heap space

Para contornar esse problema, podemos “virtualizar” a geração do relatório utilizando um parâmetro pré-definido do jasperReports: REPORT_VIRTUALIZER

Com isso, ao invés do Jasper tentar preencher o relatório totalmente utilizando a memória, para somente depois liberá-la, ele “gerencia” a memória, gerando uma parte do relatório, e passando essa parte para um arquivo de cache, depois volta a gerar outra parte, e assim por diante, até o término da geração.

//Cria uma conexão com o banco
conexao = Conexao.getConexao()
 
//Cria um cache no  C:\tmp
JRFileVirtualizer fileVirtualizer = new JRFileVirtualizer(3, "c:\\tmp");
 
//Seta o parametro REPORT_VIRTUALIZER com o diretório onde será armazenado o cache
HashMap parametros = new HashMap();
parametros.put(JRParameter.REPORT_VIRTUALIZER, fileVirtualizer);
 
//Preenche o relatório
JasperFillManager.fillReportToFile("MeuRelatorio.jasper", parametros,conexao)

Com isso, by by OutOfMemoryException…

Powered by WordPress Web Design by SRS Solutions © 2017 Daniel Sousa Design by SRS Solutions

Fatal error: Class 'OAuthSignatureMethod_HMAC_SHA1' not found in /home/danielsousa/www/wp/wp-content/plugins/twitter-tools/twitteroauth.php on line 62