Erro de conexão com MySQL

3 respostas
L

Galera, possuo uma aplicação ServLet + mysql e estou tomando a seguinte exceção:

<blockquote>java.sql.SQLException: Communication link failure: java.net.SocketException, underlying cause: socket closed

** BEGIN NESTED EXCEPTION **

java.net.SocketException

MESSAGE: socket closed

STACKTRACE:

java.net.SocketException: socket closed

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(Unknown Source)

at java.io.BufferedInputStream.fill(Unknown Source)

at java.io.BufferedInputStream.read1(Unknown Source)

at java.io.BufferedInputStream.read(Unknown Source)

at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1385)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1532)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1923)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1163)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1272)

at com.mysql.jdbc.Connection.execSQL(Connection.java:2236)

at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1555)

at com.siemens.verificaTransf.enviaOs(verificaTransf.java:154)

at com.siemens.verificaTransf.doGet(verificaTransf.java:119)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at org.jstripe.tomcat.probe.Tomcat55AgentValve.invoke(Tomcat55AgentValve.java:20)

at org.jstripe.tomcat.probe.Tomcat55AgentValve.invoke(Tomcat55AgentValve.java:20)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

at java.lang.Thread.run(Unknown Source)

** END NESTED EXCEPTION **</blockquote>

Alguém ae sabe o que pode estar ocorrendo e como resolver isso?

Agradeço desde já.

3 Respostas

Grinvon

Pelo visto, ele não conseguiu estabelecer conexão por erro da rede. Então lá vai:

:arrow: O servidor do banco está em outra máquina? Portanto não é localhost?

Caso esteja em outra máquina, verifique se o PC está reconhecendo a máquina hospedeira do banco.

rockstorm

Só uma pergunta…você esta usando Tomcat e Hibernate (JPA)??

L

Grinvon:
Pelo visto, ele não conseguiu estabelecer conexão por erro da rede. Então lá vai:

O servidor do banco está em outra máquina? Portanto não é localhost?

Caso esteja em outra máquina, verifique se o PC está reconhecendo a máquina hospedeira do banco.

Grinvon, quando fiz esse teste o banco estava como localhost, e esse erro só apareceu quando eu fiz mais de uma requisição ao servlet, para tentar simular mais de um usuário da aplicação.

rockstorm:
Só uma pergunta…você esta usando Tomcat e Hibernate (JPA)??

Bom, primeiro eu tava criando a conexão com o banco sem nenhum framework de persistência, assim:

getClass().forName("com.mysql.jdbc.Driver").newInstance();

        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/<banco>", "<usuario>", "<senha>");

Ae quando essas exceções apareceram eu configurei um pool com o tomCat e Mysql. Ae em vez de aparecer esse erro monstruoso o log só me traz
isso: Operation not allowed after Resultset closed. O que me levou a crer que a conexão está sendo abortada enquanto eu percorro o Resultset.

Já não sei mas o que pode ser esse erro, já até troquei a versão do Connector/J (tava usando a 3.1… e troquei para a 5.1…) .

Criado 24 de novembro de 2008
Ultima resposta 25 de nov. de 2008
Respostas 3
Participantes 3