【发布时间】:2020-05-25 16:14:22
【问题描述】:
Spring rest webservice 应用程序能够从数据库中获取数据。但是在重新启动数据库服务器后得到“不再从套接字读取数据错误”。详细信息是:
JDK 1.8x
Spring JDBC 模板和 Spring Rest Web 服务
甲骨文 12x
Tomcat 8.x
通用 DBCP 1.4
以下配置的连接属性
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.replay.OracleDataSourceImpl"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxActive" value="50"/>
<property name="validationQuery" value="SELECT 1 FROM DUAL"/>
<property name="testOnBorrow" value=true/>
<property name="testWhileIdl" value=true/>
<property name="timeBetweenEvictionRunsMillis" value=15000/>
<property name="numTestsPerEvictionRun" value=50/>
<property name="minEvictableIdleTimeMillis" value=300000/>
<property name="Oracle.jdbc.ReadTimeout=20000;oracle.net.CONNECTION_TIMEOUT=20000;oracle.net.encryption_client=REQUESTED"/>
错误:
Caused by: java.sql.SQLRecoverableException: No more data to read from socket
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1142)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:863)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1153)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1275)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3620)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1869)
at org.hibernate.loader.Loader.doQuery(Loader.java:718)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
at org.hibernate.loader.Loader.doList(Loader.java:2449)
... 63 more
尝试了此选项driverClassName=oracle.jdbc.driver.OracleDriver 并得到相同的套接字错误。
帮帮我。 提前致谢。
【问题讨论】:
-
不。我的错误没有解决。
标签: java oracle12c spring-jdbc apache-commons-dbcp tomcat8.5