使用JDBC/thin SSL从ResultSet获取行时发生ORA-17410 ORA-1013 ORA-3111错误
(Doc ID 1631176.1)
Last updated on AUGUST 06, 2020
适用于:
JDBC - 版本 10.2.0.1 和更高版本本文档所含信息适用于所有平台
症状
在执行查询的获取阶段时,JDBC/thin SSL 应用程序断开连接。
- JDBC/thin 10.2、11.1 或 11.2 上可能会出现此问题。
- 此问题是 JDBC/thin 所特有的,不会出现在 JDBC/OCI 上
- 此问题仅在 SSL 上出现。
- 在失败之前检索的行数可能取决于fetchsize。在某些情况下,将fetchsize设置为 1 可能会解决问题。
- 如果行已经缓存到先前的成功查询的 SGA 数据块缓冲区缓存中,则有可能避免出现错误。
- 此问题也可能与数据库版本相关。例如,很多情况下,此问题可能仅在连接到数据库版本 10.2.0.4 时出现,在连接到数据库版本 10.2.0.3 时不出现
- JDBC/thin 客户端和数据库之间可能有防火墙
堆栈示例:
- ERROR: 17410 - No more data to read from socket
java.sql.SQLException: No more data to read from socket
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:286)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1123)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1075)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:480)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:1220)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:379)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:284) - java.sql.SQLException: ORA-01013: user requested cancel of current operation
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C80all.receive(T4C80all.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:1018)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:291)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:213)
at oracle.jdbc.driver.ScrollableResultSet.cacheRowAt(ScrollableResultSet.java:1598)
at oracle.jdbc.driver.ScrollableResultSet.isValidRow(ScrollableResultSet.java:1581)
at oracle.jdbc.driver.ScrollableResultSet.next(ScrollableResultSet.java:311) - java.sql.SQLException: ORA-3111: break received on communication channel
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C80all.receive(T4C80all.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:1018)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:291)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:213)
原因
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
文档内容
症状 |
更改 |
原因 |
解决方案 |
参考 |