【问题标题】:Will it lead to a dead lock if app instance crashes when performing a transaction?如果应用实例在执行事务时崩溃会导致死锁吗?
【发布时间】:2020-08-23 13:14:52
【问题描述】:

假设我们在一个事务中有三个 SQL。应用实例执行开始事务,并执行第一个sql,然后应用实例崩溃。会不会导致死锁或者第一个SQL锁住的资源永远不会释放?

如果它不会导致死锁,那么dbms如何实现这个目标?是否使用了超时机制?

【问题讨论】:

    标签: sql transactions deadlock


    【解决方案1】:

    如果您的应用崩溃,这意味着与数据库的连接丢失。

    数据库服务器最终会注意到这一点并终止数据库会话。

    我知道的所有数据库系统都将通过回滚终止数据库会话,因此应用程序所做的任何事情都将被回滚并释放所有锁。所以没有陷入僵局的危险。

    这究竟是如何完成的,以及服务器需要多长时间才能注意到客户端 (=app) 已消失,但这取决于实际的 DBMS 产品。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多