在性能测试的时候,用一个比较小的压力持续12小时运行,然后会在几个小时后突然所有案例都失败了;紧接着查看日志发现那些失败的案例都报同一个错:java.sql.SQLException: 关闭的连接;我怀疑是因为在测试的时候压力较小,数据源连接池使用的较小,然后空闲的较多,was在关闭那些空闲的连接池的时候,恰好有一些连接池被使用,所以导致报错。
还有一个疑问,会不会是因为防火墙,防火墙只开放了常用的那些端口,其余都是拒绝状态的。
以下是我的错误信息:
2017-05-04 07:59:12,078 com.dcsa.symbols.cbsd.tcpout.accessor.TcpMessageAccessor [pool-5-thread-7] (TcpMessageAccessor.java:212) ERROR --> 调用异常:
com.dcsa.symbols.cbsd.tcpout.accessor.AccessorException: TcpOut查询请求消息实体异常
at com.dcsa.symbols.cbsd.tcpout.accessor.TcpMessageAccessorImpl.ReadReqData(TcpMessageAccessorImpl.java:305)
at com.dcsa.symbols.cbsd.tcpout.accessor.TcpMessageAccessorImpl.doAccess(TcpMessageAccessorImpl.java:72)
at com.dcsa.symbols.cbsd.tcpout.accessor.TcpMessageAccessor.access(TcpMessageAccessor.java:209)
at com.dcsa.symbols.cbsd.tcpout.adapter.CBSDSocketMessageHander.DealMessage(CBSDSocketMessageHander.java:132)
at com.dcsa.symbols.cbsd.tcpout.adapter.CBSDSocketMessageHander.run(CBSDSocketMessageHander.java:59)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
at java.lang.Thread.run(Thread.java:773)
Caused by:
java.sql.SQLException: 关闭的连接
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:439)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:3046)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:2961)
at oracle.jdbc.OracleConnectionWrapper.prepareStatement(OracleConnectionWrapper.java:98)
at com.dcsa.symbols.cbsd.tcpout.accessor.TcpMessageAccessorImpl.ReadReqData(TcpMessageAccessorImpl.java:220)
... 7 more
2017-05-04 07:59:12,079 com.dcsa.symbols.cbsd.tcpout.accessor.TcpMessageAccessor [pool-5-thread-7] (TcpMessageAccessor.java:150) DEBUG --> JDBC rollback transaction...null
2017-05-04 07:59:12,079 com.dcsa.symbols.cbsd.tcpout.accessor.TcpMessageAccessor [pool-5-thread-7] (TcpMessageAccessor.java:158) ERROR --> JDBC rollback transaction error...
com.dc.datastore.PMException:
ErrorCode:[system.pm.LocalTransactionNeedRollback]
ErrorMesg:[???zh_CN.system.pm.LocalTransactionNeedRollback???]
com.dc.datastore.PMException:
ErrorCode:[system.pm.LocalTransactionNeedRollback]
ErrorMesg:[???zh_CN.system.pm.LocalTransactionNeedRollback???]
at com.dc.datastore.DataStore.rollback(DataStore.java:288)
at com.dcsa.symbols.cbsd.tcpout.accessor.TcpMessageAccessor.rollback(TcpMessageAccessor.java:153)
at com.dcsa.symbols.cbsd.tcpout.accessor.TcpMessageAccessor.access(TcpMessageAccessor.java:216)
at com.dcsa.symbols.cbsd.tcpout.adapter.CBSDSocketMessageHander.DealMessage(CBSDSocketMessageHander.java:132)
at com.dcsa.symbols.cbsd.tcpout.adapter.CBSDSocketMessageHander.run(CBSDSocketMessageHander.java:59)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
at java.lang.Thread.run(Thread.java:773)
希望大神可以帮忙分析分析,提出一些解决方法,谢谢了!!!