Sql Server 中如果使用TransactionScope开启一个分布式事务,使用该事务两个并发的连接会互相死锁吗
提问:
如果使用TransactionScope开启一个分布式事务,使用该事务两个并发的连接会互相死锁吗?
如果在.Net中用TransactionScope开启一个事务。 然后在该事务范围内启动两个并发的线程,连接到数据库对同一张表加表级别的X锁并长时间持续占有,请问这种情况这两个线程的其中一个连接会Block住另外一个线程的连接吗? 如果会,那岂不是两个数据库连接就算是在同一个事务中,也会发生死锁?
回答:
#1:分布式事务中的两个数据库连接内部就是两个独立的事务,始终不存在真正的“一个事务有两个连接”,两个事务锁定冲突很正常啊。
#2:以上情况,其实对于数据库来讲, 是2个不同的进程.
也就是说分布式事务中的多个连接是会发生相护阻塞和死锁的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架