Java.net.SocketException: Broken pipe - Como resolvo?

7 respostas
dahenz

Bom dia!!

Tenho uma aplicação JSF que roda em um servidor linux CentOS comunicando com um banco MySQL em outro servidor linux, e todos os dias pela manhã, sou obrigado a reiniciar o tomcat pois ao executar a tela de login aparece essa mensagem:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: org.hibernate.exception.JDBCConnectionException: could not execute query

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

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

root cause
org.hibernate.exception.JDBCConnectionException: could not execute query

org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)

org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)

org.hibernate.loader.Loader.doList(Loader.java:2214)

org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)

org.hibernate.loader.Loader.list(Loader.java:2090)

org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)

org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)

org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)

br.com.eucatur.vieweb.dao.VersaoViewebDAO.getInformacoesSistema(VersaoViewebDAO.java:19)

org.apache.jsp.index_jsp._jspService(index_jsp.java:67)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

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

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

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

root cause

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Broken pipe

STACKTRACE:

java.net.SocketException: Broken pipe

at java.net.SocketOutputStream.socketWrite0(Native Method)

at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)

at java.net.SocketOutputStream.write(SocketOutputStream.java:136)

at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)

at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)

at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2690)

at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2619)

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

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

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

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

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:933)

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

at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)

at org.hibernate.loader.Loader.getResultSet(Loader.java:1778)

at org.hibernate.loader.Loader.doQuery(Loader.java:662)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)

at org.hibernate.loader.Loader.doList(Loader.java:2211)

at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)

at org.hibernate.loader.Loader.list(Loader.java:2090)

at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)

at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)

at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)

at br.com.eucatur.vieweb.dao.VersaoViewebDAO.getInformacoesSistema(VersaoViewebDAO.java:19)

at org.apache.jsp.index_jsp._jspService(index_jsp.java:67)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

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

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

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.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:263)

at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)

at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)

at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)

at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)

at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)

at java.lang.Thread.run(Thread.java:619)

** END NESTED EXCEPTION **

Last packet sent to the server was 0 ms ago.

com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2708)

com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2619)

com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1552)

com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)

com.mysql.jdbc.Connection.execSQL(Connection.java:2978)

com.mysql.jdbc.Connection.execSQL(Connection.java:2902)

com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:933)

com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1027)

org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)

org.hibernate.loader.Loader.getResultSet(Loader.java:1778)

org.hibernate.loader.Loader.doQuery(Loader.java:662)

org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)

org.hibernate.loader.Loader.doList(Loader.java:2211)

org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)

org.hibernate.loader.Loader.list(Loader.java:2090)

org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)

org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)

org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)

br.com.eucatur.vieweb.dao.VersaoViewebDAO.getInformacoesSistema(VersaoViewebDAO.java:19)

org.apache.jsp.index_jsp._jspService(index_jsp.java:67)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

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

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

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

[b]Então o sistema volta a funcionar bem até o dia seguinte!!![b]

O que pode estar ocorrendo??? Alguém já passou por isso???

Obrigado

7 Respostas

E

Dá a impressão que algumas conexões do pool de conexões ficaram inativas por muito tempo e foram interrompidas devido a inatividade.

Veja se há algum parâmetro na configuração do pool que lide com isso.

dahenz

humm vou dar uma olhada!!!

Utilizo hibernate… pode ser no framework???

Valew

E

Boa pergunta; não sei como está sua configuração e não tenho prática com esse tipo de configuração.
Só falo isso porque tem cheiro de conexão inativa por muito tempo.
Consulte a documentação do pool de conexões que foi usado na sua instalação.

dahenz

Andei dando uma lida sobre isso, e descobri algo sobre auto-reconnect … mas vou dar uma olhada com mais carinho sobre isso… valew

Tchello

Posta o seu persistence.xml ai.
Se houver tbm um ds.xml (nao necessáriamente com esse nome, sendo um data source) no deploy do seu servidor de aplicações poste-o tbm.
[color=red]Não esqueça de omitir senha e nome de usuário do seu SGBD caso haja.[/color]

dahenz

Segue abaixo a configuração do meu arquivo de propriedades do hibernate

MySQL

hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.dialect = org.hibernate.dialect.MySQLInnoDBDialect
hibernate.dialect = org.hibernate.dialect.MySQLMyISAMDialect
hibernate.connection.driver_class = com.mysql.jdbc.Driver

hibernate.connection.url = jdbc:mysql://iapetus/hconsorcios
hibernate.connection.username = javax
hibernate.connection.password = j@pp!h

Paulo_Silveira

Oi pessoal!

Discutimos bastante o mesmo problema aqui:
http://guj.com.br/posts/list/141603.java

Há tambem as configuracoes de solucao do C3P0 pro problema.

Criado 9 de outubro de 2009
Ultima resposta 19 de out. de 2009
Respostas 7
Participantes 4