Connection retry improvement for #342

Connection retry during a query is only possible if transfer_started is not started
pull/378/head
René Cannaò 11 years ago
parent 9e1b71258f
commit 53cd99ecb1

@ -713,7 +713,11 @@ handler_again:
bool retry_conn=false;
proxy_error("Detected an offline server during query: %s, %d\n", myconn->parent->address, myconn->parent->port);
if ((myds->myconn->reusable==true) && myds->myconn->IsActiveTransaction()==false) {
retry_conn=true;
if (myds->myconn->MyRS && myds->myconn->MyRS->transfer_started) {
// transfer to frontend has started, we cannot retry
} else {
retry_conn=true;
}
}
myds->destroy_MySQL_Connection_From_Pool();
myds->fd=0;
@ -731,7 +735,11 @@ handler_again:
proxy_error("Detected a broken connection during query: %d, %s\n", myerr, mysql_error(myconn->mysql));
//if ((myds->myconn->reusable==true) && ((myds->myprot.prot_status & SERVER_STATUS_IN_TRANS)==0)) {
if ((myds->myconn->reusable==true) && myds->myconn->IsActiveTransaction()==false) {
retry_conn=true;
if (myds->myconn->MyRS && myds->myconn->MyRS->transfer_started) {
// transfer to frontend has started, we cannot retry
} else {
retry_conn=true;
}
}
myds->destroy_MySQL_Connection_From_Pool();
myds->fd=0;

Loading…
Cancel
Save