0

私はcherrypy Webサービスを実行しており、sqlalchemyを介したpymssql接続の「ピアによる接続リセット」から回復するための最良のオプションは何か疑問に思っています。今すぐWebサービスを再起動する必要があります。

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 に答える