Pessoal, estou tendo problemas com a estabilidade da conexão com o banco de dados. Depois de um tempo que a aplicação está rodando ela perde a conexão com o servidor do banco com o erro de "Broken Pipe". Isso ocorreu em todas as instalações que já fiz do BT, tanto num servidor JBoss quanto no Tomcat 6.
Abaixo segue a pilha de erros completa:
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:2616)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2547)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1512)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1622)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2376)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2297)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1860)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1705)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2213)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at br.gov.camara.negocio.DAO.obter(DAO.java:254)
at br.gov.camara.negocio.autenticacaoperfil.dao.UsuarioSistemaDAO.obterPelaChave(UsuarioSistemaDAO.java:264)
at br.gov.camara.negocio.autenticacaoperfil.facade.UsuarioSistemaFacade.obterPelaChave(UsuarioSistemaFacade.java:80)
at br.gov.camara.visao.autenticacao.sequencia.AutenticacaoSequencia.validarLogonEfetuarLogon(AutenticacaoSequencia.java:253)
at br.gov.camara.visao.autenticacao.action.AutenticacaoAction.execute(AutenticacaoAction.java:122)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
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 sigesp.comum.util.hibernate.HibernateServletFilter.doFilter(HibernateServletFilter.java:59)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at br.gov.camara.util.log4j.RequestInfoMDCFilter.doFilter(RequestInfoMDCFilter.java:83)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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)
Autor: Christian Cleber Masdeval Braz

44 comentários
----- Original Message -----
From: masdeval@yahoo.com.br
To: fabia@recife.pe.gov.br
Sent: Wednesday, October 14, 2009 10:05 AM
Subject: [Banco de Talentos Desenvolvimento ] Re: Res: Problema com Broken Pipe na conexão com o banco Forum: Banco de Talentos Desenvolvimento
Thread: Problema com Broken Pipe na conexão com o banco
Author: Christian Cleber Masdeval Braz
Posted: 2009-10-14 10:03:32.645279-03 Acho que resolvi o problema ativando a implementação de pool de conexões do hibernate. Basta incluir as seguintes linhas no hibernate.config.xml: net.sourceforge.jtds.jdbc.Driver
1
100
0
10
50
1 Att Christian Recebendo correspondência demais? Gerencie suas notificações em: www.softwarepublico.gov.br/notifications/manage
<Logger className="org.apache.catalina.logger.SystemOutLogger" verbosity="4" timestamp="true"/>
<Resource name="jdbc/talentos_datasource" type="javax.sql.DataSource" scope="Shareable" />
<ResourceParams name="jdbc/talentos_datasource">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select now()</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/talentos_database?autoReconnect=true&relaxAutoCommit=true</value>
</parameter>
<parameter>
<name>username</name>
<value>user_bt</value>
</parameter>
<parameter>
<name>password</name>
<value>senha_bt</value>
</parameter>
</ResourceParams>
</Context> Um abraço, Luciano.