Limite da JVM (java heap space na exportação para excel/pdf/csv)

Qual é o limite máximo de memória que podemos setar na JVM?

Estou conseguindo no máximo 2536Mb:

JAVA_OPTS=?-server -Xms768m -Xmx2536m?

SO - Ubuntu 64 bits / 6Gb Ram

Não dá pra aumentar mais que isso?
O SO me limita?
Como sair desse problema?

São relatórios gerados e que possuem uma grande massa de dados.

Agradeço a ajuda de quem tiver alguma experiência com isso…
Obrigado desde já

Se seu sistema operacional é de 32 bits, então não adianta ter mais de 4Gb de RAM.
A quantidade máxima endereçável pelo sistema é 2^32-1 bytes, ou 4.294.967.295 bytes.

Como o java trabalha com sinal, não duvido que o limite máximo da VM seja metade disso.

A solução é trocar para um SO e uma VM de 64 bits.

Ainda assim, você precisaria ter um volume realmente gigantesco de informações para lotar esse relatório. Se nem isso está aguentando, seria bom rodar sua aplicação num profiler e descobrir porque a geração está consumindo tanta memória. Na maior parte das vezes é algum tipo de erro bobo de programação.

Kra, me desculpe enganei a máquina é 64 bits.

E nesse caso, com 64?

O problema é o usuário querer tirar relatórios de 10 anos, dá cerca de 600.000 linhas na displaytag…

Gera o relatório anual. ex: 2010, 2009 … 200N

então te aconselho a fazer paginação…

exacto…
sem paginação é impossivel trabalhar com grandes quantidades de dados, imagina a base de dados com o nome de todos os habitantes do Brasil, carregados na memoria da java virtual machine…
nem o servidor dos aligenuas ( ET ) iria aguentar isso

Pessoal, boa tarde!

Preciso de mais uma dica com relação a paginação aqui:

A paginação na displaytag foi resolvida utilizando ajax.

Agora, na hora de exportar para csv, excel, pdf o java tem que trazer os dados do banco de uma vez para exportar, não é?

Para exportar está dando java heap space de novo…

Como faço nesse caso?

Mais informações sobre esta dúvida: http://forum.mentaframework.org/posts/list/2514.page

Abraço e obrigado desde já.