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…
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!!
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:
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.
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???
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???
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…