系统不稳定,有的时候就直接挂了,看看是不是数据库连接池配置出了问题?
     <initialSize value="1"></initialSize>
     <!-- 最大空闲连接 -->
     <maxIdle value="200"></maxIdle>
     <!-- 最小空闲连接 -->
     <minIdle value="1"></minIdle>
     <!-- 最大连接数量 -->
     <maxActive value="500"></maxActive>
     <!-- 是否在自动回收超时连接的时候打印连接的超时错误 -->
     <logAbandoned value="true"></logAbandoned>
     <!-- 是否自动回收超时连接 -->
     <removeAbandoned value="false"></removeAbandoned>
     <!-- 超时时间(以秒数为单位) -->
     <removeAbandonedTimeout value="65"></removeAbandonedTimeout>
     <!--空闲时是否进行验证,检查对象是否有效,默认为false  -->
     <testWhileIdle value="true"></testWhileIdle>
     <!--则每timeBetweenEvictionRunsMillis毫秒检查一次连接池中空闲的连接,
 把空闲时间超过minEvictableIdleTimeMillis毫秒的连接断开,直到连接池中的连接数到minIdle为止.  -->
     <timeBetweenEvictionRunsMillis value="10000"></timeBetweenEvictionRunsMillis>
     <!--在每次空闲连接回收器线程(如果有)运行时检查的连接数量  -->
     <numTestsPerEvictionRun value="10"></numTestsPerEvictionRun>
     <type value="1"></type>
     <defaultAutoCommit value="true"></defaultAutoCommit>
     <defaultReadOnly value="false"></defaultReadOnly>
     <defaultTransactionIsolation value="READ_COMMITTED"></defaultTransactionIsolation>
     <!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
     <maxWait value="10000"></maxWait>

请各位高手给出宝贵意见,系统已经上线,有的时候出这种问题,重启tomcat又能维持一段时间,有时候短时间内也会出现此类问题。

3个回答

没有配validation query, 空闲检查没有生效

maxidle和maxactive之差不宜过大

Time between eviction run mills 太短了,才10秒间隔,起码上个小时级别

系统挂了可能是数据库端把连接断了,所以连接池里还残留了老的坏了的连接。再加上validation sql没配,检查连接机制没有起作用。

zuoshang
zuoshang 可以写select 1 from dual,这个sql就是用于连接池对连接做检测的,它会发这个sql去连一下数据库,成功说明没问题,失败就把当前连接扔掉。
大约 5 年之前 回复
iteye_13196
iteye_13196 validation query,该怎么配,具体有什么好处呢?
大约 5 年之前 回复

推荐玩玩阿里的druid

iteye_13196
iteye_13196 我现在是DBCP,你说的这个我知道,具体druid有什么好处呢,你在使用吗,感觉到什么优点了没有呀
大约 5 年之前 回复

没有日志吗?我之前了遇到过,连接池好像对数据库指针一直持有,不放,导致数据库的指针达到最大,然后连接就断掉了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!