После перезапуска сервера БД - нет больше данных, прочитанных из сокета Ошибка - PullRequest
0 голосов
/ 10 февраля 2020

Приложение веб-сервиса Spring rest может извлекать данные из БД. Но после перезапуска сервера БД сообщение об ошибке «больше данных не читается из сокета». Подробности:
JDK 1.8x
Spring JDB C Шаблон & Spring Rest Web Service
Oracle 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 и получил ту же ошибку сокета.

Помогите мне. Заранее спасибо.

...