我们使用Oracle作为我们的Web应用程序的数据库。应用程序在大多数时间运行,但我们得到这个“没有更多的数据从套接字读取”错误。
- 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
我们使用spring,hibernate和我有以下为我的应用上下文文件中的数据源。
- <bean class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close" id="dataSource">
- <property name="driverClassName" value="${database.driverClassName}" />
- <property name="url" value="${database.url}" />
- <property name="username" value="${database.username}" />
- <property name="password" value="${database.password}" />
- <property name="defaultAutoCommit" value="false" />
- <property name="initialSize" value="10" />
- <property name="maxActive" value="30" />
- <property name="validationQuery" value="select 1 from dual" />
- <property name="testOnBorrow" value="true" />
- <property name="testOnReturn" value="true" />
- <property name="poolPreparedStatements" value="true" />
- <property name="removeAbandoned" value="true" />
- <property name="logAbandoned" value="true" />
- </bean>
我们在oracle日志中看到以下内容
- Thu Oct 20 10:29:44 2011
- Errors in file d:\oracle\diag\rdbms\ads\ads\trace\ads_ora_3836.trc (incident=31653):
- ORA-03137: TTC protocol internal error : [12333] [4] [195] [3] [] [] [] []
- Incident details in: d:\oracle\diag\rdbms\ads\ads\incident\incdir_31653\ads_ora_3836_i31653.trc
- Thu Oct 20 10:29:45 2011
- Trace dumping is performing id=[cdmp_20111020102945]
- Thu Oct 20 10:29:49 2011
- Sweep [inc][31653]: completed
- Sweep [inc2][31653]: completed
- Thu Oct 20 10:34:20 2011
- Errors in file d:\oracle\diag\rdbms\ads\ads\trace\ads_ora_860.trc (incident=31645):
- ORA-03137: TTC protocol internal error : [12333] [4] [195] [3] [] [] [] []
- Incident details in: d:\oracle\diag\rdbms\ads\ads\incident\incdir_31645\ads_ora_860_i31645.trc
- Thu Oct 20 10:34:21 2011
Oracle版本:11.2.0.1.0