【发布时间】:2016-02-04 09:41:10
【问题描述】:
我们的一些数据挖掘工作陷入僵局并失去联系。挑战是我们希望在 Python pymssql 模块由于死锁而失败时捕获。
File "pymssql.pyx", line 465, in pymssql.Cursor.execute (pymssql.c:6572)
OperationalError: (1205, 'Transaction (Process ID 113) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.DB-Lib error message 20018, severity 13:\nGeneral SQL Server error: Check messages from the SQL Server\n')
我们尝试将 CURSOR.EXECUTE 语句包装在 try/except 中,但它不会触发。
try:
CURSOR.execute(query)
except (RuntimeError, TypeError, NameError):
print "RuntimeError: {0}".format(RuntimeError)
我们在 SO 上看到 other examples 的人的代码似乎遇到了死锁,所以我们不确定为什么我们的代码没有解决。
有什么建议可以解决这个死锁吗?
当系统出现故障时,如果能够响起扩音器或其他警报让我们知道,那就太好了。
【问题讨论】:
标签: python sql-server database-deadlocks pymssql