我们使用python-sybase 0.38来事务执行更新语句。我们看到由于Sybase日志中的死锁而导致事务失败,但是,python函数调用似乎没有任何错误地执行 - 没有抛出异常(但是行没有更新)。
syb = Sybase.connect(server, user, password, database, auto_commit = 1)
syb.execute("begin tran")
syb.execute("update ....")
syb.execute("commit tran")
(begin tran
不需要commit tran
和auto_commit
语句,但这是代码的提供方式。)
我们看到的失败率大概有5%。我们如何检测update
语句的失败?
答案 0 :(得分:0)
我认为这是python-sybase版本的问题,包括0.39。来自release notes:
自0.39以来的主要变化:
[snip]
当Sybase处于死锁状态时添加了新的异常DeadLockError
我们无法设置0.40安装以确认,但上述情况可能是原因。