C 长时间连接oracle,oracle长时间不连接,第一次连接报错问题

1、问题描述

hibernate+jpa+oracle+c3p0 出现错误  长时间不连接后,第一次连接数据库报错,再连接正常;

2016-12-29 13:36:09.328 [http-bio-8081-exec-7] ERROR o.h.e.j.s.SqlExceptionHelper - IO 错误: Software caused connection abort: recv failed

2016-12-29 13:36:09.344 [http-bio-8081-exec-7] WARN  c.m.v.c.i.NewPooledConnection - [c3p0] A PooledConnection that has already signalled a Connection error is still in use!

2016-12-29 13:36:09.344 [http-bio-8081-exec-7] WARN  c.m.v.c.i.NewPooledConnection - [c3p0] Another error has occurred [ java.sql.SQLRecoverableException: 关闭的连接 ] which will not be reported to listeners!

java.sql.SQLRecoverableException: 关闭的连接

at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:3694) ~[ojdbc6-11.2.0.1.0.jar:11.2.0.1.0]

at com.mchange.v2.c3p0.impl.NewProxyConnection.rollback(NewProxyConnection.java:860) [c3p0-0.9.2.1.jar:0.9.2.1]

at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doRollback(JdbcTransaction.java:163) [hibernate-core-4.3.8.Final.jar:4.3.8.Final]

at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:211) [hibernate-core-4.3.8.Final.jar:4.3.8.Final]

at org.hibernate.jpa.internal.TransactionImpl.rollback(TransactionImpl.java:108) [hibernate-entitymanager-4.3.8.Final.jar:4.3.8.Final]

at org.springframework.orm.jpa.JpaTransactionManager.doRollback(JpaTransactionManager.java:544) [spring-orm-4.2.5.RELEASE.jar:4.2.5.RELEASE]

at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:853)

2、问题分析

一开始以为是c3p0的问题,后来改为ojdbc直接连接还是出错,排除这个错误。

再次调研,发现是oracle的bug。。。

3、解决方案

destroy-method="close">

${jdbc.user}

${jdbc.password}

c3p0会自动创建个C3P0Test给自己测试

参考文档:http://ryanxl.iteye.com/blog/1694741

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值