--- a/server/sources/native.py Fri Jul 16 11:41:17 2010 +0200
+++ b/server/sources/native.py Fri Jul 16 12:40:22 2010 +0200
@@ -468,13 +468,17 @@
try:
cursor = self.doexec(session, sql, args)
except (self.OperationalError, self.InterfaceError):
+ if session.mode == 'write':
+ # do not attempt to reconnect if there has been some write
+ # during the transaction
+ raise
# FIXME: better detection of deconnection pb
self.warning("trying to reconnect")
session.pool.reconnect(self)
cursor = self.doexec(session, sql, args)
except (self.DbapiError,), exc:
# We get this one with pyodbc and SQL Server when connection was reset
- if exc.args[0] == '08S01':
+ if exc.args[0] == '08S01' and session.mode != 'write':
self.warning("trying to reconnect")
session.pool.reconnect(self)
cursor = self.doexec(session, sql, args)