From 42efb71f7a8d4b2e7a0f875daffdc16eeb017642 Mon Sep 17 00:00:00 2001 From: Philip Jenvey Date: Tue, 21 Jul 2009 01:04:26 +0000 Subject: [PATCH] detect disconnections on closed cursors --- lib/sqlalchemy/connectors/zxJDBC.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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 -- 2.47.3