Escalabilidade - JSF, Hibernate, Spring e Tomcat 6  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
DirceuSobrinho
JavaChild
[Avatar]

Membro desde: 21/01/2007 08:49:02
Mensagens: 136
Localização: Maceió - AL
Offline

Olá, pessoal!

estou com probleminhas ao colocar minha aplicacao em ambiente de produção

e gostaria tb de algumas dicas para deixar minha aplicação mais escalavel.

1°. O problema: qdo poucos usuários estão utilizando o sistema desenvolvido simultaneamente, o acesso a banco de dados cai! como assim: as páginas que acessam o BD deixam de enviar resposta e aguardando-as eternamente, no entanto, as que não acessam BD continuam funcionando normalmente!

Reinicio o Tomcat e tudo volta a funcionar normalmente!

O que pode estar acontecendo?



OBS.: A grande maioria dos relacionamentos das entidades estão com Fetch.EAGER, pois dispara algumas excecoes de Lazy Initialization Exception mesmo utilizando o OpenSessionInView, e com o EAGER eu fujo deste problema!

ATT. Dirceu

This message was edited 2 times. Last update was at 10/07/2008 15:01:58

[MSN]
DirceuSobrinho
JavaChild
[Avatar]

Membro desde: 21/01/2007 08:49:02
Mensagens: 136
Localização: Maceió - AL
Offline

VENDO O LOG DO SERVIDOR WEB:


O QUE PODE ESTA CAUSANDO ISSO:

This message was edited 1 time. Last update was at 10/07/2008 15:04:03

[MSN]
ualex
JavaGuru

Membro desde: 26/08/2004 18:45:26
Mensagens: 226
Offline

vc ta usando um pool de conexão ? que problema estranho...

http://www.alexflorentino.com
DirceuSobrinho
JavaChild
[Avatar]

Membro desde: 21/01/2007 08:49:02
Mensagens: 136
Localização: Maceió - AL
Offline

Não estou nao

o hibernate.cfg esta configurado da seguinte forma:



Crio um pool?

This message was edited 1 time. Last update was at 10/07/2008 16:04:00

[MSN]
djemacao
Virtual Machine Man

Membro desde: 04/06/2007 17:47:24
Mensagens: 971
Offline

Crie um pool e coloque os relacionamentos em Lazy, pq da forma q está fazendo, não há servidor que resista.

"Quanto mais aprendo mais tenho consciência que nada sei."
DirceuSobrinho
JavaChild
[Avatar]

Membro desde: 21/01/2007 08:49:02
Mensagens: 136
Localização: Maceió - AL
Offline


Adicionei no hibernate.cfg.xml

Isso basta para criar um pool?

subi a aplicacao com essas alteracoes e vou aguardar qto tempo dura sem cair...

e aos vou tentar eliminar o Fetch.EAGER, subsitituindo por LAZY

...
Mais sugestões, sintam-se a vontade =)

Att. Dirceu
[MSN]
Rubem Azenha
Forum Spammer
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1799
Localização: São Paulo, SP
Offline

Putz, posta aí como ta o código do seu Filter pra funcionar o esquema do Open Session In View.



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
DirceuSobrinho
JavaChild
[Avatar]

Membro desde: 21/01/2007 08:49:02
Mensagens: 136
Localização: Maceió - AL
Offline

Aqui está!



Em algumas paginas, o openSessionInView está funcioando como esperado, nas que so tem <h:outputText>
ja nas que possuem <h:inputText> dispara a famosa: Lazy Initialization Exception
[MSN]
rafaelbnc
Thread.start()
[Avatar]

Membro desde: 09/01/2007 11:24:31
Mensagens: 33
Offline

Este problema também acontece comigo. Alguém conseguiu resolver?
O que eu faço é sempre que eu tenho que acessar uma coleção de um objeto eu tenho que dar um load nele pora evitar a Lazy Initialization Exception.
[Email]
DirceuSobrinho
JavaChild
[Avatar]

Membro desde: 21/01/2007 08:49:02
Mensagens: 136
Localização: Maceió - AL
Offline

rafaelbnc wrote:Este problema também acontece comigo. Alguém conseguiu resolver?
O que eu faço é sempre que eu tenho que acessar uma coleção de um objeto eu tenho que dar um load nele pora evitar a Lazy Initialization Exception.


Oi Rafael, com filtro OpenSessionInView, não precisei mais dar um load para evitar a LazyInitialization, no entanto, para que em requisições ajax, foi necessário alterar o filtro, ai peguei na net esse filtro que tá funcioando blz:



Espero que te ajude!!!

Att. Dirceu
[MSN]
rafaelbnc
Thread.start()
[Avatar]

Membro desde: 09/01/2007 11:24:31
Mensagens: 33
Offline

Cara vai ajudar muito sim, eu já tinha desistido desse problema mas acabei encontrando este teu post.
Eu não tinha percebido que o problema da LazyInitialization era por causa dos Ajax requests (RichFaces).
O problema é que eu não utilizo o Spring, eu implementei o meu próprio filtro, mas segue o mesmo estilo. MUITO obrigado me ajudou muito, pois como te disse eu sempre tinha que fazer um Load nos objetos o que acabava deixando o código um pouco confuso.
[Email]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team