我们的应用程序主要使用 Hibernate 的版本控制支持的乐观锁定。我们计划在一种特定情况下实施悲观锁定。我对悲观锁定没有太多经验,所以如果这个问题听起来很幼稚,请原谅。
当用户表现出更新条目的意图时 - 我们使用“选择更新”锁定相应的数据库行。现在,如果这个用户需要很长时间来提交他的更改在锁定后忘记了它,我们如何使用一些超时/回滚机制来解锁这个锁?这样该行就不会长时间保持锁定状态,并且不允许所有其他用户对其进行编辑。
我怀疑这是否会在我们正在使用的 Weblogic-JTA-Spring 事务机制中处理——我们已经有 30 分钟的事务超时。(??)
因此,是否应该直接在 Oracle 级别处理此回滚。如果是,那么如何?请就处理此问题的最佳方法提出建议,以免此类锁停留太久。