页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

(此文档仅供参考)

问题:


星环数据库执行SQL偶尔会报以下错误:

代码块
java.net.SocketException: Broken pipe (Write failed)

...


at smartbi.freequery.querydata.store.DBSQLResultStore.executeInDatabaseInner(DBSQLResultStore.java:1678)

...


at ...(...)

...


at smartbi.freequery.querydata.store.DBSQLResultStore.runRawSQL(DBSQLResultStore.java:3866)

...


Caused by: java.sql.SQLException: org.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe (Write failed)

...


at org.apache.hive.jdbc.HiveStatement.executeInternal(HiveStatement.java:325)

...


at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:419)

...


at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:598)

...


at org.apache.hive.jdbc.HivePreparedStatement.executeQuery(HivePreparedStatement.java:572)

...


at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)

...


at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)

...


at smartbi.freequery.querydata.store.DBSQLResultStore.runRawSQL(DBSQLResultStore.java:3866)

...


at smartbi.freequery.querydata.store.DBSQLResultStore.executeInDatabaseInner(DBSQLResultStore.java:1449)

...


at smartbi.freequery.querydata.store.DBSQLResultStore.executeInDatabase(DBSQLResultStore.java:1361)

...


at smartbi.freequery.querydata.store.DBSQLResultStore.ensureGridDataInMemDB(DBSQLResultStore.java:4560)

...


at smartbi.freequery.querydata.store.DBSQLResultStore.getGridDataInternal(DBSQLResultStore.java:3951)

...


at smartbi.freequery.querydata.store.SQLResultStore.getGridData(SQLResultStore.java:156)

...


at smartbi.freequery.report.SimpleReportBO.getGridDataInternal(SimpleReportBO.java:1010)

...


at smartbi.freequery.report.SimpleReportBO.getGridData(SimpleReportBO.java:986)

...


at smartbi.freequery.client.simplereport.ClientReportService.getReportDataInPage(ClientReportService.java:793)

...


at smartbi.freequery.client.simplereport.ClientReportService.getReportDataWithFutureInPage(ClientReportService.java:870)

...


at smartbi.freequery.client.simplereport.ClientReportService.getReportDataWithFuture(ClientReportService.java:842)

...


at sun.reflect.GeneratedMethodAccessor774.invoke(Unknown Source)

...


at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

...


at java.lang.reflect.Method.invoke(Method.java:606)

...


at smartbi.framework.rmi.ClientService.execute(Smartbi:118)

...


at smartbi.framework.rmi.RMIServlet.processExecute(RMIServlet.java:204)

...


at smartbi.framework.rmi.RMIServlet.doPost(RMIServlet.java:148)

...


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

...


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 smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:138)

...


at smartbi.extension.ExtensionFilter$1.doFilter(ExtensionFilter.java:127)

...


at smartbi.extension.ExtensionFilter.doFilterInternal(ExtensionFilter.java:150)

...


at smartbi.extension.ExtensionFilter.doFilter(ExtensionFilter.java:53)

...


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

...


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

...


at smartbi.framework.rmi.TransactionFilter.doFilter(Smartbi:97)

...


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

...


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

...


at smartbi.freequery.filter.GZIPFilter.doFilter(GZIPFilter.java:111)

...


at smartbi.freequery.filter.Filter.doFilter(Filter.java:36)

...


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

...


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

...


at smartbi.freequery.filter.CheckIsLoggedFilter.doFilter(CheckIsLoggedFilter.java:135)

...


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

...


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

...


at smartbi.freequery.filter.TraceFilter.doFilter(TraceFilter.java:59)

...


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.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2492)

...


at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)

...


at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)

...


at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

...


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

...


Caused by: org.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe (Write failed)

...


at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:147)

...


at org.apache.thrift.transport.TSaslTransport.flush(TSaslTransport.java:500)

...


at org.apache.thrift.transport.TSaslClientTransport.flush(TSaslClientTransport.java:37)

...


at org.apache.hadoop.hive.thrift.TFilterTransport.flush(TFilterTransport.java:77)

...


at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:65)

...


at org.apache.hive.service.cli.thrift.TCLIService$Client.send_ExecuteStatement(TCLIService.java:251)

...


at org.apache.hive.service.cli.thrift.TCLIService$Client.ExecuteStatement(TCLIService.java:243)

...


at org.apache.hive.jdbc.HiveStatement.executeInternal(HiveStatement.java:322)

...


... 63 more

...


Caused by: java.net.SocketException: Broken pipe (Write failed)

...


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

...


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

...


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

...


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

...


at java.io.BufferedOutputStream.write(BufferedOutputStream.java:121)

...


at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:145)

...


... 70 more

解决方案:

       此报错是由于数据库服务器端会定时断开连接,而数据源设置"获取连接时测试"、"返还时测试"、"获取、返还连接时测试"方式,并没有设置校验语句导致,关于连接池、校验方式、校验语句的逻辑如下:

...