问题标签 [transactionscope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
676 浏览

transactions - SQL Server 2000 和 System.Transactions.TransactionScope()

是否可以使用带有 SQL2000 的 TransactionScope() 创建 LIGHTWEIGHT 事务?或者,如果没有,是否有使用 CommitableTransaction 和/或类似方法的解决方法?

所以答案基本上是,“如果你想在 SQL2000 上进行本地到 1 个服务器的事务,不要使用 TransactionScope()”。

0 投票
9 回答
112472 浏览

c# - “操作对事务的状态无效”错误和事务范围

当我尝试调用包含 SELECT 语句的存储过程时出现以下错误:

该操作对事务的状态无效

这是我的通话结构:

我在事务中创建到同一个数据库的另一个连接有问题吗?

0 投票
5 回答
20664 浏览

linq-to-sql - 针对 Sql Server 2000 的 TransactionScope 错误 - 合作伙伴事务管理器已禁用其对远程/网络事务的支持

我正在尝试针对我的 Sql 2000 数据库为我的 Linq-to-Sql 操作设置一个简单的事务。使用 TransactionScope 它看起来像这样:

但是,我不断收到以下错误:

合作伙伴事务管理器已禁用其对远程/网络事务的支持。(来自 HRESULT 的异常:0x8004D025)

但是,如果我使用传统交易设置交易,它可以正常工作。所以这很好用:

我想知道 TransactionScope 的幕后工作是否与我的第二个实现不同。如果没有,我不使用 TransactionScope 会失去什么?此外,有关导致错误的原因的任何指导也很好。我已经确认 MSDTC 正在 sql server 和我的客户端计算机上运行。

0 投票
2 回答
1026 浏览

nunit - 这安全吗?- NUnit 基类打开和回滚一个 TransactionScope

我想为 NUnit 测试夹具创建一个基类会很好,它在 SetUp 阶段打开一个 TransactionScope,然后在拆卸期间回滚事务。像这样的东西:

你认为这是个好主意吗?

显然,该数据库只是一个测试数据库,而不是实时数据库,但如果它充满了来自单元测试的垃圾数据,它仍然会很烦人。

当运行涉及大量数据访问的单元测试时,其他人会做什么?

0 投票
6 回答
17659 浏览

c# - TransactionScope 不回滚事务

这是我的事务范围源代码的当前架构。第三个插入引发 .NET 异常(不是 SQL 异常),它不会回滚前两个插入语句。我做错了什么?

编辑: 我从 insert2 和 insert3 中删除了 try/catch。我还从 insert1 try/catch 中删除了异常处理实用程序并放入“throw ex”。它仍然不回滚事务。

编辑 2:我在 Insert3 方法中添加了 try/catch,并在 catch 语句中添加了一个“throw”。它仍然不回滚事务。

更新:根据我收到的反馈,“SqlHelper”类是使用SqlConnection 对象建立与数据库的连接,然后创建一个SqlCommand 对象,将CommandType 属性设置为“StoredProcedure”并调用SqlCommand 的ExecuteNonQuery 方法。

我也没有将 Transaction Binding=Explicit Unbind 添加到当前连接字符串。我将在下一次测试中添加它。

0 投票
5 回答
1599 浏览

transactions - 交易范围

事务范围如何工作?它如何知道何时已经使用了另一个上下文以及我如何在我的代码中实现另一种范围。

我主要是 vb.net 开发人员,但如果你写的话,我可以阅读 c#。

如果上述内容过于模糊:

我了解 system.transactions 的作用以及如何使用它。我想知道的是如何创建类似的东西,我自己的库,我可以包装一些可以以与 system.transactions 范围相同的方式处理它的代码。我计划将它与缓存模型一起使用,它将大大增强它。我正在寻找有关事务范围如何知道的详细信息,例如存在父范围,因此它可以附加到它等等,或者提交需要在更高级别或更高联系人中进行。

例如,如果我有以下

Scope1 不会提交,因此 scope2 或 scope3 也不会提交,因为它们的父级都是 scope1 的上下文。我希望能够使用我自己的库进行设置。

0 投票
2 回答
96900 浏览

c# - TransactionScope 如何回滚事务?

我正在编写一个集成测试,我将在其中将许多对象插入数据库,然后检查以确保我的方法是否检索到这些对象。

我与数据库的连接是通过 NHibernate...我通常创建这样一个测试的方法是执行以下操作:

但是,我最近发现了TransactionScope显然可以用于这个目的......

我发现的一些示例代码如下:

我相信如果我不包括txScope.Complete()插入的数据将被回滚的行。但不幸的是,我不明白这怎么可能......txScope对象如何跟踪数据库中的deptAdapterempAdapter对象及其事务。

我觉得我在这里遗漏了一些信息......我真的能够通过使用包围我的代码来替换我的BeginTransaction()and ) 调用吗?RollbackTransaction(TransactionScope

如果不是,那么如何TransactionScope回滚事务?

0 投票
6 回答
1545 浏览

sharepoint - SharePoint 2007:如何在事务中执行一系列操作?

我很想知道如何在事务中的 SharePoint 上下文中执行一系列操作。例如,我希望能够执行以下操作:

我知道这对于 OOTB API 是不可能的,但必须有人想出如何做到这一点。是否可以获得对数据库连接的引用以处理事务?还是有其他想法?

0 投票
2 回答
301 浏览

.net - 在 .Net 中,我可以指定默认的应用程序范围的隔离级别吗?

当我使用一个对象时,我可以使用事务选项TransactionScope指定 Isoaltion Level 。

如果未指定,则使用的默认隔离级别是什么?

是否可以设置 s 将使用的应用程序范围的默认隔离级别TransactionScope

0 投票
4 回答
5635 浏览

sql-server - 在 NOLOCK 上使用 ADO.NET TransactionScope vs ExecuteCommand 的大容量站点,直接读取未提交?

刚刚阅读了 Omar 在他的博客 Linq to SQL 上的这篇有趣的文章,使用未提交的读取来解决事务死锁和查询超时问题,最后 Javed Hasan 开始与他争论他对大容量站点上无锁情况的解决方案。

这里要解决的问题是,从 sql 的意义上来说,我们需要使用带 NOLOCK 的 Select 语句或使用 SET TRANSACTION LEVEL READ UNCOMMITTED,否则 DB 中的大量行将被锁定并导致错误。Omar 使用的技术是 Linq2Sql,所以问题是我们如何在您的 C# 数据访问代码中实现这一点,这样就不会发生上述情况?

基本上在帖子中,Omar 通过在现实世界的站点上工作和测试以及使用 SqlProfiler 等工具来提出他的解决方案,而 Javed Hasan 则通过 MSDN 文档和 Scott Hanselman 的博客文章等来提出他的解决方案。

奥马尔建议使用以下

而 Javed Hasan 建议

我很想知道你们在 StatckOverflow 这样的高容量网站上对这个特定问题做了什么,或者 Jeff 和他们的人在这方面做了什么?

编辑:阅读第一篇文章后,我想在 Omar 的文章中指出一些事情。

  1. 他的方法确实遇到了连接问题,但他解决了,请参阅他的帖子。
  2. 更重要的是,他提到他尝试了使用 ADO.NET Transaction 的方式,甚至尝试了 Scott Hanselman 在他的博客上写的,但它不适用于大容量站点,它会大大降低性能。Omar 说,“System.Transactions 有很大的开销。我从来没有在大容量网站上使用它而不使 CPU 达到 100% 并且 Req/sec 下降到 1/10。它是为企业应用程序设计的,而不是为了高量网站。”