用户操作后从jsp页面锁定记录和释放锁定

时间:2014-10-22 06:09:47

标签: java javascript

我有一个要求,在我的页面中我有包含记录列表的表格。 当用户单击一条记录时,应该锁定记录,并且其他具有旧概览屏幕的用户尝试单击该记录,它会弹出一条消息“抱歉此记录正在进行中”。

我想在db表中添加一个列,当有人点击并查看特定记录时,我会在其中输入'In prodress',之后当他关闭该记录时,我会用“Free”更新该列。但是我有一个问题,如果有人选择记录并直接关闭浏览器而没有正确关闭并释放该锁定,那么没有人能够看到该记录。

如果有任何其他方式可以实现这一点或我们如何在上述案例中实现这一点,请告诉我。

条件1:两个用户同时登录记录可以正常颜色表示绿色。用户1单击记录并开始编辑。在这种情况下应该有某种锁定,这样如果用户2试图打开相同的记录,他将弹出“正在进行”的消息。

条件2:用户1登录并以绿色查看记录。然后用户2登录并以灰色显示相同的记录。现在他无法点击该记录。

1 个答案:

答案 0 :(得分:0)

你遇到的问题正是为什么通常不这样做。如果你真的有一个硬锁定记录,你最好的选择是有一些超时。超时时间取决于您的应用程序。让您的客户定期刷新锁定,您可以缩短暂停时间。

更好的解决方案可能根本不是锁定,而是在保存更改之前检查某人是否已更改数据。这通常使用要更新的记录中的时间戳或版本号来完成。要寻找的概念是“乐观锁定”。

但是,只有在可能的冲突相对不太可能的情况下,这才有效。呼叫中心工作人员更新客户记录是典型案例,因为两个呼叫中心位置几乎不会同时与同一客户交谈。如果它发生了,其中一个将收到错误,并且必须重新加载数据并再次进行更改。