中文

问题:访问文件共享上的数据时无法获取锁

说明

在 ArcGIS for Desktop 中执行多个工作流时,用户可能会遇到无法获取锁的错误。 如果此数据位于文件共享(例如网络连接存储 (NAS) 或使用 Samba 的其他设备)上,则 Windows SMB2 缓存可能存在问题。 如果程序创建文件(例如锁定文件),并在创建后立即验证文件是否存在,则用户可能会遇到此问题。

原因

此问题是由 SMB2 客户端重定向程序缓存中的问题引起的。 在 Windows Vista 和 Server 2008 版本中,实现了三个文件元数据缓存,以加快最近访问的文件和目录信息的返回速度。 但是,默认情况下,在 Windows 7 和 Server 2008 R2 版本中,这些缓存被设置为每十秒刷新一次。 在创建 ArcGIS for Desktop 锁的情况中,此缓存重新生成速度不够快。

有关详细信息,请参阅以下 Microsoft TechNet 文章:SMB2 客户端重定向程序缓存说明

解决方案或解决方法

要解决 ArcGIS for Desktop 的此问题,必须更新注册表以禁用 SMB2 缓存。

  1. 以 计算机管理员的身份,打开开始菜单并键入 regedit.exe 以打开注册表编辑器。
  2. 导航到以下注册表项:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters
  3. 检查项中是否存在名称 DirectoryCacheLifetime。
  4. 如果该名称不存在,请创建一个新的 DWORD(右键单击并选择“新建”>“DWORD 值”)并将其命名为 DirectoryCacheLifetime
  5. 名称 DirectoryCacheLifetime 存在后,请将 DWORD 值修改为 0。

    [O-Image]

    根据组织的权限设置,当完成这些注册表更改后,可能需要重新启动计算机。