0

我正在运行一个cherrypy webservice,想知道最好的选择是从“对等连接重置”中恢复,以通过sqlalchemy进行pymssql连接。现在我必须重新启动网络服务。

4

1 回答 1

1

这似乎是 pymssql 的 is_disconnect() 方法中的一个错误,它忽略 TCP 连接和超时失败,使光标处于不愉快的状态;见http://www.sqlalchemy.org/trac/ticket/2172。现在,您可以将猴子修补为:

from sqlalchemy.dialects.mssql import pymssql

def is_disconnect(self, e):
    for msg in (
        "20003",
        "20004",
        "Error 10054",
        "Not connected to any MS SQL server",
        "Connection is closed"
        ):
        if msg in str(e):
            return True
    else:
        return False

pymssql.MSDialect_pymssql.is_disconnect = is_disconnect
于 2011-05-20T19:12:00.650 回答