myql客户端正在执行mysql_query时,断开网络,出现阻塞
问题现象:
使用libmysqlclient编写一个客户端,参考相关说明在mysql_init之前和mysql_real_connect之后做了如下设置:
bool reconnect = 0;
mysql_options(db_handle, MYSQL_OPT_RECONNECT, &reconnect);
unsigned int uTimeOut = 1;
mysql_options(db_handle, MYSQL_OPT_CONNECT_TIMEOUT, &uTimeOut);
mysql_options(db_handle, MYSQL_OPT_READ_TIMEOUT, &uTimeOut);
mysql_options(db_handle, MYSQL_OPT_WRITE_TIMEOUT, &uTimeOut);
执行mysql_query时,断开网络,出现阻塞,程序会一直卡在这儿。
使用netstat -an | grep 3306 在数据库所在的机器上发现TCP链接已经中断,但在客户端所在的机器TCP连接还在ESTABLISHED中。
经测试大概 15分钟后才会感知TCP连接中断。
请教各位大神其中的原因!