Access前端与后端同时被用户锁定的触发原因咨询
Access拆分库前后端同时触发独占锁定的核心原因
- 启动逻辑的连锁锁定:当用户打开FE文件时,Access首先会生成FE对应的
.laccdb锁文件。如果FE配置了启动时自动执行的操作(AutoExec宏、启动表单的Load事件、启动时自动刷新链接表等),这类操作如果没有使用共享连接参数,会默认以独占模式请求BE访问权限,触发BE的.laccdb锁文件同步生成,两个锁会在操作完成后仍保持挂载,直到所有相关连接完全释放。 - 共享目录权限缺陷:如果共享文件夹的NTFS权限或共享权限未开放「删除子文件夹及文件」权限,用户正常退出Access时,系统无法自动清除对应
.laccdb锁文件。残留的FE锁会被后续启动的Access判定为独占占用,触发BE锁同步残留,最终形成两个文件同时锁定的状态。 - 非正常退出的连锁残留:用户在FE与BE保持活动连接的状态下强制结束Access进程、设备突发断网、系统蓝屏崩溃,会同时中断FE和BE的锁文件回收流程,两个锁文件都会被遗留。Access启动时扫描到锁文件存在且对应的进程ID无活动记录,就会直接判定文件处于独占占用状态。
- 跨版本锁机制兼容故障:如果多用户使用的Access版本跨度超过2个大版本(例如同时使用Access 2010、Access 365订阅版),旧版本Access处理拆分库连接时存在原生bug,打开FE校验BE链接有效性时会同时对FE、BE加独占级别的锁,且不会随校验完成自动释放。
- 跨文件绑定对象的锁定:如果FE中存在直接绑定BE系统表、未封装为链接表的直通查询、嵌入了BE数据源的本地报表,打开这类对象时,Access会同时锁定FE的本地对象定义和BE的数据源文件,这类锁定优先级高于常规共享锁,会被识别为独占模式占用。
内容的提问来源于stack exchange,提问作者Milan Pijanovic
相关产品推荐
相关产品推荐

