c3p0 服务启动获取连接超时_一次c3p0连接池连接异常错误的排查
近期写了一个数据库採集程序,大概过程是将SQLSERVER数据库的数据定时採集到Oracle数据库。
1小时出一次数据,每次数据量在2W左右。环境採用Sping3+hibernate4,数据库连接池採用C3p0
奇怪的时候每隔一段时间都会报:“c3p0 connection is already closed”
我開始的数据库连接池配置例如以下:oracle数据库开启事务,而採集的sqlserver数据库没有开启事务
jdbc.driverClass=oracle.jdbc.OracleDriver
jdbc.jdbcUrl=jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=10.12.18.240)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))
jdbc.user=appds
jdbc.password=appds
c3p0.acquireIncrement=5
c3p0.maxIdleTime=60
c3p0.maxPoolSize=80
c3p0.minPoolSize=10
c3p0.initialPoolSize=10
c3p0.maxStatements=0
c3p0.idleConnectionTestPeriod=60
c3p0.acquireRetryAttempts=30
c3p0.acquireRetryDelay=1000
c3p0.breakAfterAcquireFailure=false
c3p0.testConnectionOnCheckout=false
jdbcdata.driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbcdata.jdbcUrl=jdbc:sqlserver://10.12.18.241:1433;databaseName=data;
jdbcdata.user=cawasdatauser
jdbcdata.password=cawas606
c3p0ObsDataDB.maxPoolSize=30发现了问题,我首先在c3p0上加上调试信息的配置:
c3p0.debugUnreturnedConnectionStackTraces=true
c3p0.unreturnedConnectionTimeout=90 (我的连接超时时间是60s。所以这设置了90s)
applicationContext数据源配置添加响应配置
果然发现非常多未回收的连接,正常情况下超时未回收的连接会有一些。可是不会这么多啊。
经查资料在hibernate sessionFacory中添加配置(http://hi.baidu.com/austincao/item/fc9907da3d854e44fa576861)
Spring3.1去掉了HibernateDaoSupport类。
hibernate4须要通过getCurrentSession()获取session。而且设置
org.springframework.orm.hibernate4.SpringSessionContext
在Spring @Transactional声明式事务管理,”currentSession”的定义为: 当前被 Spring事务管理器 管理的Session,此时应配置:
hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext。
另外在hibernate中使用sessionFactory.getCurrentSession()获取session时,须要为方法声明事务。为此将sqlserver
採集的代码也加上事务
c3p0 服务启动获取连接超时_一次c3p0连接池连接异常错误的排查相关推荐
- c3p0 服务启动获取连接超时_微服务架构中的熔断、降级
微服务架构中熔断和降级是保证服务高可用的一项重要功能点,微服务区别于一体化项目的最大区别也再于熔断和降级,很多微服务项目的开发人员对熔断的理解就是当服务不可用的时候,为了让整体服务可以正常运行,需要让 ...
- c3p0 服务启动获取连接超时_JDBC数据库连接池
连接池的本质是构建一个容器,容器是用来存创建好的线程,http连接.数据库连接.netty连接等 各个连接池的使用大致分为三个部分 1.首先是初始化连接池,根据设置相应的参数.连接池的大小.核心连接数 ...
- 连接超时_记一次网络请求连接超时的事故
点击上方蓝色字关注我们~前言 从HTTP请求超时.重试机制.操作系统网络等层面剖析了事故的原因,最终解决业务问题. 这里先抛两个问题: 1)你遭遇过由于网络连接或请求超时造成的生产事故吗? 2)你知道 ...
- c3p0 服务启动获取连接超时_c3p0获取连接Connection后的Close()---释疑
abstract class AbstractPoolBackedDataSource extends PoolBackedDataSourceBase implements PooledDataSo ...
- 谷歌浏览器连接超时_系统超时重试机制(OpenResty/Nginx)
在实际开发当中,很多故障的产生都是因为没有意识到超时设置的重要性而造成的.如果不设置超时机制,就有可能导致连锁反应,最终系统雪崩.有些中间件天然集成了超时重试的机制,但是在设计当中需要注意的是:读服务 ...
- mysql服务启动成功后卸载_安装,启动与卸载Mysql系统服务(MYSQL常见问题)
将Mysql添加到Windows系统服务中: 1.. 安装服务. 在Windows2000下,安装完成后,并没有把MySQL安装成服务,我们必须执行下面的语句把MySQL注册为服务:installdi ...
- sq服务启动后又停止_“本地计算机上的SQL SERVER服务启动后又停止了”解决方法...
本方法主要是解决SQL Server运行过程中出现的"本地计算机上的MSSQLSERVER服务启动后又停止了.一些服务自动停止,如果它们没有什么可做的"解决方法. 笔者ASP运行环 ...
- 英雄联盟手游内测服务器维护,《英雄联盟手游》内测测试服连接超时解决方法 LOL手游国服连接超时如何解决...
LOL手游国服连接超时怎么办?怎么解决?LOL手游现已开启了超然测试咯,不少玩家已经下载好游戏准备体验了,但是进入游戏却一直出现连接超时的情况呢,如何才能解决呢,这个情况遇到确实很麻烦呀,下面就给大家 ...
- c++ socket 连接超时_Web性能优化之-HTTP长连接
前言: 当我们使用浏览器访问一个Web站点的时候,我们的电脑会和Web服务器建立一条HTTP的连接,那么在这个连接层面是否可以进行性能优化呢?下面我们要讲解的就是HTTP的长连接和短连接的相关知识. ...
- java模拟连接超时_Java:使用Toxiproxy模拟各种连接问题
java模拟连接超时 用Toxiproxy和Java的HttpURLConnection模拟各种连接问题,以查看产生了什么样的错误:连接超时vs.读取超时vs.连接被拒绝-. 结果: 系统:openj ...
最新文章
- 玩转Spring Cloud之配置中心(config server config client)
- 3.1.4 操作系统之内存的分配与回收
- DjangoFreshStore项目一
- C#创建Access
- qt设置滚动区域的滚动条的样式
- Flutter轮播图
- 什么是原子操作?Linux下有哪些原子操作API
- 统计每个月兔子的总数
- linux读取.data文件,Android获取文件夹路径 /data/data/
- Vscode代码量统计
- Excel突然出现很多小黑点
- /usr/local/bin/zsh没有文件或目录问题
- 世界海洋日 | TcaplusDB号召你一同保护海洋生物多样性
- 万物互联大数据研究正式展开人才紧缺
- 计算机专业四大名校排名,美国CS专业四大名校!总有一款适合你!
- NOI题库答案 (1.7 字符串基础)(1-20)
- python数据分析:使用lifetimes进行客户终身价值(CLV)探索
- Android/Java汉字按照拼音排序
- 网络游戏《丛林战争》开发与学习之(一):网络编程的基础知识
- 金山打字通WINDOWS XP及WINDOWS 2003下安装后普通用户无法使用的问题