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

sql - Web 应用程序应该使用显式 SQL 事务吗?

考虑一个常规的 Web 应用程序,主要通过 SQL 数据库执行基于表单的 CRUD 操作。在这样的 Web 应用程序中是否应该有明确的事务管理?还是应该简单地使用自动提交模式?如果进行交易,“每个请求的交易”是否足够?

0 投票
1 回答
315 浏览

.net - How do I make IEditableObject.EndEdit atomic?

If I have an Address class that implements IEditableObject, I might have EndEdit implementation like this:

If there is an exception on _city, then _line1, _line2, and possibly _city should revert. This problem isn't limited to EndEdit but probably found in other places as well.

0 投票
2 回答
1012 浏览

.net - 如何使 IEditableObject.EndEdit 成为原子的?

如果我有一个实现 IEditableObject 的 Address 对象,我可能会有这样的 EndEdit 实现:

例如,如果更新_state时出现异常,则应重置所有 5 个属性。这个原子更新问题可能不仅限于 EndEdit。

0 投票
3 回答
2715 浏览

java - How do you determine if a JDBC Connection was retrieved from a JTA enabled DataSource or straight JDBC?

I'm using a vendor API to obtain a JDBC connection to the application's database. The API works when running in the application server or when running in a stand-alone mode. I want to run a series of SQL statements in a single transaction. I'm fine with them occurring in the context of the JTA transaction if it exists. However, if it doesn't then I need to use the JDBC transaction demarcation methods. (Calling these methods on a JDBC connection that is participating in a JTA transaction causes a SQLException.)

So I need to be able to determine whether the Connection came from the JTA enabled DataSource or if it's just a straight JDBC connection.

Is there a straight forward way to make this determination?

Thanks!

0 投票
4 回答
4625 浏览

.net - .NET TransactionScope 类和 T-SQL TRAN COMMIT 和 ROLLBACK

我目前正在编写一个应用程序,该应用程序需要对我的业务实体进行多次插入、更新和删除。我使用 TransactionScope 类来保证所有存储过程都可以作为单个工作单元提交或回滚。

我的问题是,如果我在 .NET 类库中使用 TransactionScope 类,我还需要使用 COMMIT TRAN 和 ROLLBACK TRAN 是我的每个存储过程吗?

0 投票
3 回答
10811 浏览

c# - LINQ to SQL 和并发问题

我们正在尝试建立一个大批量订单记录系统。有三个主表: 1. Orders 2. OrderDetails 3. OrderShipment

Shipment 表包含每个订单的 n 条记录,并且在客户接受订单之前可以更改任何记录的发货条目,之后订单将被冻结。(业务需求)

尽管这在现实世界的场景中可能不会发生……在我们的负载测试期间,我们得到了 System.Data.Linq.ChangeConflictException 异常。在事务中结束提交也无济于事。我们不能强制 LINQ 在整个更新操作期间锁定行吗?

有没有其他方法可以克服这个问题?

0 投票
3 回答
9718 浏览

oracle - Oracle - 事务、回滚段和 undo_retention 参数如何工作?

我不是 DBA,我很难理解 Oracle 的事务管理流程。

根据我通过阅读互联网上一些看起来可靠的页面(最值得注意的是这个AskTom 注释——但不要理会评论)所了解的情况,提交事务时,尚未在实际数据块上报告新数据,但保持记录在回滚段上。当有人对数据发出 SELECT,或者当 UNDO_RETENTION 秒过去时——无论这两个事件中的哪一个先发生——,然后(并且仅在那时)将新数据写入数据块。

但是我们公司的某个人,据说是知道的,最近告诉我相反:据他说,当一个事务提交时,新数据立即写入数据块,回滚段/撤消表空间保留旧数据以备不时之需。 UNDO_RETENTION 秒的持续时间。在此期间,这些旧数据保持可用,供交易前在 SCN 上启动的查询访问。

那么,Oracle 内部到底发生了什么,您能否提供参考来支持您的回复?

我们使用的是 Oracle 9.2.0.8。

提前致谢。

0 投票
2 回答
1616 浏览

.net - 在 .Net 中通过 Web 服务调用维护 SQL 事务

如何执行数据库事务,在其中创建新记录,然后使用从数据库返回的新记录 ID 调用 Web 服务,该 ID 也将操作同一个数据库?我显然可以直接从同一个 SQLConnection 对象更新所有表,但是 Web 服务调用中的逻辑可能会发生变化,我确实需要确保我的代码所做的更改与被调用的 Web 服务引入的那些更改一起提交。

0 投票
1 回答
1348 浏览

c# - 调用中止后的 MSDTC 和 Oracle 事务锁?

我在使用 MSDTC 和 Oracle 时遇到了问题。这是一个 .net 应用程序,我使用 TransactionScope 类来控制事务。

问题是,有时,如果事务回滚(在没有调用 scope.Complete 的情况下调用了 scope.Dispose),它会长时间处于“Aborting”状态,而不是释放锁定的记录。即使事务处于“Aborting”状态,当调用 Dispose 以中止事务时,它也会立即返回,因此线程不会卡住。

有谁知道什么会导致事务表现得像这样并在调用 abort 后保留锁?

谢谢

0 投票
9 回答
112472 浏览

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

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

该操作对事务的状态无效

这是我的通话结构:

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