440 except (self.OperationalError, self.InterfaceError): |
440 except (self.OperationalError, self.InterfaceError): |
441 # FIXME: better detection of deconnection pb |
441 # FIXME: better detection of deconnection pb |
442 self.warning("trying to reconnect") |
442 self.warning("trying to reconnect") |
443 session.pool.reconnect(self) |
443 session.pool.reconnect(self) |
444 cursor = self.doexec(session, sql, args) |
444 cursor = self.doexec(session, sql, args) |
|
445 except (self.DbapiError,), exc: |
|
446 # We get this one with pyodbc and SQL Server when connection was reset |
|
447 if exc.args[0] == '08S01': |
|
448 self.warning("trying to reconnect") |
|
449 session.pool.reconnect(self) |
|
450 cursor = self.doexec(session, sql, args) |
|
451 else: |
|
452 raise |
|
453 |
445 results = self.process_result(cursor, cbs) |
454 results = self.process_result(cursor, cbs) |
446 assert dbg_results(results) |
455 assert dbg_results(results) |
447 return results |
456 return results |
448 |
457 |
449 def flying_insert(self, table, session, union, args=None, varmap=None): |
458 def flying_insert(self, table, session, union, args=None, varmap=None): |