Estou me deparando com uma situação que não quer me deixar em paz.
Tenho uma aplicação muito simples, que faz uma consulta no mysql só que toda manhã a conexão não pode mais ser realizada.
Já fiz de tudo, até troquei SO, coloquei o servidor de BD na mesma maquina e o erro persiste. Estive lendo na net e o pessoal me disse que é um problema como driver jdbc do mysql que tem esse problema. O erro é o seguinte:
Existe a possibilidade de trocar de banco de dados?
Acredito que essa seja a solucao, talvez a aplicação
que tu desenvolveu ganhou um “corpo” muito mais forte
que o esperado , e o mysql nao está aguentando isso…
Fora isso tu pode tentar o driver jdbc do MySQL alpha que
tu ja mencionou… realmente uma situação complicada…
Espero que ajude em algo…
Até… :thumbup:
Mauricio_Linhares
Tem certeza que o problema é do mysql? Não é a sua aplicação que está deixando as conexões abertas ou mantendo conexões abertas por tempo demais até receber um timeout?
K
kuesley
Senhores,
Eu tenho uma aplicação bem maior funcionando bem com a mesma arquitetura de conexão só que no firebird (essa aplicação NUNCA parou).
Se alguém já passou por isso, ajudem um servo de Deus.
Estou pra trocar o banco como o gui sugeriu
Agradeço a todos pelas dicas.
Mauricio_Linhares
Que tal você explicar como funciona o modo de obtenção das conexões para a aplicação? Tá usando um data source? Tá usando um pool de conexões? As conexões estão sendo fechadas corretamente? Quem fecha? Quando fecha?
Não dá pra adivinhar o problema com tão pouca informação.
K
kuesley
Opa Mauricio entao vai lá.
Realmente eu vacilei, é por que esse erro acontece de qualquer forma:
usando data source (jndi)
hibernate
jdbc puro (pool de conexoes)
Por que o problema é no driver JDBC. Isso acontece até em host poderosos, se olhar nos logs, o que acontece é que eles reconectam toda hora. Inclusive isso acontece com um software que uso (XPlanner) analisando o log tenho o mesmo problema, a vantagem do xplanner é que ele tambem fica reconectando, por isso funciona bem.
Mesmo assim, eu faço a conexão usando ThreadLocal assim como mandam o pessoal do hibernate, e nunca esqueço de fechá-las.
Abração
Mauricio_Linhares
Então o pool está mantendo conexões inativas (ou problemáticas), dependendo do pool que você estiver usando, pode mandar ele testar se a conexão é válida antes de enviar ela pra aplicação.
Na época que eu tive o desprazer de lidar com uma aplicação na Locaweb, eu usava o driver do mysql passando o parâmetro autoreconnect=true, vê se isso resolve pra você. Um exemplo:
Então o pool está mantendo conexões inativas (ou problemáticas), dependendo do pool que você estiver usando, pode mandar ele testar se a conexão é válida antes de enviar ela pra aplicação.
Na época que eu tive o desprazer de lidar com uma aplicação na Locaweb, eu usava o driver do mysql passando o parâmetro autoreconnect=true, vê se isso resolve pra você. Um exemplo:
Olá, ainda tô aprendendo java e me deparei com o mesmo problema…
O estranho que conectando num banco remoto (com mysql 4), o código funciona certinho, mas quando vou fazer uma conexão local (com mysql 5) dá esse erro logo na conexão. Será que pode ser a versão do mysql ou alguma configuração diferente?? não tenho a mínima idéia por onde começar…