首页 > 解决方案 > 与数据库事务的悲观锁定关系

问题描述

我知道悲观锁定与锁定数据库记录并在“事务”结束时释放它获得锁定。但这是否意味着悲观锁定在物理事务中,例如

开始交易

//pessimistic locking

提交交易?

对于网页,当用户选择要编辑的记录时,当他按下编辑按钮时,我想悲观地锁定这条记录,以便其他人无法更改它,然后在编辑按钮 onpress() 事件中,我开始物理事务?

似乎不可能,因为编辑过程可能很长......它在悲观锁定中保持整个编辑过程(按编辑按钮,在网页中编辑,按保存按钮)的数据库事务?

标签: web-applicationstransactionspessimistic-locking

解决方案


构建这样的锁定系统不是很实用。即使您能够以某种方式做到这一点,它也会严重限制允许访问服务器的用户数量。

如果允许许多用户编辑一个用户提交的帖子,您应该使用某种版本控制系统。或者,如果您更喜欢锁定系统,则创建一个系统来记录正在编辑的帐户和内容,并定期从客户端更新此信息。就像一分钟一次,如果服务器在两分钟内没有收到客户端的任何消息,则释放锁。


推荐阅读