首页 > 解决方案 > Oracle自治数据库JDBC错误没有更多数据可以从套接字读取,但webapp可以正常工作

问题描述

尝试在云中使用 dbcp2 和 Oracle db 设置数据库连接池。

尝试连接到 Oracle 自治数据库时遇到此错误。最奇怪的部分是,即使遇到此错误,当此连接池开始用于添加用户、提取报告等时,我在与 webapp 上构建的服务交互时也没有收到任何错误。

该数据库启用了 tcps,我正在使用 Oracle Wallets 连接到该数据库。

错误总是被复制,所以如果它是一些网络问题,请注意

任何想法可能导致此错误?

java.sql.SQLException: Error preloading the connection pool
    at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:573) ~[commons-dbcp2-2.8.0.jar:2.8.0]
    at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:734) ~[commons-dbcp2-2.8.0.jar:2.8.0]
    at com.testme.mmappserver.upgrade.start.MartUpgrade.isMartVersionPresent(MartUpgrade.java:176) ~[classes/:?]
    at com.testme.mmappserver.upgrade.start.MartUpgrade.upgrade(MartUpgrade.java:129) ~[classes/:?]
    at com.testme.mmappserver.upgrade.start.MartUpgrade.upgrade_main(MartUpgrade.java:81) [classes/:?]
    at com.testme.mmappserver.upgrade.Configui$11.run(Configui.java:499) [classes/:?]
Caused by: java.sql.SQLRecoverableException: No more data to read from socket
    at oracle.jdbc.driver.T4CMAREngineNIO.prepareForUnmarshall(T4CMAREngineNIO.java:784) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0]
    at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:429) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0]
    at oracle.jdbc.driver.T4C8TTIpro.receive(T4C8TTIpro.java:134) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0]
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1623) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0]
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:588) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0]
    at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:793) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0]
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:57) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0]
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:747) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0]
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:562) ~[ojdbc8-19.3.0.0.jar:19.3.0.0.0]
    at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:52) ~[commons-dbcp2-2.8.0.jar:2.8.0]
    at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:357) ~[commons-dbcp2-2.8.0.jar:2.8.0]
    at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:918) ~[commons-pool2-2.9.0.jar:2.9.0]
    at org.apache.commons.pool2.impl.GenericObjectPool.addObject(GenericObjectPool.java:1023) ~[commons-pool2-2.9.0.jar:2.9.0]
    at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:569) ~[commons-dbcp2-2.8.0.jar:2.8.0]
    ... 5 more

标签: javadatabaseoraclejdbcoracle-cloud-infrastructure

解决方案


您使用的 Oracle JDBC 驱动程序版本非常旧。我建议您将其更新为适合您的 DBMS 版本的最新版本。请参考随附的页面网址,这可能会有所帮助。

错误:没有更多数据可以从套接字读取


推荐阅读