【发布时间】:2012-03-29 05:28:45
【问题描述】:
刚刚阅读TransactionScope implementations。
有人可以确认这种技术是由客户端 .net 驱动的,还是需要特定数据库供应商提供的特殊功能?这是只有 SQL Server 的东西吗?
【问题讨论】:
-
至少对于非分布式(和非嵌套)TS,它只是为命令自动设置的线程本地事务信息等。永远不太清楚嵌套/分布式范围如何工作.. . 可能希望专注于 TS 的特定方面,因为即使是 DTC 也并非在所有 SQL Server 隔离级别中都可用。
-
@pst:非嵌套是什么意思。像一级交易?他们是否以某种方式标记/查询线程以发现是否存在正在进行的事务?
-
嗯,这一切都是用线程本地信息完成的(用于处理动态范围),但那是我在对冲我的赌注——例如,并非所有数据库都支持可嵌套事务。
-
(好吧,"nestable" = "concurrent transactions" 更适合这种情况。)
-
@pst:如果你自己实现这个,对 Thread.CurrentContext.ContextID 进行静态查找听起来合适吗?这是唯一的 ID 吗?
标签: c# .net ado.net transactions transactionscope