第一次遇到Mysql的BUG,困扰我好久了。

原创 2005年05月20日 17:01:00

第一次遇到Mysql的BUG,困扰我好久了。

采用struts连接缓冲池取得数据库连接,在第一次getConnection()的时候
有时候出现一下错误
java.sql.SQLException: Communication link failure: java.net.SocketException, underlying cause: Software caused connection abort: recv failed

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Software caused connection abort: recv failed

STACKTRACE:

java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1449)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1826)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1098)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1192)
at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1153)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2048)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2017)
at com.mysql.jdbc.Connection.execSQL(Connection.java:1998)
at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:516)
at org.apache.struts.legacy.GenericConnection.setAutoCommit(GenericConnection.java:562)
at com.euwsoftware.autocreatewebsite.database.mysql.MysqlDAOFactory.getConnection(MysqlDAOFactory.java:113)

** END NESTED EXCEPTION **



为解决方法(转自 http://bugs.mysql.com/bug.php?id=5020
MySQL Bugs: #5020: autoReconnect / autoReconnectForPools broken since 3.0.11
 Description:
Our Systems run 24 Hours a Day, but at night nobody connects,
so the Socket Connections time out. At morning the first attempts
to do anything (e.g. login) fail until we are able to close() and
create..() the Connections again.

This did not happen until after 3.0.11

How to repeat:
Connection reconnectableConn = DriverManager.getConnection(
        "jdbc:mysql:///test?autoReconnect=true");

rs = reconnectableConn.createStatement().executeQuery("SELECT 1");
assertTrue  (rs.next());
assertEquals(1, rs.getInt(1));

restartMySQL();  // Actually: NET STOP MySQL; NET START MySQL;

rs = reconnectableConn.createStatement().executeQuery("SELECT 1");
assertTrue  (rs.next());
assertEquals(1, rs.getInt(1));

...

java.sql.SQLException: Communication link failure:
java.net.SocketException, underlying cause:
Software caused connection abort: recv failed

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: Software caused connection abort: recv failed

STACKTRACE:

java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:222)
at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1385)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1532)
...
** END NESTED EXCEPTION **
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1707)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1923)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1163)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1272)
at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1218)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2233)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2181)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:1159)


Suggested fix:
Connections should properly reconnect when the Socket times out
or the connection is lost some other way.

Please contact me for a complete TestSuite based on your Regression Tests.

java写的wtmpx解析文件,新手第一次,弄了好久,自己备份一下

学了一个月java了,第一次独立写wtmpx文件的解析,完成了大概一整个从服务器下载,解析,上传,保存到mysql数据库,保存到xml文件的过程。 因为是初学,所有写了好多奇怪的方法,用来练习学过的...

第一次window 7设置mysql环境中遇到的问题以及解决办法

帮助和我一样的小白学习进步 1、首先你要下载mySql安装包,安装过程不在叙述(下一步下一步) 注意:要记住安装路径;D:\mySql\MySQL Server 5.6\bin 我安装的...
  • wm9028
  • wm9028
  • 2015年11月28日 10:51
  • 530

第一次登录mysql5.7遇到问题如何解决

一,将介绍如何 (1)mysql5.7是有默认密码的

第一次使用Linux下安装MySQL5.7遇到的一些列问题

第一次学Linux第一次在上面安装MySQL,可谓是一波三折 首先我试了linux社区http://www.linuxidc.com/Linux/2016-06/132676.htm这个帖子的方法,...

第一次写MySQL存储过程遇到的关于DELIMITER的问题

转载:http://www.phppan.com/2010/05/mysql-delimit/ 第一次写MySQL存储过程遇到的关于DELIMITER的问题 在很久很久以前写过Oracle的存...

Tomcat实现多项目的快捷部署(3年多来,第一次发现这个”bug“)

用tomcat3年多了,到今天才发现这个问题,惭愧啊。 以前做一个项目的时候,没发现tomcat的困难。但现在同时做多个java项目时,需要来回切换项目的运行。电脑不给力,一般一个tomca...

记录工作中第一次解决bug的小事

关于在openwrt中丢配置的问题     前一段时间,就是国庆节前一两天吧,我的导师带我们去实验室,任务就是改正测试部门发来的bug。本来分了我五个问题,但是因为我之前没有经验,所以着重改其中一个...

用berkelyDB持久化memcached时bug解决过程记录——第一次读取报MEMCACHED_UNKOWN_READ_FAILURE错误

【问题背景】        我们的程序是一个基于tuxedo交易中间件发布的服务,以.so方式更新程序,起停serveice。 由于memcached在程序重启之后,已有缓存数据会全部失效,在访问...

jQuery checkbox bug(第一次能选中生效,第二次失效)

1.问题描述想实现一个效果,当label被点击时,checkbox就切换checked的状态。代码如下 原js代码://.maskCon...
  • zosoyi
  • zosoyi
  • 2017年11月08日 09:32
  • 18
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第一次遇到Mysql的BUG,困扰我好久了。
举报原因:
原因补充:

(最多只允许输入30个字)