Socorro sessao. com mt objs ! mt modificações! help?

4 respostas
rbroz85

Boa tarde…

tenho uma app web…
e estou trab com listas, onde essas listas podem ser filtradas, e inserir valor nela e salvar…
entao cada usuario presisa ter uma lista em sessao ! certo ???

duvida !!!
o manuseio dessa lista é pode ser feito varias vezes! filtrar. salvar. procurar, salvar… toda hora eu tenho que atualizar a sessao do cara !

Usuario u = (Usuario) theRequest().getSession().getAttribute(sessionUser);

 modifico o usuario aki e

theRequest().getSession().setAttribute(sessionUser,u);

é certo isso ? ficar settando varias vezes o atributo na sessao do cara ?
e trabalhar com listas grandes do tipo… hummm 2000 objstos por lista… na sessao do cara ? prejudicial ?

obrigado a todos
abs

4 Respostas

D

Cara não entendi o “porquê” de se colocar tantos objetos na sessão! Isto não deveria estar em um banco de dados?!

De qualquer modo, para melhorar performance, você poderia alterar o objeto já existente na sessão ao invés de criar um novo!

Espero ter ajudado. Até.

rbroz85

como altero o obt da sessao ?

atualmente estou fazendo assim:

Usuario u = (Usuario) theRequest().getSession().getAttribute(sessionUser);

 modifico o usuario aki e

theRequest().getSession().setAttribute(sessionUser,u);

,

porque de tantos objs… é que eu nao encontrei uma outra solução… pois eu tenho uma lista digamos de 3000 itens… e na pagina eu tenho 3 botoes que exibe partes da lista… exp: botao 1 exibe itens relacionados a veiculos… botoes 2 exibe itens relacionados a maquinas… e assim por diante…
e eu tenho um filtro. que modifica a lista.

se eu nao colocar essa lista em sessao. quando um usuario clicar em alguma lista. vai setar como lista atual. e se esse usuario fizer um filtro na lista… o o usuario em outra sessao vai ver a modificação da lista…

na verdade essa lista minha. é um formulario gigante, cada item tem um textfield. meu medo era de acontecer algum problema durante esse filtro e tals… por isso cooquei cada sessao com uma lista corrente !

agora nao sei se isso esta certo. e nao sei como posso fazer de outra forma !

grato

D

Com relação a alterar o objeto da sessão, é isso mesmo! Está certo. =]
Quando você dá um setAttribute na sessão você sobrescreve alguma referência que possa estar lá. Como você está sempre utilizando o mesmo objeto Usuário, não está criando novos, entende?

Agora… não dá pra ficar colocando listas na sessão! Muito menos manipulando-as. Já pensou se você tiver 100 usuários utilizando o sistema simultaneamente?! E se tiver 1000 usuários? A quantidade de objetos na memória seria enorme!!! Pense… 1000 com listas de 3000 registros serão 3.000.000 de objetos na memória!!!

Tenta pensar em uma solução mais intuitiva utilizando um banco de dados para armazenar estas listas dos usuários… e tenta utilizar uma solução mais dinâmica na camada de apresentação (tipo AJAX) para manipular as listas, alterando e recuperando somente os registros que você realmente necessita naquele momento!

Talvez fique um pouco mais lento, pelo fato dos constantes acessos ao banco, mas você não vai precisar de um webserver com 10Gb de RAM! =]

Espero ter ajudado. Até.

rbroz85

entendi sim !
mt obrigado… estou usando ajax tmb. o icefaces.
e sim estou usando banco de dados… pois e de la que minhas listas estao vindo…

e realmente… eu queria evitar a lentidao de acessos ao banco, colocando tudo em sessao!

eu teria que entao colocar a situação da lista em sessao entao… para quandomostrar a lista eu buscar de acordo com a situação atual da lista…

exp: se ela esta completa, se esta filtrada, qual a lista que esta mostrando.

pra so assim eu poder buscar no banco !

mas eu tenho uma intereção com essa lista… exp:
tenho colunas de valores anterior… que cada linha na tabeçla tem um botao pra passar pra o outro lado… e tem mais um botao que passa todos…
entoa eu tinha que exibir essas coisas sem alterar o valor atual ao mesno que tenha salvado…

bem fico mt grato pela ajuda, e vou procurar solucionar essa questao !

mt obrigado mais uma vez !

voce tirou todas minhas duvidas perante esse post… thanks

um abraço

Criado 25 de setembro de 2007
Ultima resposta 27 de set. de 2007
Respostas 4
Participantes 2