0

我们正在用 Java EE 重写一个旧的 Cobol 应用程序。旧的 Cobol 是一个完整的客户端应用程序。

客户的要求是锁定实体(例如特定帐户),以便没有人可以访问它或至少只能以只读方式访问它。这是因为某些事务可能很长,我们不希望用户输入大量数据只是为了在更新时丢失所有内容。不需要乐观锁定。

目前,该要求是通过在文件系统中创建锁来实现的,该文件系统存在很多问题,例如并发访问,没有事务。不太符合 Java EE。锁还应该告诉客户端正在锁定一个实体。

有什么建议吗?

4

1 回答 1

0

我建议使用数据库本身而不是文件系统方法进行锁定。

在一个应用程序中,我们通过使用具有字段 ENTITY_TYPE、ENTITY_ID、USER_ID 和 VALID_TO 的特殊表 LOCK 来实现对每个实体的锁定。当用户没有做任何事情时,创建的锁在一定时间后超时。这是为了防止在客户端关闭应用程序或由于网络错误等原因导致其他用户无法编辑的锁定实体。

在允许用户编辑实体之前,我们检查/在此表中创建了一行。在 UI 上,用户有一个用于锁定实体的按钮或一个信息框,如果实体已被锁定,则显示用户持有锁。

于 2013-11-11T13:44:58.937 回答