「javadbcp配置」java jdbc配置
本篇文章给大家谈谈javadbcp配置,以及java jdbc配置对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、dbcp连接池配置详解
- 2、java在applicationContext.xml的dbcp怎么配Oracle数据库,我下面写的对么,账号密码都没成,url写的对不对
- 3、解决MySQL8小时自动断开连接的问题(DBCP配置)
dbcp连接池配置详解
首先,明确连接、活动连接(连接正被使用)、空闲连接的概念
一、创建连接
1、初始化 2、空闲连接低于最小空闲minIdle
二、销毁连接
1、空闲连接数目高于最大空闲 2、活动连接被遗弃
三、回收行为
1、空闲连接回收器(定时执行)2、连接回收器(maxwait后触发)
initialSize 初始化连接数,即连接池启动时池子中的连接数目
maxActive 最大活动连接数,即连接池中可同时连接的最大数目
minIdle 最小空闲连接,连接池中最少的空闲的连接数,
低于这个数量时,意味着连接不够用了,会被创建新的连接
默认为0,该参数越接近maxIdle,性能越好,因为连接的创建和销毁,都是需要消耗资源的;
不宜太大,因为在机器很空闲的时候,也会创建低于minidle个数的连接,类似于jvm参数中的Xmn设置。
maxIdle 最大空闲连接
超过此参数时空闲连接将被释放,如果设置为负数表示不限制
默认为8个,maxIdle不能设置太小,因为假如在高负载的情况下,连接的打开时间比关闭的时间快,会引起连接池中idle的个数上升超过maxIdle,而造成频繁的连接销毁和创建,类似于jvm参数中的Xmx设置。
maxIdle 最大空闲连接
超过此参数时空闲连接将被释放,如果设置为负数表示不限制
默认为8个,maxIdle不能设置太小,因为假如在高负载的情况下,连接的打开时间比关闭的时间快,会引起连接池中idle的个数上升超过maxIdle,而造成频繁的连接销毁和创建,类似于jvm参数中的Xmx设置
maxWait 请求连接时,最长的等待时间。
单位ms,当没有可用连接时,连接池会等待连接释放,超过该时间限制会抛出异常,如果设置-1表示无限等待(默认为无限)。
java在applicationContext.xml的dbcp怎么配Oracle数据库,我下面写的对么,账号密码都没成,url写的对不对
jdbc:oracle:thin:@localhost:1521:SID
jdbc:oracle:thin:@localhost:1521/serviceName
在 10g 以后版本可能默认是用 service name。
解决MySQL8小时自动断开连接的问题(DBCP配置)
最近做的一个JavaWeb项目,持久层用SpringJDBC+DBCP+MySQL。一开始只配置了DBCP的一些常用参数,没有注意对空闲连接的检查和回收。项目部署在tomcat后,刚开始使用没用问题。第二天再试图登录时,发生了报错:
可以看到,报错信息提示上次交互已经是82664635ms前,超过了MySQL server配置的'wait_timeout'(默认是8小时),所以该连接已经被MySQL回收了,但DBCP不知道连接已被回收,依然试图执行操作,引发了异常。报错信息提示可以修改wait_timeout或者添加autoReconnect=true。
(备注:mysql5以上的,设置autoReconnect=true 是无效的 只有4.x版本,起作用)
这两个参数的默认值是8小时(60 60 8=28800)。 注意:wait_timeout的最大值只允许2147483 (24天左右)
也可以用MySQL命令进行修改
这种办法治标不治本。
2.减少连接池内连接的生存周期,使之小于上一项中所设置的wait_timeout 的值。
也就是说,让已经断开的空闲连接没有机会被使用,提前被回收。
以C3P0配置为例:
DBCP中配置minEvictableIdleTimeMillis即可。
3.配置连接池
定期使用连接池内的连接,使得它们不会因为闲置超时而被 MySQL 断开。并且每次使用连接前检查连接是否可用,定期回收空闲的连接。
修改 c3p0 的配置文件,在 Spring 的配置文件中设置:
DBCP连接池的配置:
DBCP官方配置文档:
C3P0的配置标准:
关于MySQL的wait_timeout连接超时问题报错解决方案
关于javadbcp配置和java jdbc配置的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。