【问题标题】:Concurency problem with Isolation - read-committed隔离的并发问题 - 已提交读
【发布时间】:2011-02-26 07:15:07
【问题描述】:

我必须编写一个简单的演示,用于从联合银行金额中提取金额。Andy 和 Jen 拥有一个编号为 123 的联合银行账户。假设他们的账户中有 100 美元。Jen 和 Andy 正在同时操作他们的账户,并且当时都试图提取 90 美元。我的交易隔离设置为已提交,并且都能够提取资金离开余额为 -(minus)80$,尽管我限制余额不应小于 0。

我正在使用休眠。版本控制是解决这个问题的唯一方法还是我应该去另一个隔离级别?

【问题讨论】:

  • 你知道答案吗?如果不是......那么你可能知道家庭作业有多难。无知是幸福

标签: hibernate database-design


【解决方案1】:

我很想说乐观锁定确实是要走的路(这是我要做的,而不是更改隔离级别,对同一记录的并发访问听起来像是一种特殊情况)。

【讨论】:

  • 并发访问是需要考虑的关键问题,尤其是在银行应用程序中。这不是特殊情况。
  • @HLGEM 也许我没有正确表达自己,但你能告诉我我在哪里写的忽略并发访问吗?我建议使用 optimistic 锁定,这是一种处理并发的方法,并且适用于同一记录上的并发访问不太可能发生的事件,因此名称中的 optimistic (乐观锁定可能不适用于高并发应用程序)。这个问题的特定场景听起来像是一个异常事件,乐观锁定可以正常工作。如果您了解什么是乐观锁定,您或许应该重新考虑您的投票
猜你喜欢
  • 1970-01-01
  • 2020-08-18
  • 2020-01-08
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
相关资源
最近更新 更多