Vergil 15 Denunciar post Postado Novembro 17, 2008 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
Vergil 15 Denunciar post Postado Novembro 20, 2008 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
sublyer 0 Denunciar post Postado Novembro 24, 2008 Faz o tratamento pela Exceção mais Genérica, ou seja Exception. Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Novembro 24, 2008 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