| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 08:11:18
|
pauloperes
JavaEvangelist
![[Avatar]](/images/avatar/eab9c5e9815adc4c40a6557495eed6d3.png)
Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline
|
Ola a todos,
Tenho uma aplicacao que usa o Hibernate, no xml de configuracao configurei o c3p0 para trabalhar com o numero maximo de 60 conexoes, no banco a config esta para no maximo 100 conexões. Minha aplicação cria um pool de threads onde o tamanho deste pool é de 50, cada thread se conecta em um equipamento via telnet busca os dados e grava na base. O que eu acho interessante é que sempre tenho um valor entre 40 e 50 conexões telnet na minha maquina, porém quando listo as conexões abertas e estabelecidas na porta do postgresql esta com 126 conexões. Outro detalhe é que minha aplicação após um certo momento fica bem lenta onde a coleta dos dados é feita de forma bem insatisfatória, alguem sabe o que pode estar acontecendo?
|
Paulo
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 08:44:21
|
bruno_savi
JavaTeenager
![[Avatar]](/images/avatar/b750c583c4740415f8c803198ad9a318.png)
Membro desde: 02/11/2006 16:23:22
Mensagens: 183
Localização: São Paulo
Offline
|
Olá meu amigo o que está acotencendo é que ele não esta fechando as conexões com o banco de dados.
se o sistema for web vc pode dar uma olhada no pattern open session view
|
Bruno Savi |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 08:47:37
|
Pedrosa
JWizard
![[Avatar]](/images/avatar/2b763288faedb7707c0748abe015ab6c.jpg)
Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline
|
Já pensou em deixar essa parte burocrática para o Spring gerenciar?
Além de gerenciar suas conexoes ele também lida melhor com transações.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 08:47:53
|
pauloperes
JavaEvangelist
![[Avatar]](/images/avatar/eab9c5e9815adc4c40a6557495eed6d3.png)
Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline
|
Kra,
imaginei que poderia ser isto, entao no final de cada thread dei um close na session, porem aconteceu de eu receber o erro de que a minha conexao ja estava fechada, quando uma outra thread é executada
|
Paulo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 08:48:28
|
pauloperes
JavaEvangelist
![[Avatar]](/images/avatar/eab9c5e9815adc4c40a6557495eed6d3.png)
Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline
|
Sabe como eu faço isto com spring?
|
Paulo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 08:50:36
|
bruno_savi
JavaTeenager
![[Avatar]](/images/avatar/b750c583c4740415f8c803198ad9a318.png)
Membro desde: 02/11/2006 16:23:22
Mensagens: 183
Localização: São Paulo
Offline
|
dependendo do andamento que o projeto está, prazo custo e etc... não compensa tentar implantar um spring neste momento
utilize o filter do hibernate e depois pense numa solução melhor
https://www.hibernate.org/43.html
|
Bruno Savi |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 08:52:51
|
pauloperes
JavaEvangelist
![[Avatar]](/images/avatar/eab9c5e9815adc4c40a6557495eed6d3.png)
Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline
|
Tempo realmente ta curto, rsrsrs
|
Paulo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 08:53:15
|
pauloperes
JavaEvangelist
![[Avatar]](/images/avatar/eab9c5e9815adc4c40a6557495eed6d3.png)
Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline
|
Detalhe a aplicacao nao é Web
|
Paulo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 08:55:26
|
Pedrosa
JWizard
![[Avatar]](/images/avatar/2b763288faedb7707c0748abe015ab6c.jpg)
Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline
|
Basicamente vc vai ter as mesmas configurações do hibernate.cfg.xml no arquivo de configuração do Spring inclusive suporte a c3po:
De uma olhada na documentação a parte de integração com Hibernate:
http://static.springframework.org/spring/docs/2.5.x/spring-reference.pdf
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 09:08:36
|
pauloperes
JavaEvangelist
![[Avatar]](/images/avatar/eab9c5e9815adc4c40a6557495eed6d3.png)
Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline
|
So para vcs entenderem melhor, segue minhas classes
Thread:
|
Paulo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 09:23:53
|
Pedrosa
JWizard
![[Avatar]](/images/avatar/2b763288faedb7707c0748abe015ab6c.jpg)
Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline
|
Cara como esta o seu hibernate.cfg.xml?
Analisando o seu codigo para ajustar para o uso do Spring é tranquilo, vc usa o um DAO generico vc mata tudo em lugar só, na minha opinião vale a pena perder um tempinho agora e fazer a coisa nobre e evitar dores de cabeça lá na frente:
Por exemplo isso:
Vira:
No seu metodo vc anota que ele é uma Transação, simples assim, inversão de controle.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 09:34:05
|
pauloperes
JavaEvangelist
![[Avatar]](/images/avatar/eab9c5e9815adc4c40a6557495eed6d3.png)
Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline
|
hibernate.cfg.xml
Quando vc diz usar a anotação de transação, eu faco isto no meu método save do dao?
Outra coisa, com relação ao fechamento das sessões, preciso fazer na minha classe tread?
Att,
|
Paulo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 09:42:07
|
Pedrosa
JWizard
![[Avatar]](/images/avatar/2b763288faedb7707c0748abe015ab6c.jpg)
Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline
|
Não, vc anota o metodo que realmente é uma transação, no seu caso o por exemplo persistenceCards o save é do Dao.
O fechamento das conexoes fica para o Spring fazer debaixo dos panos.
Uma ourtra coisa que notei é que se der Exception vc nao faz rollback, e advinhe que faz isso para vc?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 09:50:57
|
pauloperes
JavaEvangelist
![[Avatar]](/images/avatar/eab9c5e9815adc4c40a6557495eed6d3.png)
Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline
|
mantem as conexoes ativas certo? que mancada...
|
Paulo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/11/2009 14:50:15
|
pauloperes
JavaEvangelist
![[Avatar]](/images/avatar/eab9c5e9815adc4c40a6557495eed6d3.png)
Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline
|
Aproveitando o topico acho que o meu pool de threads também está dando pau, vejam como esta:
|
Paulo
|
|
|
 |
|
|