你是否经常会在你的log文件中看到下面的exception?
引用
Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: Broken pipe
STACKTRACE:
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
从这个exception中我们可以得出是关于Socket的问题, 那么肯定就是关于网络方面的原因, 比如mysql down了。 或者网络有问题连不上mysql。
mysql会自动关闭掉空闲时间大于wait_timeout的连接。wait_timeout在可以在mysql配置文件里配置,默认的值是28800也就是8个小时。也就是说如果一个connection在8个小时候之内没有用使用过过的话, mysql server会把这个connection销毁掉。 这就是发生这个问题的原因了。 那么如何解决呢? 我们一般都用连接池来保存连接, 一般连接池都会有许多参数让你的连接池更高效。 我们以c3p0作为例子。
http://www.mchange.com/projects/c3p0/index.html, 这个是c3p0的文档,里面有许多参数,但是我们只要注意这个参数就行了。
maxIdleTime以下是对这个参数的解释。
引用
maxIdleTime
Default: 0
Seconds a Connection can remain pooled but unused before being discarded. Zero means idle connections never expire. [See "Basic Pool Configuration"]
在c3p0中maxIdleTime的默认值是0,也就是说永远都不会被expire, 所以解决这个问题的办法就是设置maxIdleTime比mysql的wait_timeout的值小一些就行了。
参考:
http://forums.mysql.com/read.php?39,42763,42767#msg-42767
http://www.mchange.com/projects/c3p0/index.html#maxIdleTime
分享到:
相关推荐
IDEA+Mysql调试常见异常解决办法_kaic.doc IDEA+Mysql调试常见异常解决办法_kaic.doc IDEA+Mysql调试常见异常解决办法_kaic.doc IDEA+Mysql调试常见异常解决办法_kaic.doc IDEA+Mysql调试常见异常解决办法_kaic.doc ...
简单的一个C# 与mysql本地管道连接的一个小demo 使用 MySql.Data.dll
Mysql安装后打开MySQL Command Line Client闪退解决方法 //MySQL的启动方法,先在DOS下切换到mysql的安装目录BIN下然后输入启动mysql服务的命令, 再然后在mysql登录界面输入用户名和命令即可//可以不用输入...
mysql报权限错误解决办法mysql报权限错误解决办法
mac OSX 系统 MySQL中文乱码解决办法
Navicat无法远程连接MySql服务器问题的解决方法写在前面: 操作系统:中标麒麟4.0; 数据库:MySQL5.7.26; JDK:采用中标麒麟系统自带的openjdk; 客户端工具:Navicat; 前置条件: MySQL服务安装完毕; 情景: ...
我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助。 一般MySQL连接不上,可能有两大...
数据库连接常出现的相关问题及解决办法,使用方便
mysql没法启动的多种解决办法。非常全。
打开mysql改变字符集 然后在获取连接时候改变字符集 最后在查询之前改变字符集 我用过的可以解决
mysql乱码问题解决mysql乱码问题解决mysql乱码问题解决
MySQL中文乱码问题解决方案,彻底解决mysql中的中文乱码问题
终于解决了:这个包是关于windows下装MYSQL驱动,及装完找不到驱动的问题。解决方法和需要的文件在包里。 另外我在博客里也写了方法。
MySql中文乱码问题 Mysql建库建表 Mysql建库建表中文乱码问题 Mysql中文乱码问题解决方案
这时如果使用jdbc继续使用之前的连接,则会收到以下异常:mysql允许设置闲置时间,默认是8小时,最大是1年。大部分客户端都使用连接池以提高性能,如果用户访问
解决MySQL数据库乱码问题,以及命令行查表乱码问题
mysql忘记密码解决办法.docmysql忘记密码解决办法.docmysql忘记密码解决办法.doc
自己总结的Win+IIS+PHP+MySQL疑难杂症...MySQL无法正常启动,服务器管理器里面按钮灰色等MySQL问题解决办法; windows2003服务器上级目录权限导致的问题; MYSQL提示Table '表名' doesn't exist;mysql 拷贝迁移(备份恢复)
自己整理的关于mysql主从复制相关的配置和一些关于在mysql主从复制运行的过程中遇到的问题和相关的解决方法
mysql数据库常遇问题解决方法,以及mysql数据库的使用,mysql数据库的常用命令