Excesso de conexões no banco de dados  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
hishin
Debugger

Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline

boa tarde.

tenho um programa de suporte técnico (helpdesk) aq na empresa onde trabalho que eu fiz. só que tenho um problema na minha conexão, toda vez que atendo um chamado novo, ele abre novas conexões no bd. Quando atendo muitos chamados, ele adiciona muitas conexões no banco de dados. Há mais um programa que compartilha o mesmo servidor, então acaba lotando o numero de conexões. Há alguma forma do meu programa gerar menos conexões?

Segue o código abaixo.



Aqui é uma tela do programa, eu estou chamando a minha classe de conexão.



Cada chamada dessa é uma conexão nova, é o que faz lotar o banco.


Agradeço a ajuda de todos.

Até mais


Open your mind, use open source.
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

a) Você criou o método desconecta, quem é que chama esse método? Quando ele é chamado?

b) Para esse tipo de problemas, é aconselhável usar pools de conexões. Só não se esquecer que, depois de usar uma conexão do pool, você deve fechá-la o mais rápido possível (ou seja, devolvê-la ao pool).
hishin
Debugger

Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline

Antes de mais nada, obrigado pela resposta. Vamos as respostas.

a) Então meu amigo, eu peguei esse código de uma video aula, sou meio iniciante ainda em java. O cara criou a conexão desconecta mas não ensinou a usar. Toda vez que fecho a conexão, dá pau no programa.

b) Ouvi falar de pool de conexão mas não sei usar ainda, poderia me indicar um link para eu dar uma estudada?

grato!

Open your mind, use open source.
AndreSorge
JavaBaby
[Avatar]
Membro desde: 26/05/2010 13:40:43
Mensagens: 82
Offline

Olá Boa Tarde, hishin

Eu colocaria a conexão em uma classe ConnectionFactory, sendo assim uma fabrica de conexões...



Colocaria no no contrutor da classe de manipulação a Conexão...sendo assim você não se preocupa em ficar instanciando a todo momento...



E na hora de manipular o metodo você já fecha a conexao após o uso...



Espero ter te ajudado...

abraços

Loading 99%.....
[Email] [MSN]
hishin
Debugger

Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline

orras!! terei que mudar todo o codigo, mas tentarei sim. vlw!

vo testar e depois eu posto aqui.

ate mais.

PS: Se alguem tiver mais idéias, posta ai.

Open your mind, use open source.
juliofsn
JavaEvangelist
[Avatar]

Membro desde: 21/11/2006 20:48:46
Mensagens: 311
Offline

hishin, você não pode manter as conexões abertas o tempo todo.

O correto é abrir a conexão, fazer a consulta, guardar os dados num objeto ou mesmo num List ou Map e fechar a conexão, e usar os dados vindos desse objeto, mas nunca manter a conexão aberta.

E um rápido aviso, o código do AndreSorge tem um problema, pois se ocorrer uma exceção a conexão não será fechada, então vai uma regra: sempre feche conexões no bloco finnaly

Que a Força esteja com Você!
hishin
Debugger

Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline

Então amigo, ouvi falar desse list, mas não sei como usar. acho que o que o AndreSorge é um list não é?

o que seria um Map?

vlw!!

Open your mind, use open source.
AndreSorge
JavaBaby
[Avatar]
Membro desde: 26/05/2010 13:40:43
Mensagens: 82
Offline

Opa pessoal é isso mesmo, desculpe fiz código na mão e acabei deixando de fora isso.....sempre finalize o bloco Try/cath com o finally bem lembrado pelo juliofsn

Abaixo segue um exemplo de um List



Espero ajudar....abraços a todos...

Loading 99%.....
[Email] [MSN]
hishin
Debugger

Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline

boa tarde!

vlw pelas respotas. Mas tenho um problema hehe.

Esse list eh um método nao é? então... ele dá erro qdo adiciono no meu código.

Esse aq é o método que criei baseado no q foi passado aq. Mas ele dá erro sozinho e fiz os imports que o netbeans pede.



oq está acontecendo?

vlw!!





Open your mind, use open source.
AndreSorge
JavaBaby
[Avatar]
Membro desde: 26/05/2010 13:40:43
Mensagens: 82
Offline

Manu, faz o seguinte tem como mandar o erro do List?

Você ta importando do java.util*
?


Loading 99%.....
[Email] [MSN]
hishin
Debugger

Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline

A mensagem de erro é: "missig return statement"

Gostaria de perguntar também onde são criados os métodos utilizados para popular o objeto (setId, por exemplo).

Obrigado pela ajuda.


Open your mind, use open source.
AndreSorge
JavaBaby
[Avatar]
Membro desde: 26/05/2010 13:40:43
Mensagens: 82
Offline

Opa vamos lá então....eu copiei o seu código e fiz em casa...olhá só....vamos tirar o bloco Finally por enquanto, pois ele tava dando erro aqui em casa também....aqui não deu esse erro que você disse manu....
olha só vou postar aqui 3 classes....ConnectionFactory....Contato....e ContatoDao...

ConnectonFactory


Contato

Você perguntou de onde veio o SetId e os Outro correto? Então e com eles os Set/Get que agente manipula as variáveis....
Entendeu?

ContatoDao


Se você copiar e colar desse jeito ele não deve dar erro nenhum....acabei de testar aqui em casa...copia e cola....não dando erro ou dando erro você posta que agente coloca o bloco finally e encerra a conexão e o ResultSet...

Vlw Abraços, posta ai o resultado.....

Obs.: Não se esqueça do Driver do MySql....

Loading 99%.....
[Email] [MSN]
AndreSorge
JavaBaby
[Avatar]
Membro desde: 26/05/2010 13:40:43
Mensagens: 82
Offline

Melhorando...

Sempre que você ultiliza o Try/Catch tem que ter o bloco Finaly...independente o que aconteça o bloco Finaly sempre será executado....


Loading 99%.....
[Email] [MSN]
hishin
Debugger

Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline

boa tarde.


Caro AdreSorge, muito obrigado pela sua ajuda.

Agora vamos aos detalhes hehe.

A classe deu certo, não aparece erro, porém.. como eu puxo os dados nos formulários? poderia me dar um pequeno exemplo? (se não for pedir demais )

Muito grato pela ajuda!!

até mais

Open your mind, use open source.
AndreSorge
JavaBaby
[Avatar]
Membro desde: 26/05/2010 13:40:43
Mensagens: 82
Offline

Esse form que você está falando seria o em que? Swing ou Web?

Você consegue popular os objetos?

Vamos ao um exemplo bem tosqueira....



Entendeu? Se ficou qualquer duvida, posta ai que eu tento te dar mais alguns exemplos....



Loading 99%.....
[Email] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team