olá pessoal,
tenho uma aplicação web (a primeira) onde estou usando VRaptor.
acessando a aplicação, depois de algumas chamadas às lógicas, requisições, percebo q as respostas começam a ficar mais lentas e logo recebo esta exception, simplesmente pára de funcionar.
estou usando um amd turion 64 com 2GB RAM, não é problema na máquina.
podem me dar dicas para eu detectar esse problema por favor.
Realmente eh um problema grave de memória… 2GB e lotou tudo?? caralho…
uma dica, tente chamar o garbage colector System.cg()
ou então use um profiler pra detectar qual parte do seu código está consumindo tanta memoria assim…
eu uso o NetBeans com o plugin de Profiler, ambos vc encontra na página do NB
Evite utilizar System.gc().
Procure ver se os objetos que instâncias, logo que não use mais, tu os fecha. Conexões ao banco de dados, arquivos que abres etc, consomem uma memória razoável.
então, eu estou usando o hibernate para mapear no postgresql… funciona assim eu faço o login direto com o usuário do banco e utilizo ele em toda seção do usuário, então creio q a sessão do hibernate fique aberta.
seguinte pessoal, eu alterei os parâmetros da JVM no eclipse e funcionou, mas eu não sei até quando!
porém vou verificar com o profiler, pois acho q deve ter algum problema aí…
Opa!
Não sei se é o caso de você, mas reparei que no linux as vezes o Tomcat deixa uns processos [b]"zumbis"[/b] ocupando a memória quando você pára ou reinicia o tomcat.
Geralmente dá este erro aqui em um servidor com mais de um tomcat instalado (servidor de testes), depois que uma das aplicações fica no ar durante alguns dias ou é reiniciado muitas vezes.
Engraçado é que só acontece com o Tomcat 5.5, com o tomcat 4.0 acho que nunca vi este erro(as aplicações são as mesmas, porém com código "migrado" para poder rodar).
Claro que não descarto problemas no próprio código da aplicação (apesar que já verificamos exaustivamente o código).
Mesmo aumentando os paramêtros -[i]Xms[/i](start heap space) e -[i]Xmx[/i](maximum heap space) lá no [b]Catalina.sh[/b], as vezes ainda acontece.
Então eu geralmente mato os processos "java" sempre que reinicio o tomcat, aí funciona. Mas isso no meu caso, não sei se vai ajudar.
Em todos os casos, verificar o código usando um profiler deve ser sempre a primeira opção, pelo que andei lendo no fórum.
Abraço!