【问题标题】:python-sybase transaction silently fails on updatepython-sybase 事务在更新时静默失败
【发布时间】:2013-12-01 10:38:51
【问题描述】:

我们正在使用 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")

auto_commit 不需要 begin trancommit tran 语句,但这是提供代码的方式)。

我们在大约 5% 的案例中看到了失败。我们如何检测update 语句的失败?

【问题讨论】:

  • 您是否尝试过检查@@error 或在更新命令中使用raiserror 在事务未完成时检查/通知?此外,您可能想确定导致死锁的原因,看看您是否可以阻止它们发生。

标签: python transactions sybase


【解决方案1】:

我认为这是 0.39 及之前的 python-sybase 版本的问题。来自release notes

自 0.39 以来的主要变化:

[剪辑]

在 Sybase 处于死锁情况时添加了新的异常 DeadLockError

我们无法设置 0.40 安装来确认,但以上看起来可能是原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    相关资源
    最近更新 更多