如果应用实例在执行事务时崩溃,是否会导致死锁?

问题描述 投票:0回答:1

假设一次交易中有三个SQL。应用实例执行开始事务,并执行第一个sql,然后应用实例崩溃。它会导致死锁,还是将永远不会释放第一个SQL锁定的资源?

如果不会导致死锁,dbms如何实现该目标?是否使用超时机制?

sql transactions deadlock
1个回答
0
投票

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

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

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

但是,具体如何完成以及服务器注意到客户端(= app)消失所需的时间,取决于实际的DBMS产品。

© www.soinside.com 2019 - 2024. All rights reserved.