0
我正在运行一个cherrypy web服务,想知道什么是通过sqlalchemy从“通过对等方重置连接”恢复pymssql连接的最佳选择。现在我必须重新启动webservice。sqlalchemy pymssql“连接重置对等”恢复
我正在运行一个cherrypy web服务,想知道什么是通过sqlalchemy从“通过对等方重置连接”恢复pymssql连接的最佳选择。现在我必须重新启动webservice。sqlalchemy pymssql“连接重置对等”恢复
这似乎是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