问题标签 [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.
sql - Web 应用程序应该使用显式 SQL 事务吗?
考虑一个常规的 Web 应用程序,主要通过 SQL 数据库执行基于表单的 CRUD 操作。在这样的 Web 应用程序中是否应该有明确的事务管理?还是应该简单地使用自动提交模式?如果进行交易,“每个请求的交易”是否足够?
.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.
.net - 如何使 IEditableObject.EndEdit 成为原子的?
如果我有一个实现 IEditableObject 的 Address 对象,我可能会有这样的 EndEdit 实现:
例如,如果更新_state时出现异常,则应重置所有 5 个属性。这个原子更新问题可能不仅限于 EndEdit。
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!
.net - .NET TransactionScope 类和 T-SQL TRAN COMMIT 和 ROLLBACK
我目前正在编写一个应用程序,该应用程序需要对我的业务实体进行多次插入、更新和删除。我使用 TransactionScope 类来保证所有存储过程都可以作为单个工作单元提交或回滚。
我的问题是,如果我在 .NET 类库中使用 TransactionScope 类,我还需要使用 COMMIT TRAN 和 ROLLBACK TRAN 是我的每个存储过程吗?
c# - LINQ to SQL 和并发问题
我们正在尝试建立一个大批量订单记录系统。有三个主表: 1. Orders 2. OrderDetails 3. OrderShipment
Shipment 表包含每个订单的 n 条记录,并且在客户接受订单之前可以更改任何记录的发货条目,之后订单将被冻结。(业务需求)
尽管这在现实世界的场景中可能不会发生……在我们的负载测试期间,我们得到了 System.Data.Linq.ChangeConflictException 异常。在事务中结束提交也无济于事。我们不能强制 LINQ 在整个更新操作期间锁定行吗?
有没有其他方法可以克服这个问题?
oracle - Oracle - 事务、回滚段和 undo_retention 参数如何工作?
我不是 DBA,我很难理解 Oracle 的事务管理流程。
根据我通过阅读互联网上一些看起来可靠的页面(最值得注意的是这个AskTom 注释——但不要理会评论)所了解的情况,提交事务时,尚未在实际数据块上报告新数据,但保持记录在回滚段上。当有人对数据发出 SELECT,或者当 UNDO_RETENTION 秒过去时——无论这两个事件中的哪一个先发生——,然后(并且仅在那时)将新数据写入数据块。
但是我们公司的某个人,据说是知道的,最近告诉我相反:据他说,当一个事务提交时,新数据立即写入数据块,回滚段/撤消表空间保留旧数据以备不时之需。 UNDO_RETENTION 秒的持续时间。在此期间,这些旧数据保持可用,供交易前在 SCN 上启动的查询访问。
那么,Oracle 内部到底发生了什么,您能否提供参考来支持您的回复?
我们使用的是 Oracle 9.2.0.8。
提前致谢。
.net - 在 .Net 中通过 Web 服务调用维护 SQL 事务
如何执行数据库事务,在其中创建新记录,然后使用从数据库返回的新记录 ID 调用 Web 服务,该 ID 也将操作同一个数据库?我显然可以直接从同一个 SQLConnection 对象更新所有表,但是 Web 服务调用中的逻辑可能会发生变化,我确实需要确保我的代码所做的更改与被调用的 Web 服务引入的那些更改一起提交。
c# - 调用中止后的 MSDTC 和 Oracle 事务锁?
我在使用 MSDTC 和 Oracle 时遇到了问题。这是一个 .net 应用程序,我使用 TransactionScope 类来控制事务。
问题是,有时,如果事务回滚(在没有调用 scope.Complete 的情况下调用了 scope.Dispose),它会长时间处于“Aborting”状态,而不是释放锁定的记录。即使事务处于“Aborting”状态,当调用 Dispose 以中止事务时,它也会立即返回,因此线程不会卡住。
有谁知道什么会导致事务表现得像这样并在调用 abort 后保留锁?
谢谢
c# - “操作对事务的状态无效”错误和事务范围
当我尝试调用包含 SELECT 语句的存储过程时出现以下错误:
该操作对事务的状态无效
这是我的通话结构:
我在事务中创建到同一个数据库的另一个连接有问题吗?