From: Philip Jenvey Date: Tue, 21 Jul 2009 01:04:26 +0000 (+0000) Subject: detect disconnections on closed cursors X-Git-Tag: rel_0_6_6~96 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42efb71f7a8d4b2e7a0f875daffdc16eeb017642;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git detect disconnections on closed cursors --- diff --git a/lib/sqlalchemy/connectors/zxJDBC.py b/lib/sqlalchemy/connectors/zxJDBC.py index ab446c575c..2d4d713727 100644 --- a/lib/sqlalchemy/connectors/zxJDBC.py +++ b/lib/sqlalchemy/connectors/zxJDBC.py @@ -1,11 +1,7 @@ from sqlalchemy.connectors import Connector -import sys -import re -import urllib - class ZxJDBCConnector(Connector): - driver='zxjdbc' + driver = 'zxjdbc' supports_sane_rowcount = False supports_sane_multi_rowcount = False @@ -29,11 +25,15 @@ class ZxJDBCConnector(Connector): def create_connect_args(self, url): hostname = url.host dbname = url.database - d, u, p, v = "jdbc:%s://%s/%s" % (self.jdbc_db_name, hostname, dbname), url.username, url.password, self.jdbc_driver_name + d, u, p, v = ("jdbc:%s://%s/%s" % (self.jdbc_db_name, hostname, dbname), + url.username, url.password, self.jdbc_driver_name) return [[d, u, p, v], self._driver_kwargs()] def is_disconnect(self, e): - return isinstance(e, self.dbapi.ProgrammingError) and 'connection is closed' in str(e) + if not isinstance(e, self.dbapi.ProgrammingError): + return False + e = str(e) + return 'connection is closed' in e or 'cursor is closed' in e def _get_server_version_info(self, connection): # use connection.connection.dbversion, and parse appropriately