Erro em consultas no banco de dados

7 respostas
L

Eu sou iniciante na área de Java Web e fiz o curso FJ21 da Caelum. Estou desenvolvendo um sistema bem básico para a empresa onde eu trabalho. Estava tudo dando certo até eu transferir o banco de dados local da minha máquina para o servidor da UOL. Quando faço várias consultas, ou fico muito tempo sem acessar, apresenta o seguinte erro abaixo. De acordo com o erro, coloquei a propriedade autoReconnect = true, o problema parece que tinha sanado, mas voltou a persistir. Espero que possam me ajudar. Desde já, agradeço!!!

GRAVE: Servlet.service() for servlet [springmvc] in context with path [/projeto-integra] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 715.184 milliseconds ago.  The last packet sent successfully to the server was 715.247 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.] with root cause
java.net.SocketException: Connection reset by peer: socket write error
	at java.net.SocketOutputStream.socketWrite0(Native Method)
	at java.net.SocketOutputStream.socketWrite(Unknown Source)
	at java.net.SocketOutputStream.write(Unknown Source)
	at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
	at java.io.BufferedOutputStream.flush(Unknown Source)
	at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3731)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2512)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1966)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
	at br.com.integra.cursos.dao.JdbcUsuarioDao.existeUsuario(JdbcUsuarioDao.java:42)
	at br.com.integra.cursos.controller.LoginController.efetuaLogin(LoginController.java:43)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:748)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:833)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1139)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)

7 Respostas

peczenyj

vejamos o erro:

Request processing failed; nested exception is java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 715.184 milliseconds ago. The last packet sent successfully to the server was 715.247 milliseconds ago. is longer than the server configured value of ‘wait_timeout’. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property ‘autoReconnect=true’ to avoid this problem.

aparentemente o seu servidor perdeu conexão com o banco de dados e não soube reconectar ou vc tem um valor para o wait_timeout muito baixo.

verifique como vc esta conectando e como vc esta especificando o timeout ( talvez vc esteja usando um valor padrão )

perceba que a sua string de conexão com o banco de dados é estilo uma url e vc pode fazer algo como

“string original?autoReconnect=true”

ou

“string original?opções&autoReconnect=true”

L

Ok, vou tentar isso, mas em relação ao timeout, eu não tenho a mínima noção como se configura isso. Sou iniciante. Tem só dois meses que estou estudando isso. Muito obrigado pela ajuda!!!

L

No caso, minha string é essa "“jdbc:mysql://integraeduca.mysql.uhserver.com/integraeduca?autoReconnect=true”. Como faço pra implementar essa parte que você falou?

L

“string original?autoReconnect=true”

ou

“string original?opções&autoReconnect=true”

ahhhhhhh entendi hehehehe

L

autoReconnect=true, eu já tinha testado
agora opções&autoReconnect=true, apresentou o seguinte erro

Caused by: org.xml.sax.SAXParseException; lineNumber: 28; columnNumber: 111; A referência à entidade “autoReconnect” deve terminar com o delimitador ‘;’.

peczenyj

Não po, no caso de vc ter outras coisas na query ( depois do ? )

L

Até agora, não consegui resolver esse problema!!!

Criado 31 de julho de 2018
Ultima resposta 1 de ago. de 2018
Respostas 7
Participantes 2