使用druid 报错报错,什么情况

君,已阅读到文档的结尾了呢~~
druid基本配置及内置监控使用
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
druid基本配置及内置监控使用
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口数据库及主备切换(33)
现在常用的开源数据库连接池主要有c3p0、dbcp、proxool三种,其中:
推荐使用dbcp;
推荐使用c3p0和proxool;
1、 DBCP:apache
DBCP(DataBase connection pool)数据库连接池。是apache上的一个 java连接池项目,也是 tomcat使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。dbcp没有自动的去回收空闲连接的功能。
2、 C3P0:
C3P0是一个开源的jdbc连接池,它实现了数据源和jndi绑定,支持jdbc3规范和jdbc2的标准扩展。c3p0是异步操作的,缓慢的jdbc操作通过帮助进程完成。扩展这些操作可以有效的提升性能。目前使用它的开源项目有Hibernate,Spring等。c3p0有自动回收空闲连接功能。
3、 Proxool:Sourceforge
Proxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、
阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好
可以监控连接以及执行的SQL的情况。
加入项目的具体步骤:
1、导入jar
&groupId&com.alibaba&/groupId&
&artifactId&parent-pom&/artifactId&
&version&1.0.0-SNAPSHOT&/version&
2、在applicationContext-resources.xml 配置数据库连接池,以mysql数据库为例&!--druid
DataSource for J2EE environments--&
&bean id=&dataSource& class=&com.alibaba.druid.pool.DruidDataSource& init-method=&init& destroy-method=&close&&
&property name=&driverClassName& value=&${jdbc.driverClassName}&/&
&property name=&url& value=&jdbc:mysql://127.0.0.1:3306/XXX& /&
&property name=&username& value=&root& /&
&property name=&password& value=&root& /&
&property name=&maxActive& value=&20& /&
&property name=&initialSize& value=&1& /&
&property name=&maxWait& value=&60000& /&
&property name=&minIdle& value=&1& /&
&property name=&timeBetweenEvictionRunsMillis& value=&3000& /&
&property name=&minEvictableIdleTimeMillis& value=&300000& /&
&property name=&validationQuery& value=&SELECT 'x' FROM DUAL& /&
&property name=&testWhileIdle& value=&true& /&
&property name=&testOnBorrow& value=&false& /&
&property name=&testOnReturn& value=&false& /&
&!-- mysql 不支持 poolPreparedStatements--&
&!--&property name=&poolPreparedStatements& value=&true& /&--&
&!--&property name=&maxPoolPreparedStatementPerConnectionSize& value=&20& /&--&
&!-- 开启Druid的监控统计功能 --&
&property name=&filters& value=&stat& /&
3、配置内置监控
&servlet-name&DruidStatView&/servlet-name&
&servlet-class&com.alibaba.druid.support.http.StatViewServlet&/servlet-class&
&/servlet&
&servlet-mapping&
&servlet-name&DruidStatView&/servlet-name&
&url-pattern&/druid/*&/url-pattern&
&/servlet-mapping&
4、通过访问druid/index.html 可以查看项目的运行情况,也可以分析SQL语句的执行情况,便于调优。
项目地址:
目前最新版本为1.0.11
百度发现该连接池存在一些问题,开发测试环境可以使用,正式环境还是用成熟点的比较靠谱
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:255303次
积分:4333
积分:4333
排名:第6140名
原创:105篇
转载:596篇
评论:18条
(10)(19)(19)(24)(7)(10)(50)(46)(44)(28)(15)(75)(31)(37)(39)(19)(19)(32)(11)(12)(43)(12)(30)(13)(37)(21)druid连接池 一段时间不用,然后在使用就会报错
这个一段时间在20分钟左右吧,粗略估计
使用的是spring3,struts2,mybatis3.2.2 连得oracle druid1.0.1
一直拿不到数据库连接,前台无响应,过一段时间会报下边的错误,然后才能正常得到连接,执行查询
系统在linux和windows上都有跑 因为是内网,错误只能给个大体的了
windows错误是
close connection error
caused by SQLRecorableException:io错误Connection reset by peer:socket write error
caused by SocketException Connection reset by peer:socket write error
close connection error
caused by SQLRecorableException:io错误 断开的管道
caused by SocketException& 断开的管道
我建立了一个进程,每半分钟会用mybatis查询一下数据库,就不会有问题,但是validationQuery,testWhileIdel,TimeBetweenEvictionRunsMills都设置了,下边给出数据源配置
&property name="driverClassName" value="${jdbc.driver}" /&
&&&&&&&&& &
&&&&&&&&&&& &!-- 基本属性 url、user、password --&
&&&&&&&&&&& &property name="url" value="${jdbc.url}" /&
&&&&&&&&&&& &property name="username" value="${jdbc.username}" /&
&&&&&&&&&&& &property name="password" value="${jdbc.password}" /&
&&&&&&&&&& &
&&&&&&&&&&& &!-- 配置初始化大小、最小、最大 --&
&&&&&&&&&&& &property name="initialSize" value="${jdbc.pool.minIdle}" /&
&&&&&&&&&&& &property name="minIdle" value="${jdbc.pool.minIdle}" /&
&&&&&&&&&&& &property name="maxActive" value="${jdbc.pool.maxActive}" /&&&&&&&&&& &
&&&&&&&&&&& &!-- 配置获取连接等待超时的时间 --&
&&&&&&&&&&& &property name="maxWait" value="60000" /&&&&& &
&&&&&&&&&&& &!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --&
&&&&&&&&&&& &property name="timeBetweenEvictionRunsMillis" value="30000" /&
&&&&&&&&&& &
&&&&&&&&&&& &!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --&
&&&&&&&&&&& &property name="minEvictableIdleTimeMillis" value="300000" /&
&&&&&&&&&& &
&&&&&&&&&&& &property name="validationQuery" value="SELECT 'x' FROM DUAL" /&
&&&&&&&&&&& &property name="testWhileIdle" value="true" /&
&&&&&&&&&&& &property name="testOnBorrow" value="false" /&
&&&&&&&&&&& &property name="testOnReturn" value="false" /&
&&&&&&&&&& &
&&&&&&&&&&& &!-- 打开PSCache,并且指定每个连接上PSCache的大小(Oracle使用)
&&&&&&&&&&& &property name="poolPreparedStatements" value="true" /&
&&&&&&&&&&& &property name="maxPoolPreparedStatementPerConnectionSize" value="20" /& --&
1.我设置了validationQuery感觉像是没有起作用,因为加入心跳后就正常了,
2.系统断开了一段时间没有活动的连接,这其实跟1差不多,明明设置了validationQuery的
3.oracle断开了无活动连接,但我看了一下是unlimited的,
4.查看本地端口与服务器1521端口的tcp连接,在不操作的时候,tcp连接一直有,在服务端也有,但只要使用,就会全部断开,换成新的,因为本地的端口都改变了,但是服务器上的这个端口还是established
5.在druid的监控平台查看连接数,一直显示正常,但是在用的时候会全部消失,只剩下一条,这一条应该是重新创建的
1.有办法查看validationQuery有没有起作用吗,在sql监控里边看不到这条语句~
2,oracle的unlinited我是在dba_profile中看的,不确定是在这吗
3.这问题到底是怎么出的额?大牛们,内网导个东西麻烦死,还没有换个数据源试过
&&&&我在OSC看过之前很多人遇到过这个问题,按照其他连接池的设置,都没能解决。最后都不了了之。我没用过druid,也不知道解决方案。
&&&&我认为这个是druid的bug.
--- 共有 2 条评论 ---
问这个问题的人太多了,应该是本身的Bug
0.0我是接的二手的这个项目,难道要我换连接池,倒是也好换,只是问题解决不了感觉很难受~
为什么没有回答的呢0.0
这是连接老化问题, 好解决, 应该有一个连接空闲多久, 就断开的参数设置, 你找找, dbcp, c3p0都是有的,
--- 共有 1 条评论 ---
首先,非常感谢你的回答~我就是没找到为什么会连接老化的,才分好几个方面测试了,maxIdleTime什么的默认值是0的,也就是永不断开~我感觉是druid或者是系统设置的问题,但怎么也没找出是哪里出了问题
这种问题是很常见的, 比如说, 数据库重启了, 连接池如果没有进行设置的话, 他认为池里的连接还是正常的, 取得后就会报错, 这些基本上连接池已解决了此类问题, 不过需要进行参数设置而已, 取得一个错误连接后, 再取一个正常连接类似这样子的
老化的原因有很多, 比如 网络抖动 什么的, 会导致连接是无效的
--- 共有 2 条评论 ---
: 呵呵, 我只是提供思路给你,
具体的设置你得自己去试, 各参数之间是相关的, 我使用过c3p0, dbcp都碰到过你的这种情况, 后来都是这样解决的
嗯,一开始我也是这么想的,都是内网机,网络抖动不知道是什么,但抖动的话tcp连接应该断开吧~,不操作之前两边的tcp连接都是有的,重启也不可能,过20分钟左右就会这样,最主要的是我设置的测试sql语句的,但好像并没有起作用}

我要回帖

更多关于 druid使用实例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信