(问题求解)java.sql.SQLException: Io 异常: Connection reset

buptdavid 2010-06-02 03:01:29
工程所用:Struts1.2+Spring2.0+Hibernate 3.1+Oracle 10g+Tocat

数据库配置:(敏感信息已用*代替)
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@**.**.***.***:1521:gifts">
</property>
<property name="username" value="gift"></property>
<property name="password" value="******"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>

<!-- 表示允许自动提交 (不用再begin Transaction了) -->
<prop key="hibernate.connection.autocommit">true</prop>
<!-- 显示SQL语句 -->
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>edu/bupt/vo/Relation.hbm.xml</value>
<value>edu/bupt/vo/Age.hbm.xml</value>
<value>edu/bupt/vo/Gifts.hbm.xml</value>
<value>edu/bupt/vo/Seller.hbm.xml</value>
<value>edu/bupt/vo/Interest.hbm.xml</value>
<value>edu/bupt/vo/Receivers.hbm.xml</value>
<value>edu/bupt/vo/Business.hbm.xml</value>
<value>edu/bupt/vo/Occationgift.hbm.xml</value>
<value>edu/bupt/vo/Recipientgift.hbm.xml</value>
<value>edu/bupt/vo/Clicks.hbm.xml</value>
<value>edu/bupt/vo/Classes.hbm.xml</value>
<value>edu/bupt/vo/Admin.hbm.xml</value>
<value>edu/bupt/vo/Recipients.hbm.xml</value>
<value>edu/bupt/vo/Occation.hbm.xml</value>
<value>edu/bupt/vo/Link.hbm.xml</value>
<value>edu/bupt/vo/Similarity.hbm.xml</value>
<value>edu/bupt/vo/Prediction.hbm.xml</value>
<value>edu/bupt/vo/Collect.hbm.xml</value>
<value>edu/bupt/vo/Users.hbm.xml</value>
<value>edu/bupt/vo/Top.hbm.xml</value>
<value>edu/bupt/vo/Giftsimilarity.hbm.xml</value>
<value>edu/bupt/vo/Clickgift.hbm.xml</value></list>
</property>
</bean>

问题描述:一段时间不操作页面后会出现这个报错,然后再操做就没问题了。

2010-06-02 14:44:13,984 WARN [org.hibernate.util.JDBCExceptionReporter] - <SQL Error: 17002, SQLState: null>
2010-06-02 14:44:13,984 ERROR [org.hibernate.util.JDBCExceptionReporter] - <Io 异常: Connection reset>
2010-06-02 14:44:14,015 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - <Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]>
2010-06-02 14:44:14,062 INFO [org.springframework.jdbc.support.SQLErrorCodesFactory] - <SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]>
2010-06-02 14:44:14,109 WARN [org.hibernate.util.JDBCExceptionReporter] - <SQL Error: 0, SQLState: null>
2010-06-02 14:44:14,109 ERROR [org.hibernate.util.JDBCExceptionReporter] - <Already closed.>
2010-06-02 14:44:14,109 WARN [org.hibernate.util.JDBCExceptionReporter] - <SQL Error: 0, SQLState: null>
2010-06-02 14:44:14,109 ERROR [org.hibernate.util.JDBCExceptionReporter] - <Already closed.>
2010-06-02 14:44:14,140 WARN [org.apache.struts.action.RequestProcessor] - <Unhandled Exception thrown: class org.springframework.dao.DataAccessResourceFailureException>
2010-6-2 14:44:14 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.sql.SQLException: Io 异常: Connection reset
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:363)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:927)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1122)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:962)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1242)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3415)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3459)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:849)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:832)
at edu.bupt.vo.OccationgiftDAO.getCount(OccationgiftDAO.java:115)
at edu.bupt.service.OccationService.findByOccation(OccationService.java:34)
at edu.bupt.struts.action.OccationAction.findByOccation(OccationAction.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)



...全文
4046 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
g8up 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 miaozhengsheng 的回复:]
我也碰到过这个问题,当时是因为我的WEB 服务器 和 数据库 不是同一台服务器,放到同一台服务器上就正常了。不知道为什么
[/Quote]
这是嘛原因呢?
crazylaa 2010-06-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 buptdavid 的回复:]

问题是,项目刚刚加载上后操作页面涉及查询数据库的操作也会出现这个问题
引用 3 楼 crazylaa 的回复:

一段时间是多长?oracle默认30分钟超时,如果是30分钟以上,正常,不用管它,数据库的机制是合理的。或者你也可以去调整一下oracle超时时间。
[/Quote]

你的连接池设置中,初始连接是多少?或者说,最少活跃连接是多少?设置成>0
izard999 2010-06-03
  • 打赏
  • 举报
回复
去设置下超时再看有什么问题
miaozhengsheng 2010-06-03
  • 打赏
  • 举报
回复
我也碰到过这个问题,当时是因为我的WEB 服务器 和 数据库 不是同一台服务器,放到同一台服务器上就正常了。不知道为什么
buptdavid 2010-06-03
  • 打赏
  • 举报
回复
问题是,项目刚刚加载上后操作页面涉及查询数据库的操作也会出现这个问题
[Quote=引用 3 楼 crazylaa 的回复:]

一段时间是多长?oracle默认30分钟超时,如果是30分钟以上,正常,不用管它,数据库的机制是合理的。或者你也可以去调整一下oracle超时时间。
[/Quote]
crazylaa 2010-06-02
  • 打赏
  • 举报
回复
一段时间是多长?oracle默认30分钟超时,如果是30分钟以上,正常,不用管它,数据库的机制是合理的。或者你也可以去调整一下oracle超时时间。
wutian4567268 2010-06-02
  • 打赏
  • 举报
回复
是不是oracle设置的连接超时时间太短了?
空心兜兜 2010-06-02
  • 打赏
  • 举报
回复
超时?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧