OutOfMemory JSF

13 respostas
dahenz

Bom dia!!!

Tenho uma aplicação rodando em um servidor CentOS utilizando -Xms192m Xmx256m, com capacidade suficiente para suportar a aplicação… Acontece que quando tenho 3 ou 4 usuarios acessando simultaneamente, o sistema acusa OutOfMemory…

O que deve ser??? Estou utilizando scope Session para todas as telas… pode ser isso??? Obrigado…

13 Respostas

M

Um problema já foi detectado, na minha visão não se pode colocar tudo com scope session. tente identificar o que pode mudar de escopo

dahenz

Opa marcelo!!! Vou dar uma olhada nisso e testar o comportamento!!! valew…

Javabuntu

Além do scope session em tudo que é péssimo, verifique se o sistema possui muitas DataTable, essa costuma derrubar um sistema se não for utilizada um paginação por demanda, ou adequada para o sistema… na verdade uma única DataTable se tiver muitos registros e não der atenção devida, pode parar um sistema… já peguei um caso desse…

[]'s Hewerton Crisóstomo

dahenz

Como faço o controle de paginação de um DataTable??? Tenho várias que recebem valores de ArrayList, não existem tratamentos… no caso do scope, é necessário para todas as telas, por exemplo, eu utilizo muito listShuttle com coleções de informações que dependem do scope tipo session para funcionar adequadamente.

Mas a questão dos dataTables pode ser um fato… Obrigado javaUbuntu… e me ajude a fazer esse tratamento de paginação!! :slight_smile:

Javabuntu

dahenz:
Como faço o controle de paginação de um DataTable??? Tenho várias que recebem valores de ArrayList, não existem tratamentos… no caso do scope, é necessário para todas as telas, por exemplo, eu utilizo muito listShuttle com coleções de informações que dependem do scope tipo session para funcionar adequadamente.

Mas a questão dos dataTables pode ser um fato… Obrigado javaUbuntu… e me ajude a fazer esse tratamento de paginação!! :)

Sobre o esquema de paginação por demanda, passei alguns links neste post:

http://www.guj.com.br/posts/list/139863.java

[]'s Hewerton Crisóstomo

dahenz

Obrigado Hewerton!!!

Gostaria de saber se posso fazer os códigos que me passaste para funcionar com rich:scrollableDataTable?

Javabuntu

dahenz:
Obrigado Hewerton!!!

Gostaria de saber se posso fazer os códigos que me passaste para funcionar com rich:scrollableDataTable?

Sim, não há diferença na teoria, porém deverá fazer binding com um scrollable e não como DataTable comum…

Agora por outro lado, isso é apenas uma suposição que seu problema seja DataTable que esteja causando problema, pode ser muitos objetos em session. Para resolver isso, use alguma ferramenta de profile java e verifique onde está sendo alocado memória, que objetos estão sendo criados, onde está o gargalo da sua aplicação.

Eu acho esse muito bom, Lambda Probe .

Outros links a respeito de profile java:


http://www.eclipse.org/articles/Article-TPTP-Profiling-Tool/tptpProfilingArticle.html
http://jiprof.sourceforge.net/
http://www.ej-technologies.com/products/jprofiler/overview.html

[]'s Hewerton Crisóstomo

dahenz

Heverton, eu tenho uma tela que possui 7 listShuttle e uma scrollableDataTable , e essa tela tem q ficar com o escopo SESSION… como resolvo nesses casos???
Eu preciso das informações na mesma tela… isso é exigência aqui…

dahenz

Instalei o Lambda Probe no meu servidor… esta rodando tudo certinho… agora como faço para saber onde está o gargalo do meu sistema???

:slight_smile: obrigado

dahenz

Instalei o Lambda Probe no meu servidor… esta rodando tudo certinho… agora como faço para saber onde está o gargalo do meu sistema???

:slight_smile: obrigado

Giulliano

Experiência profissional minha:

Deixar os managedsBeans com escopo de Sessão não derruba um servidor (trabalhei em um sistema com mais de 200 managedsBenas todos em Sessão com vários acessos simultâneos).

O que pode estar acontecendo é que você esta abusando da memória carregando muitos dados…ou tem algum método em loop infinito…algum erro de código mesmo…

Derrubar a JVM não é fácil…requer um sistema muito violento.

dahenz

Giulliano… meus managed beans não estavam como Serializable, isso influencia???

dahenz

Giulliano… estou começando a entender… Não tem problema deixar o managedBean como escopo de sessão, contando que tire esse mb da sessão quando sair da tela…

Acho que é isso…

Criado 30 de setembro de 2009
Ultima resposta 1 de out. de 2009
Respostas 13
Participantes 4