def checkout(self, dbapi_con, con_record, con_proxy): try: dbapi_con.cursor().execute('select 1') except dbapi_con.OperationalError, ex: if ex.args[0] in (2006, 2013, 2014, 2045, 2055): logging.warn('Got mysql server has gone away: %s', ex) raise DisconnectionError("Database server went away") else: raise
def checkout(self, dbapi_con, con_record, con_proxy): try: dbapi_con.cursor().execute('select 1') except dbapi_con.OperationalError as e: if e.args[0] in (2006, 2013, 2014, 2045, 2055): logging.warn(_('Got mysql server has gone away: %s'), e) raise DisconnectionError("Database server went away") else: raise
def mysql_on_checkout(dbapi_conn, connection_rec, connection_proxy): """Ensures that MySQL connections checked out of the pool are alive. Borrowed from: http://groups.google.com/group/sqlalchemy/msg/a4ce563d802c929f Error codes caught: * 2006 MySQL server has gone away * 2013 Lost connection to MySQL server during query * 2014 Commands out of sync; you can't run this command now * 2045 Can't open shared memory; no answer from server (%lu) * 2055 Lost connection to MySQL server at '%s', system error: %d from http://dev.mysql.com/doc/refman/5.6/en/error-messages-client.html """ try: dbapi_conn.cursor().execute('select 1') except dbapi_conn.OperationalError as e: if e.args[0] in (2006, 2013, 2014, 2045, 2055): logging.warn(_('Got mysql server has gone away: %s'), e) raise DisconnectionError("Database server went away") else: raise