问题标签 [transactions]

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 投票
12 回答
34581 浏览

sql - 我应该提交还是回滚读取事务?

我有一个在事务中执行的读取查询,以便我可以指定隔离级别。查询完成后,我该怎么办?

  • 提交交易
  • 回滚事务
  • 什么都不做(这将导致事务在 using 块结束时回滚)

做每一件事的意义是什么?

编辑:问题不在于是否应该使用事务或者是否有其他方法来设置事务级别。问题是提交或回滚不修改任何内容的事务是否有任何区别。有性能差异吗?它会影响其他连接吗?还有其他区别吗?

0 投票
4 回答
3347 浏览

asp.net - Sql 事务:在 ASP.Net 中实现的最佳方式

我有一个应用程序,它有许多不同类型的对象,每个对象都将自己持久化回数据库。到目前为止,这在没有交易的情况下运行良好,我不想疯狂添加它们。但是偶尔需要在整个对象集合开始更新之前启动事务,以确保只有在集合中的所有对象都成功时才真正更新数据库。

例如,假设我有一组苹果。向集合发出命令以更新所有苹果。[事务开始应该在这里] 每个苹果执行代码来更新自己。[事务提交/回滚应该在这里发生]。

我遇到的问题是每个更新现在都是原子的(没有明确地包装在事务中)。我可以将一个 id 传递给每个“苹果”,以识别已隐藏在某种缓存中的事务,但是存在缓存在更新过程中失效并导致不必要问题的风险。

那么最好的方法是什么?

0 投票
2 回答
2741 浏览

c# - 使用 Transaction Binding=Explicit Unbind 时连接不会关闭;在连接字符串中

我在此处Transaction Binding=Explicit Unbind推荐的连接字符串中使用,因为我也在使用带有超时的 TransactionScope。问题是连接似乎在被处理后并没有关闭,最终连接池中没有更多可用的连接。当我修改 TransactionTimeoutIssueDemo(请参阅链接)并在循环中运行 TransactionScopeTest()(使用显式取消绑定连接字符串)足够多次以用完连接池中的所有可用连接时,我得到了相同的结果。池中连接的默认值为 100,但这可以通过使用设置来更改。即使 SqlConnection 和 TransactionScope 都与Max Pool Size =10using条款。有谁知道如何处理这个?

0 投票
2 回答
2249 浏览

c# - 如何使用 SQL Profiler 确认 NHibernate 实际使用事务?

我正在使用以下通用代码来保存实体。

但是,当我观看 SQL Profiler 时,我看不到任何BEGIN TRANSACTION被发送到 SQL Server。这是正常的,预期的吗?

0 投票
4 回答
2767 浏览

asp.net - 如何使用 Asp.Net 从 Sql 数据库中获取最后创建的条目的 ID

我将用一个例子来解释问题:

我的数据库中有两个表,命名条目,标签

两个表中都有一个名为 ID_ENTRY 的列。当我将记录添加到表条目时,我必须获取最后添加记录的 ID_ENTRY 并将其添加到表标签中。我该怎么做?

0 投票
1 回答
205 浏览

asp.net - 系统事务 .net 从会话中删除异常

我是 asp.net 的新手。我正在开发一个正在执行系统事务的应用程序。在代码中的某个时刻,会引发异常并且代码会爆炸。单击网格列表中的特定行记录时,它会爆炸。然而,在用户看到异常之后......他们返回并尝试单击其他一些记录......这应该可以工作......他们再次看到相同的异常,这不是第二次引起的,但仍然出现,因为它出现了第一次。如果用户注销......重新登录并点击第二行......这应该不会有任何问题,这会自行解决。

这是否与用户返回网格列表页面时未从会话中清除的异常有关..在他们看到异常错误页面之后..?

0 投票
4 回答
4606 浏览

php - mysqli->error: 是只针对最后一个查询,还是针对查询组的最后一个错误?

我是 mysqli 的新手,并试图确认如果我像下面这样,errno 将设置为最后一个错误(如果有),而不是最后一个查询的错误。

这是一种体面的做法,还是我应该检查每个查询之间的错误?

谢谢!

0 投票
11 回答
26724 浏览

php - 如何检测该事务已经开始?

我正在使用 Zend_Db 在事务中插入一些数据。我的函数启动一个事务,然后调用另一个方法,该方法也尝试启动一个事务,当然失败了(我使用的是 MySQL5)。所以,问题是 - 我如何检测交易已经开始?这是一个示例代码:

在 PaymentInstrument::create 内部还有另一个 beginTransaction 语句,它产生表示事务已经开始的异常。

0 投票
10 回答
48644 浏览

django - Django:如何防止同时修改数据库条目

是否有办法防止两个或多个用户同时修改同一数据库条目?

向执行第二次提交/保存操作的用户显示错误消息是可以接受的,但数据不应被静默覆盖。

我认为锁定条目不是一种选择,因为用户可能会使用“返回”按钮或简单地关闭他的浏览器,从而永远保持锁定状态。

0 投票
5 回答
20664 浏览

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

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

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

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

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

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