问题标签 [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 投票
5 回答
18307 浏览

sql - 在 MS SQL Server 中,有没有办法“原子地”增加用作计数器的列?

假设 Read Committed Snapshot 事务隔离设置,在您永远不会“丢失”并发增量的意义上,以下语句是“原子的”吗?

我假设在一般情况下,这个更新语句是更大事务的一部分,它不会是。例如,我认为这种情况是可能的:

  • 更新事务 #1 中的计数器
  • 在事务 #1 中做一些其他的事情
  • 使用事务 #2 更新计数器
  • 提交事务#2
  • 提交事务#1

在这种情况下,计数器最终不会只增加 1 吗?如果这是交易中的唯一声明,它会有所不同吗?

像 stackoverflow 这样的网站如何为其问题视图计数器处理这个问题?或者“失去”一些增量的可能性只是被认为是可以接受的?

0 投票
2 回答
1259 浏览

postgresql - 交易,什么时候应该被丢弃和回滚

我正在尝试调试应用程序(在 PostgreSQL 下)并遇到以下错误:“当前事务已中止,命令被忽略”。

据我所知,“事务”只是一个与底层数据库连接相关的概念。

如果连接具有自动提交“false”,您可以通过相同的语句执行查询,只要它没有失败。在这种情况下,您应该回滚。

如果自动提交为“真”,那么只要您的所有查询都被认为是原子的,这并不重要。

使用 auto commit false,即使是一个简单的 PostgreSQL,我也会收到上述错误

失败了,这让我问,在哪个 SQLException(s) 下是一个被认为无效的“事务”,应该回滚还是不用于另一个查询?

使用 MacOS 10.5、Java 1.5.0_16、PostgreSQL 8.3 和 JDBC 驱动程序 8.1-407.jdbc3

0 投票
2 回答
5730 浏览

c# - .NET 中的 TransactionScope 错误?更多信息?

我已经读过(或者可能从同事那里听说过),在 .NET 中,TransactionScope 可以达到其超时,然后 VoteCommit(与 VoteRollback 相对)。这是准确的还是传闻?我无法在网络上找到谈论这个问题的信息(如果它是一个问题),所以我想知道是否有人对此有任何直接经验并且可以提供一些启示?

0 投票
7 回答
10407 浏览

sql - 仅具有选择的事务中的提交和回滚之间有区别吗?

我们在我公司使用的内部应用程序框架使得有必要将每个 SQL 查询放入事务中,即使我知道没有任何命令会在数据库中进行更改。在会话结束时,在关闭连接之前,我提交事务以正确关闭它。我想知道如果我回滚它是否有任何特别的区别,尤其是在速度方面。

请注意,我使用的是 Oracle,但我猜其他数据库也有类似的行为。此外,我对开始交易的要求无能为力,代码库的那部分不在我的掌控之中。

0 投票
1 回答
3002 浏览

.net - 如何确定 SqlConnection 是否被登记到 System.Transactions 的 tx 中?

默认情况下,当我们使用 System.Transactions 中的事务(为实例创建 TransationScope)时,所有 Sql 连接(System.Data.SqlClient.SqlConnection)(但对于 Oracle.DataAccess.OracleConnection 也不是如此)在打开时被登记. 这称为自动登记。不错的功能。但可以通过连接字符串的参数 (enlist=false) 将其关闭。在这种情况下,将不会征用正在打开的连接。但它可以稍后手动登记。所以我的问题是:对于某些给定的 SqlConnection 实例,我如何确定该连接是否被登记(进入 System.Transaction)。我可以查看参数的连接字符串。但这不会做,因为正如我所说的连接可以手动登记。

0 投票
5 回答
36815 浏览

asp.net - “与底层事务管理器的通信失败”错误消息

我们的一个客户最近将一个 ASP.NET 1.1 Web 应用程序升级到使用 COM+ 事务处理的 ASP.NET,并在尝试处理事务时收到以下异常:

异常类型:System.Transactions.TransactionManagerCommunicationException
消息:与底层事务管理器的通信失败。

内部异常类型:System.Runtime.InteropServices.COMException 错误代码:-2147467259
消息:对 COM 组件的调用已返回错误 HRESULT E_FAIL。

以下是 MSDTC 安全设置上的以下设置:

-- 网络 DTC 访问
-- 允许入站
-- 允许出站
-- 需要来电验证

Windows XP SP3 工作站正在尝试建立与 Windows Server 2003 计算机的连接。

有没有其他人遇到过这个错误并且知道如何解决它。

0 投票
2 回答
10706 浏览

sql - postgresql 8.2中的嵌套事务?

我正在研究应用数据库模式更新的脚本。我已经使用 start transaction/commit 设置了我的所有 SQL 更新脚本。我在命令行上将这些脚本传递给 psql。

我现在需要在一个事务中同时应用多个脚本。到目前为止,我想出的唯一解决方案是从原始脚本集中删除启动事务/提交,然后将它们合并到一个新的启动事务/提交块中。我正在编写 perl 脚本来即时执行此操作。

实际上,我想要嵌套事务,我无法弄清楚如何在 postgresql 中执行。

有没有办法为此目的执行或模拟嵌套事务?我已经设置了自动解决任何错误的东西,所以如果任何较低的交易失败,我不需要继续进行顶级交易。

0 投票
1 回答
1700 浏览

sql-server - 两个 MS SQL Server 2005 之间的分布式事务

我需要在两个 MS SQL Server 2005 之间进行 DISTRIBUTED TRANSACTION,它会丢弃一个错误,即 NO ACTIVE TRANSACTION IS PRESENT 或类似这样的事情。DTCTESTER 程序丢弃事务无法完成的错误。btw 135 端口在防火墙上打开。

也许有人知道有什么问题,或者有什么建议?

0 投票
6 回答
1826 浏览

database - 数据库自动提交 - 它直接进入磁盘吗?

所以我知道自动提交会提交每个 sql 语句,但是对数据库的更新是直接进入磁盘还是保留在缓存中直到刷新?

我意识到它依赖于数据库实现。

自动提交是否意味着a)每个语句都是一个完整的事务,它直接进入磁盘或b)每个语句都是一个完整的事务,它可能会进入缓存,稍后将被刷新,或者它可能会直接进入磁盘

澄清会很棒。

0 投票
6 回答
21234 浏览

java - Java Connection.close 是否回滚?

Java Connection.close 是否回滚到 finally 块?

我知道 .Net SqlConnection.close 做到了。

有了这个,我可以在没有捕获的情况下进行 try/finally 块......

例子: