MySQL连接空闲超过8小时DBCP造成的异常如何解决

数据库 MySQL
MySQL配置中my.cnf的wait_timeout值一定要大于等于连接池种的idle_timeout值。否则mysql会在wait_timeout的时间后关闭连接,默认的关闭连接的时间为8小时。本文主要介绍了这一连接问题,希望能对您有所帮助。

MySQL连接时,服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。connections如果空闲超过8小时,Mysql将其断开,而DBCP并不知道该connection已经失效,如果这时有Client请求connection,DBCP将该失效的Connection提供给Client,将会造成异常。

mysql配置中my.cnf的wait_timeout值一定要大于等于连接池种的idle_timeout值。否则mysql会在wait_timeout的时间后关闭连接,然而连接池还认为该连接可用,这样就会产生异常。

  1. org.apache.jasper.JasperException:javax.servlet.ServletException:  
  2.  
  3. javax.servlet.jsp.JspException::CommunicationslinkfailureLastpacketsenttotheserverwas1msago.org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)  
  4.  
  5. org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)  
  6.  
  7. org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)  
  8.  
  9. org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)  
  10.  
  11. javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

DBCP连接池说明:driverClassNameurlusernamepassword上面四个分别是驱动,连接字符串,用户名和密码。

maxActive连接池支持的***连接数。

maxIdle连接池中最多可空闲maxIdle个连接。

minIdle连接池中最少空闲maxIdle个连接。

initialSize初始化连接数目。

maxWait连接池中连接用完时,新的请求等待时间,毫秒。

timeBetweenEvictionRunsMillis和minEvictableIdleTimeMillis一起使用,每timeBetweenEvictionRunsMillis毫秒秒检查一次连接池中空闲的连接,把空闲时间超过minEvictableIdleTimeMillis毫秒的连接断开,直到连接池中的连接数到minIdle为止主要把这两个参数加上就好。

minEvictableIdleTimeMillis连接池中连接可空闲的时间。

毫秒removeAbandonedtrue,false,是否清理。

removeAbandonedTimeout秒没有使用的活动连接,清理后并没有放回连接池。

removeAbandonedTimeout活动连接的***空闲时间。

logAbandonedtrue,false,连接池收回空闲的活动连接时是否打印消息。

minEvictableIdleTimeMillis,removeAbandonedTimeout这两个参数针对的连接对象不样。

minEvictableIdleTimeMillis针对连接池中的连接对象。

removeAbandonedTimeout针对未被close的活动连接。

了解了MySQL连接的细节,那么在以后遇到连接异常这样的问题时,我们就能很方便的找出其中的错误了。本文就介绍到这里,谢谢!

【编辑推荐】

  1. php中批量删除Mysql中相同前缀的数据表
  2. 利用mysql的audit审计功能记录用户操作信息
  3. NaviCat通过Http方式连接服务器的MySQL数据库
  4. 详解Discuz_WIN7_Apache_MySQL_PHP平台搭建
  5. MySQL错误:Can't connect to MySQL server (10060)
责任编辑:赵鹏 来源: 中国IT实验室
相关推荐

2011-04-07 14:29:56

2013-02-26 09:51:31

Windows 8应用异常问题

2011-04-28 09:22:14

Aspire时睿

2009-01-05 18:12:47

BalancePoin灾备虚拟化

2010-10-08 11:41:38

PHP连接MYSQL

2020-12-07 06:30:34

Redis性能命令

2020-05-31 18:55:47

远程桌面连接网络故障虚拟桌面

2011-03-15 13:30:27

IBatis.netMySQL

2020-12-28 10:31:38

服务中断网络攻击网络安全

2023-10-24 15:29:54

MySQL

2012-07-10 01:37:59

程序员

2011-03-29 13:29:10

2019-07-29 08:22:48

SIEM安全信息和事件管理系统应用安全

2021-10-20 20:27:55

MySQL死锁并发

2009-03-23 08:55:37

IE浏览器微软

2023-10-30 18:35:47

MySQL主从延时

2009-07-22 13:32:24

JDBC SQL

2011-03-07 14:09:10

FileZilla

2011-08-08 10:29:12

MySQL

2011-05-23 09:51:30

MySQL
点赞
收藏

51CTO技术栈公众号