From: Mike Bayer Date: Wed, 22 Jun 2011 16:05:26 +0000 (-0400) Subject: - Added ORA-00028 to disconnect codes, use X-Git-Tag: rel_0_6_9~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6cfbbc3ffb07b29742ffccef2bdf1a05abbfaf6e;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Added ORA-00028 to disconnect codes, use cx_oracle _Error.code to get at the code, [ticket:2200]. --- diff --git a/CHANGES b/CHANGES index b227364d10..eb44ebee26 100644 --- a/CHANGES +++ b/CHANGES @@ -12,6 +12,11 @@ CHANGES after from_statement() were called. [ticket:2199]. +- oracle + - Added ORA-00028 to disconnect codes, use + cx_oracle _Error.code to get at the code, + [ticket:2200]. + 0.6.8 ===== - orm diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py index e0da995f6a..4244d16612 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -685,10 +685,14 @@ class OracleDialect_cx_oracle(OracleDialect): ) def is_disconnect(self, e): + error, = e.args if isinstance(e, self.dbapi.InterfaceError): return "not connected" in str(e) else: - return "ORA-03114" in str(e) or "ORA-03113" in str(e) + # ORA-00028: your session has been killed + # ORA-03114: not connected to ORACLE + # ORA-03113: end-of-file on communication channel + return error.code in (28, 3114, 3113) def create_xid(self): """create a two-phase transaction ID.