}
}
- ast_log(LOG_WARNING, "SQL Execute error %d! Attempting a reconnect...\n", res);
+ ast_log(LOG_WARNING, "SQL Execute error %d! Verifying connection to %s [%s]...\n", res, obj->parent->name, obj->parent->dsn);
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
stmt = NULL;
- obj->up = 0;
- /*
- * While this isn't the best way to try to correct an error, this won't automatically
- * fail when the statement handle invalidates.
- */
- /* XXX Actually, it might, if we're using a non-pooled connection. Possible race here. XXX */
- odbc_obj_disconnect(obj);
- odbc_obj_connect(obj);
+ if (!ast_odbc_sanity_check(obj)) {
+ break;
+ }
continue;
} else
obj->last_used = ast_tvnow();
break;
} else {
- ast_log(LOG_WARNING, "SQL Prepare failed. Attempting a reconnect...\n");
- odbc_obj_disconnect(obj);
- odbc_obj_connect(obj);
+ ast_log(LOG_WARNING, "SQL Prepare failed. Verifying connection to %s [%s]\n", obj->parent->name, obj->parent->dsn);
+ ast_odbc_sanity_check(obj);
}
}