提问:

如果使用TransactionScope开启一个分布式事务,使用该事务两个并发的连接会互相死锁吗?

如果在.Net中用TransactionScope开启一个事务。

然后在该事务范围内启动两个并发的线程,连接到数据库对同一张表加表级别的X锁并长时间持续占有,请问这种情况这两个线程的其中一个连接会Block住另外一个线程的连接吗?

如果会,那岂不是两个数据库连接就算是在同一个事务中,也会发生死锁? 

回答:

#1:分布式事务中的两个数据库连接内部就是两个独立的事务,始终不存在真正的“一个事务有两个连接”,两个事务锁定冲突很正常啊。

#2:以上情况,其实对于数据库来讲, 是2个不同的进程.

也就是说分布式事务中的多个连接是会发生相护阻塞和死锁的。

原文链接

Sql Server 中如果使用TransactionScope开启一个分布式事务,使用该事务两个并发的连接会互相死锁吗的更多相关文章

  1. SQL SERVER 中如何获取日期(一个月的最后一日、一年的第一日等等)

    https://blog.csdn.net/deepwishly/article/details/9101307 这是计算一个月第一天的SQL 脚本:   SELECT DATEADD(mm, DAT ...

  2. SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是 EXEC 和 SP_EXECUTESQL ,我们先来看一下两种方 ...

  3. Sql Server中Float格式转换字符串varchar方法(转)

    1.[Sql Server](70)  SELECT CONVERT(varchar(100), CAST(@testFloat AS decimal(38,2)))SELECT STR(@testF ...

  4. SQL Server中的SQL语句优化与效率问题

    很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhan ...

  5. SQL Server中锁与事务隔离级别

    SQL Server中的锁分为两类: 共享锁 排它锁 锁的兼容性:事务间锁的相互影响称为锁的兼容性. 锁模式 是否可以持有排它锁 是否可以持有共享锁 已持有排它锁 否 否 已持有共享锁 否 是 SQL ...

  6. 关于SQL SERVER中的FLOAT转换为VARCHAR

    关于SQL SERVER中的FLOAT转换为VARCHAR 一个FLOAT型的字段,要转换为VARCHAR,可是小数点后面的都自动被删去了...后查得可以通过如下转换获得: SELECT CAST(C ...

  7. SQL Server中的SQL语句优化与效率

    很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhan ...

  8. SQL Server中TempDB管理(版本存储区的一个example)

    原文:SQL Server中TempDB管理(版本存储区的一个example) 原文来自: http://blogs.msdn.com/b/sqlserverstorageengine/archive ...

  9. Sql Server 中一个非常强大的日期格式化函数

    Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AMSelect CONV ...

随机推荐

  1. Silverlight中使用MVVM(2)-(提高)

    在第一篇文章中的示例中,我们已经简单的了解了应用MVVM模式的流程,我的本意是你已经了解了一点MVVM的概念,然后又没有一个较好的例子学习,可以跟着我一起学习MVVM模式,所以这个部分,都是没有理论知 ...

  2. JavaScript初探二

    //----------总结01.查找dom元素 document.getElementById();//通过id获取一个dom元素 document.getElementsByClassName() ...

  3. C#中将String类型保存到本地文件的方法

    今天刚刚遇到,要在WinForm中把一个xml保存到本地, 由于之前是学习java的,一时间还真不知道怎么写, 没想到C#居然那么方便,就3句代码就实现了我要的功能: StreamWriter sw ...

  4. Redis集合操作

    Redis的集合以无序的形式存储多个各不相同的元素 (常用的集合命令) SADD : SADD key-name item [item ...]----------将一个或多个元素添加到集合里,并返回 ...

  5. 关于c++输出中的endl

    背景:本来这是一个很小的词,按理说写上一篇日志有点不值得,但是或许有一些东西,你也不知道,看看吧!         endl 是一个特殊值,称为操作符(manipulator),将它写入输出流时,具有 ...

  6. MQ单一消息完整流程

    public class QueueManger { private static string QueuePath = @".\private$\{0}"; /// <su ...

  7. Join 具体用法

    一.Join 语法概念 Join 按照功能可分为三大类: left join (左连接) 即:取左边表的全部数据,即使右边表没有对应的数据,也是会把左边表的数据取出来,并返回 right join(右 ...

  8. Linux-mkdosfs格式化磁盘命令(15)

    名称:mkdosfs 使用:mkdosfs [块设备名称] 说明: 将一个块设备格式化为DOS磁盘类型 例: mkdosfs /dev/memblock //将memblock块设备格式化为dos磁盘 ...

  9. 了解java虚拟机—CMS回收器(8)

    CMS(Concurrent Mark Sweep)回收器 它使用的是标记清除算法,同时又是一个使用多线程并行回收的垃圾回收器. CMS主要工作步骤 CMS工作时主要步骤有初始标记.并发标记.预清理. ...

  10. 使用json-org包实现POJO和json的转换

    使用json-org包实现POJO和json的转换 这个jar包把对象转换成json超级舒服,所以顺便记录一下吧 把单个pojo对象转换成json对象 Student student = new St ...