【问题标题】:After DB server restart - No more data read from socket Error数据库服务器重新启动后 - 不再从套接字读取数据错误
【发布时间】: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


【解决方案1】:

请在 tomcat 上重新部署 Web 服务应用程序。这将解决问题

【讨论】:

  • 这可能是一条评论。
猜你喜欢
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-19
  • 2011-09-29
  • 2021-11-06
相关资源
最近更新 更多