947得票13回答
乐观锁与悲观锁

我理解乐观锁和悲观锁的区别,现在请问有人能够解释一下在什么情况下通常使用它们吗? 而且这个问题的答案是否会根据是否使用存储过程来执行查询而改变? 但是只是为了确认,乐观意味着“读取时不锁定表”,而悲观意味着“读取时锁定表”。

39得票2回答
用具体(Java)示例解释乐观锁。

我花了整个上午阅读了Google搜索出来的关于乐观锁的文章, 但是我还是不太明白。 我知道乐观锁涉及添加用于跟踪记录“版本”的列,该列可以是时间戳、计数器或任何其他版本跟踪构造。但我仍然不明白如何确保写入完整性(这意味着如果多个进程同时更新同一实体,则之后,实体应正确反映其应处于的真实状态)...

34得票4回答
使用JPA / Hibernate在无状态应用程序中进行乐观锁定

如何在一个不能保存某个版本实体实例的系统中实现乐观锁定(乐观并发控制)?这实际上是一个非常普遍的情况,但几乎所有的示例都是基于会在请求之间保持已加载的实体实例(在http会话中)的应用程序。 如何以尽可能少API污染的方式实现乐观锁定? 约束条件 该系统基于领域驱动设计原则开发。 客户端/服...

28得票2回答
悲观锁和乐观锁机制与数据库事务隔离级别有什么关系?

我正在编写一个Web应用程序,两个不同的用户可以更新事项列表,例如待办事项。我已经意识到,乐观锁定机制最适合我,因为我不希望高并发。 我正在研究事务隔离级别,现在有点困惑了。看起来不同的事务隔离级别也可以解决类似的问题。 这两个不同的概念如何相关?如果可能,请给出一个简单的例子。

27得票1回答
使用哪种HTTP状态码来拒绝由于乐观锁定失败而发起的PUT请求

假设我想要实现一种乐观锁定策略,并使用ETags指示最新的资源状态。这意味着当客户端进行更新时,客户端将使用If-Match标头进行PUT请求。 根据HTTP规范,如果提供给If-Match标头的ETag与资源当前状态不匹配,则服务器必须返回412 Precondition failed。 ...

23得票1回答
如何正确处理多个并发事务请求的 JPA ObjectOptimisticLockException?

所以,我正在开发一个简单的Spring MVC + JPA(hibernate)项目,其中有用户可以发布帖子并在朋友的帖子上发表评论(有点像小型社交网络)。我对使用JPA Hibernate还比较新。因此,当我尝试从浏览器发送多个请求以执行某些任务(包含事务),并且在之前的请求正在处理时快速地...

22得票2回答
Hibernate默认使用乐观锁机制实现并发控制。

我有一个关于Hibernate中乐观锁的问题。 我正在尝试深入了解Hibernate中的乐观锁,但有一个疑问。 Hibernate使用版本方法(整数或时间戳)来实现乐观锁定。 要进行配置,可以使用@Version注释(或XML配置)并创建一个版本属性。 另一种选项是在没有版本控制的情况下配置,...

22得票4回答
Spring乐观锁:如何重试事务方法直到提交成功

我使用Spring 2.5和Hibernate JPA实现以及Java和“容器”管理的事务。我有一个“用户提交后”更新数据的方法,并且需要提交该方法,无论ConcurrencyFailureException或StaleObjectStateException异常是否发生,因为它永远不会显示给...

21得票2回答
如何在我的Rails应用程序中避免竞态条件?

我有一个非常简单的Rails应用程序,允许用户在一组课程中注册他们的出席情况。ActiveRecord模型如下:class Course < ActiveRecord::Base has_many :scheduled_runs ... end class ScheduledR...

21得票6回答
Java分布式事务和/或集群数据共享解决方案

如何对Java服务器应用程序进行聚类/分发?我正在寻求一种方法,该方法允许您通过添加更多应用程序服务器和数据库服务器来实现水平扩展。 您建议使用哪些技术(软件工程技术或特定技术)来解决此类问题? 您使用哪些技术来设计持久性层以扩展到许多读者/作者?如何扩展应用程序事务和共享数据访问(最佳方...