Bom dia. Alguém sabe como eliminar esse tipo de erro em aplicações Java for Web(JSF) ?
Andei pesquisando na internet e fui sugerido a tentar o seguinte :
java-XX:MaxPermSize=128mpacote.MinhaClasse
para aumentar a área de memória de geração permanente, mas não acho que esta seja a solução mais indicada.
A minha aplicação está sendo desenvolvida usando arquitetura MVC, banco Oracle, ambiente de desenolvimento JSF + RichFaces e TopLink como camada de persitência.
Será que utilizar um SINGLETON em cada classe de controle para termos apenas um DAO instanciado seria uma boa idéia ?
Alguém poder me dar uma “luz no fim do túnel” ?
Agradece,
Poderia tentar utilizar a Máquina virtual da Oracle, JRockit…
J
juliocbq
O seu problema não está na jvm, está no seu software. Isso pode ser um leak consumindo espaço de memória. Dá uma olhada na jvisualvm. Essa ferramenta é ótima para otimizar software.
Infelizmente essa é a unica solução existente no presente momento. Esse é um problema inerente dos servidores JEE.
A Oracle prometeu solucionar esse problema (no Glassfish 3.1 acho) mas por enquanto o máximo que você pode fazer é
aumentar o MaxPermSize e reiniciar o seu servidor esporadicamente. Se o problema está no seu servidor de produção,
então você deve estar cometendo o mesmo que é cometido aqui onde trabalho, implanta-se uma nova versão dos aplicativos,
as vezes, 4 ou 5 vezes ao dia. Especialmente para aplicativos grandes isso ferra com o seu servidor. Se possível, procure uma
data fixa para implantar novas versões no seu servidor e o reinicie logo em seguida.