问题标签 [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-server - 创建 1K 个 ID,为所有行分配一个 transactionID,同时考虑到并发性
- 客户端将向服务器请求 1K 行 ID。
- 我必须确保我们有 1K 个 ID,clientID = -1,如果没有,我必须在表中插入 1K 个新 ID。
- 然后我必须将那些 1K ID 与 clientID 链接起来
- 将保留的 1K ID 返回给客户端。
是否就像将所有这些包装到一个事务中一样简单?
multithreading - JDBC:我可以在多线程应用程序中共享连接,并享受良好的交易吗?
使用 JDBC 处理事务的经典方法似乎是将自动提交设置为 false。这将创建一个新事务,并且每次调用 commit 都标志着下一个事务的开始。在多线程应用程序上,我知道为每个线程打开一个新连接是常见的做法。
我正在编写一个基于 RMI 的多客户端服务器应用程序,因此基本上我的服务器为每个新连接无缝地生成一个线程。为了正确处理事务,我应该为每个线程创建一个新连接吗?这种架构的成本是不是太高了?
sql-server - sqlserver中事务的基本模板
如果我只是用以下内容包装我的查询:
如果其中有任何故障,它会自动回滚吗?
通过查看其他代码,他们似乎在检查错误,如果有错误,那么他们执行 GOTO 语句,然后调用 ROLLBACK TRANSACTION
但这似乎是一项工作,必须在每次插入/更新后检查 IF(@@ERROR <> 0)。
mysql - 与会计应用程序的 MySQL 事务
我有一个如下表:
此表用于维护财务类型应用程序的帐户交易。
它的复式记帐,因此从用户 A 到 B 的转移将在表中插入两行,看起来像。
任何账户的余额都是通过汇总该账户的交易来计算的。
例如:
锁定资金转移的最佳方法是什么?我当前的代码如下所示:
这似乎没有完全按预期工作。我在网上看到很多关于交易的例子,基本上都是:开始、借方、贷方、提交。但是检查发件人之间余额的最佳方法是什么?
我有不应该通过的交易。假设一个用户有 3K 的余额,并且两笔交易同时进入 3K,这两项交易在只有一笔交易的情况下才能通过。
谢谢
java - Java EE 的长事务时间解决方案?
我在职业生涯中遇到过几次的问题是在分层服务架构中,如果单个下游系统进入其所有线程都被死锁或某种无限循环消耗的状态,它可能会导致整个客户端应用程序瘫痪该系统中的错误。在这些情况下,Java EE 服务器上的服务器套接字仍在接受来自客户端应用程序的请求并对其进行排队。这会导致客户端应用程序用尽所有等待来自正确建立的套接字连接的响应的线程。然后所有用户都被锁定在系统之外,因为他们的请求也在排队。
我已经想到了一些解决方案,但我想知道社区是否有更好的解决方案。
下游请求的隔离线程池。这成为一个问题,因为您在系统中增加了空闲线程的数量,创建了许多需要足够线程来确保完全吞吐量的小池。产生线程意味着您需要自己处理事务和安全上下文。不是真正受支持的 Java EE 解决方案。
MDB 解决方案,Java EE 的首选异步解决方案,然而,这似乎相当重量级,但具有让应用程序服务器处理管理 MDB 线程池的额外好处。(目前在我的名单上排名第一)
ESB。这甚至更重,并增加了更多的网络和处理时间。但它允许您设置单独的服务超时。还有一个问题是在大公司中实施需要很长时间,所以在我的时间范围内可能不切实际。
大家有什么更好的想法吗?
database - 数据库之外是否需要事务行为?
如果没有事务,我不敢在数据库中做任何复杂的事情。几乎总是有一个简单易用的内置命令。但是,当您开始使用其他持久性数据时,您并没有得到这种简单易用的事务支持。一些例子是
- 文件系统
- 网络服务(我没有使用过)
即使在非持久性数据中,在出现异常后撤消工作块通常也很有用。使用一种语言获得的标准数据结构都不支持事务。
我想知道的是,为什么数据库是特例?
数据库之外的事务行为主题是否有任何有用的链接?
vb.net - 如何在 vb.net 中实现交易方式?
我使用连接到 MS-Access 数据库的 VB.net (200%) 开发了一个应用程序,我使用 TableAdapter 和 Dataset 连接到 Access DB 文件。
我需要实现一个简单的事务方法(提交、回滚)来保存到数据库吗?
有没有办法做到这一点而无需使用内联 SQL 语句?
谢谢,
c# - 使用 LINQ to SQL 定期删除一组记录的最佳方法
这是我第一次破解在我的 ASP.NET 应用程序的生命周期内定期运行以清理存储在我的数据库中的过期会话的方法。它似乎工作得很好,但我的软件工程师对这段代码感觉不“正确”。我已经使用 LINQ to SQL 几个月了,但我对下面的代码不是很有信心。我担心几件事:
在我的应用程序中的不同线程访问数据库的情况下,以下代码是否可以安全运行?我对交易的概念有很好的理解,但我想确保我正确地使用它们。
我的查询会导致性能问题吗?或者在这种情况下选择这个特定表中的所有记录是否合适?此方法仅每 15 分钟运行一次,因此不会在短时间内反复进行查询。
有没有更好的方法可以做到这一点?我有一种挥之不去的感觉。
代码:
asp.net - ASP .net 会员交易
我想在一个事务中进行两个数据库操作。这两个操作是
- 执行一次插入操作。
- 创建一个用户(使用成员资格 - sql 成员资格提供程序)
我尝试了TransactionScope但它在该行进入分布式事务: -- Membership.CreateUser("test", "password", "test@test.com");
由于我只有数据库,如何使用轻量级事务来做到这一点?
提前致谢。
sql-server - 是否应该有一个读取查询的事务?
我一直在阅读一些开发人员/数据库管理员建议在所有数据库调用中使用事务,甚至是只读调用。虽然我了解在事务中插入/更新,但在事务中读取有什么好处?