--- xdb_sql/xdb_sql.c 2006/03/15 22:16:37 1210 +++ xdb_sql/xdb_sql.c 2006/04/25 22:01:39 1211 @@ -269,10 +269,18 @@ ret = mysql_query(xq->mysql, query); /* failed and we need to reconnect? */ - if (ret == CR_SERVER_LOST || ret == CR_SERVER_GONE_ERROR) { - xdb_sql_mysql_connect(i, xq); + if (ret) { + unsigned int query_errno = mysql_errno(xq->mysql); + if (query_errno == CR_SERVER_LOST || query_errno == CR_SERVER_GONE_ERROR) { + log_debug2(ZONE, LOGT_STORAGE, "connection lost, trying to reconnect to MySQL server"); + xdb_sql_mysql_connect(i, xq); - ret = mysql_query(xq->mysql, query); + ret = mysql_query(xq->mysql, query); + + if (ret == 0) { + log_notice(i->id, "connection to MySQL server %s:%i had been lost, and has been reestablished", xq->mysql_host , xq->mysql_port); + } + } } /* still an error? log and return */