java.sql.SQLRecoverableException: IO Error: Connection reset error
当应用程序正在运行时,在一定时间间隔后,读/写 SQL 查询将由于 java.sql.SQLRecoverableException: IO Error: Connection reset 错误而失败。
症状
以下是堆栈跟踪的示例:2017-12-06 20:02:49,711 [sch_worker_0] ERROR
com.ibm.ccd.common.db.Query JOB_ID:2203- CWPCM0040E:The query
failed : [ Static Query [name:
GEN_DOC_DHI_DOC_HIERARCHY_GETBYPATH]
[id: 681]
SELECT *
FROM tdoc_dhi_doc_hierarchy
WHERE dhi_cmp_id = 1
AND dhi_doc_path = '/scripts/reports/Matt report'], Exception:IO Error: Connection reset
java.sql.SQLRecoverableException: IO Error: Connection reset
at
oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:790)
at
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:925)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1111)
at
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798)
at
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:4845)
at
oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1501)
at
org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:83)
at
org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:83)
at com.ibm.ccd.common.db.Query.execute(Query.java:982)
at com.ibm.ccd.common.db.Query.execute(Query.java:858)
at com.ibm.ccd.common.db.Query.execute(Query.java:824)
at com.ibm.ccd.common.db.Query.execute(Query.java:806)
at
com.ibm.ccd.common.gendb.GenDocDhiDocHierarchyTable.getByPath(GenDocDhiDocHierarchyTable.java:615)
at com.ibm.ccd.docstore.common.Doc$3.run(Doc.java:423)
at
com.ibm.ccd.common.context.common.DBContext.runInNewDBContext(DBContext.java:1392)
at com.ibm.ccd.docstore.common.Doc.get(Doc.java:418)
at
com.ibm.ccd.docstore.common.DocStoreMgr.get(DocStoreMgr.java:67)
at
com.ibm.ccd.docstore.common.DocStoreMgr.get(DocStoreMgr.java:62)
at
com.ibm.ccd.docstore.common.DocStoreMgr.get(DocStoreMgr.java:54)
at com.ibm.ccd.report.common.Report.<init>(Report.java:105)
at
com.ibm.ccd.report.common.ReportMgr.buildReport(ReportMgr.java:64)
at
com.ibm.ccd.report.common.ReportMgr.buildReport(ReportMgr.java:79)
at
com.ibm.ccd.report.common.ReportMgr.getReportById(ReportMgr.java:106)
at
com.ibm.ccd.report.common.ReportExe.execute(ReportExe.java:97)
at
com.ibm.ccd.scheduler.threads.SchedulerThread.fuzaoRun(SchedulerThread.java:262)
at
com.ibm.ccd.common.util.FuzaoRunnableAdapter.run(FuzaoRunnableAdapter.java:54)
at
com.ibm.ccd.common.util.FuzaoThread.run(FuzaoThread.java:123)
Caused by: java.net.SocketException: Connection reset原因
连接复位,数据库连接脱落可受网络影响。解决问题
网络管理员可以检查以下内容:- 请检查是否存在可导致连接下降的负载均衡器或网关。
- 运行从应用程序服务器到数据库服务器的跟踪路由命令,以检查是否有任何中继段来自负载均衡。
- 使用针对 VLAN 或网络下的网关的 netstat -rn 命令来检查网络统计信息。