Numero de conexoes com o banco  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
pauloperes
JavaEvangelist
[Avatar]

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
[Email] [MSN]
bruno_savi
JavaTeenager
[Avatar]

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
[WWW] [MSN]
Pedrosa
JWizard
[Avatar]

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.
pauloperes
JavaEvangelist
[Avatar]

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
[Email] [MSN]
pauloperes
JavaEvangelist
[Avatar]

Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline

Sabe como eu faço isto com spring?

Paulo
[Email] [MSN]
bruno_savi
JavaTeenager
[Avatar]

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
[WWW] [MSN]
pauloperes
JavaEvangelist
[Avatar]

Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline

Tempo realmente ta curto, rsrsrs

Paulo
[Email] [MSN]
pauloperes
JavaEvangelist
[Avatar]

Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline

Detalhe a aplicacao nao é Web

Paulo
[Email] [MSN]
Pedrosa
JWizard
[Avatar]

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

pauloperes
JavaEvangelist
[Avatar]

Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline

So para vcs entenderem melhor, segue minhas classes

Thread:


Paulo
[Email] [MSN]
Pedrosa
JWizard
[Avatar]

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.
pauloperes
JavaEvangelist
[Avatar]

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
[Email] [MSN]
Pedrosa
JWizard
[Avatar]

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?
pauloperes
JavaEvangelist
[Avatar]

Membro desde: 01/03/2005 11:45:20
Mensagens: 414
Offline

mantem as conexoes ativas certo? que mancada...

Paulo
[Email] [MSN]
pauloperes
JavaEvangelist
[Avatar]

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
[Email] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team