隐式锁
作者:David Rice
允许框架或层超类型代码获取离线锁。
有关完整描述,请参阅 EAA 模式 第 449 页
任何锁定方案的关键在于其使用没有间隙。忘记编写一行获取锁的代码可能会使整个离线锁定方案失效。在其他事务使用写锁的情况下,未能检索读锁意味着您可能无法获得最新的会话数据;未能正确使用版本计数会导致在不知情的情况下覆盖他人的更改。通常,如果某个项目可能在任何地方被锁定,那么它必须在所有地方都被锁定。忽略其应用程序的锁定策略会导致业务事务创建不一致的数据。不释放锁不会破坏您的记录数据,但最终会使生产力停滞。由于离线并发管理难以测试,因此此类错误可能无法被所有测试套件检测到。
一种解决方案是不允许开发人员犯这种错误。无法忽视的锁定任务应该由应用程序隐式处理,而不是由开发人员显式处理。事实上,大多数企业应用程序都使用框架、层超类型(475)和代码生成的某种组合,这为我们提供了充分的机会来促进隐式锁。