Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vergil

[Resolvido] Conexão Java - Servidor de banco de dados

Recommended Posts

Tenho uma aplicação desktop que se comunica com um banco de dados do MySQL. Estava fazendo uns testes na minha aplicação e tive a idéia de eliminar minha conexão durante a execução do programa. Enquanto o programa estava rodando eu abri o prompt do MySQL e executei um kill connection id. Como era de se esperar uma exceção foi disparada pela minha aplicação. O problema é que eu não sei como prever essa situação. A excessão disparada é a "java.net.SocketException". Eu já pensei em verificar se o objeto Connection estava fechado com o método Connectio.isClosed(), mas o método retorna false porque a conexão não foi fechada na aplicação, e sim pelo programa externo. Não consigo utilizar um tratamento de excessão do tipo SocketException pois os métodos do ResultSet, Connection e PreparedStatement só aceitam java.sql.SQLException.

 

Se alguém tiver uma idéia eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

UP.

 

Tentei utilizar o comando autoreconnect=true na url do banco e também não funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o tratamento pela Exceção mais Genérica, ou seja Exception.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o tratamento pela Exceção mais Genérica, ou seja Exception.

Funciona, mas aí teria um problema. Se eu precisar capturar uma SQLException, não conseguirei. A minha idéia é fazer um tratamento específico para restaurar a conexão. Consegui solucionar o problema utilizando isso:

 

try {
	
} catch(com.mysql.jdbc.CommunicationsException ex) {

}

Quando dispara essa excessão eu sei que a falha foi no link (Socket).

 

Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.