Session - Tamanho - Limitações - Performance

1 resposta
E

Pessoal,

Possuo uma aplicação JSF que armazena uma lista de objetos muito grande na sessao. Eu gostaria de saber se a sessão apresenta limitações de tamanho.
Alguem já passou por alguma situação semelhante?Como fez pra testar e verificar se a sessao consegue suportar uma enorme quantidade de dados.

Para se ter uma ideia minha lista possui 13.000 de um objeto que possuiu cerca de 100 atributos, 90% dessses atributos são do tipo String e estao preenchidos. Serializei o objeto e verifiquei que a lista possuia 8mb.

Grato

Erick

1 Resposta

eduveks

Bem… vou já dar uma resumida… vc esta vai matar a memória da instância da JVM do teu appserver.

Acompanha um raciocinio simples:
:arrow: O q são sessões!? É um recurso para guardar informação na MEMÓRIA do servidor associada a cada visitante(cada browser) ao site… se um cliente tiver o site aberto no Firefox e também aberto no Chrome, quantas sessões este cliente tem? Duas!
:arrow: As sessões tem um tempo de vida útil, alguns minutos normalmente, caso o cliente n volte a fazer mais nenhum request ao servidor passado X minutos os dados guardados no servdior daquela sessão são apagadas.
:arrow: Então imagina que no intervalo e 1 minuto 5 visitantes entram no teu site… vc vai ter 13.000 objetos com cerca de 100 atributos cada multiplicado por 5 VEZES!!!
:arrow: Se o servidor aguentar maravilha, mas se passado um tempo entrarem 25 visitentes no mesmo minuto!?

O teu servidor estará condenado a parar completamente a qualquer momento q houver um tráfego mais intenso!

Sessões servem para guardar o minimo de informação possível, e o q é minimo de informassão possível? Por exemplo um ID, um ou outro ID q a partir deste ID vc vai na base de dados e carrega o resto da informação… pense q se vc colocar apenas um número de ID na sessão a partir dai vc usando uma DB vc consegue pegar o resto q vc precisa.

É preferivel receber um recordset de 13.000 resultados da base de dados do que guardar este lixo em sessão, e certamente vc n precisa nem de 1% desta informação toda o tempo todo…

Se isto for uma listagem, use paginação! E carregue apenas os dados de cada página de cada vez, nunca tudo.

Vc esta fazendo um site lento, que vai usar toda a memória do servidor, e que vai passar a vida caindo… é mais ou menos isto… :wink:

Criado 26 de agosto de 2010
Ultima resposta 26 de ago. de 2010
Respostas 1
Participantes 2