Jdbc mysql no chão

8 respostas
K

Senhores,

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:

STACKTRACE:

java.sql.SQLException: Communication link failure: java.io.IOException, underlying cause: Unexpected end of input stream

** BEGIN NESTED EXCEPTION ** 

java.io.IOException
MESSAGE: Unexpected end of input stream

STACKTRACE:

java.io.IOException: Unexpected end of input stream

Já li e disseram que existe uma versao ALPHA do jdbc/mysql que é estável, quase morri quando li isso. Alguém já passou por isso?

Abraços a todos.

8 Respostas

keller

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

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. :smiley:
Estou pra trocar o banco como o gui sugeriu :wink:

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

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. :wink:

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:

jdbc:mysql://hostName:3306/dbName?autoReconnect=true"

K

Maurício 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:

jdbc:mysql://hostName:3306/dbName?autoReconnect=true"

Eu já desisti deles. :frowning:

Vou tentar o que você falou.

Abraços

dezao

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…

Criado 5 de setembro de 2006
Ultima resposta 11 de set. de 2006
Respostas 8
Participantes 4