当用户查看和编辑数据时,ArcGIS Pro 会对企业级地理数据库中的对象应用和释放锁。 需要这些锁才能保持数据和版本一致。 当地理数据库中的对象被锁定时,对这些对象更改的访问将基于所加的是共享锁还是独占锁模式。
可使用地理数据库管理对话框查看企业级地理数据库中的锁。 这将列出具有属性的锁,以帮助确定哪位用户可能阻止您完成对特定数据集或版本的操作 这会帮助您与其他用户协调编辑进程并对数据集进行方案变更。 地理数据库管理员可以查看并管理地理数据库中的所有数据和版本锁。 这将允许管理员查看哪些连接可能阻止完成维护任务,例如协调数据、压缩地理数据库或升级。
锁模式
将根据要执行的操作使用共享锁模式或独占锁模式。
共享
将在使用中的单个数据集上获取共享锁,例如用户编辑或查询要素类或表的内容时。 将使用此机制,以防其他用户对使用中的基础数据集及其方案进行更改。 可以在给定时间对单个要素类或表建立任何数量的共享锁。
异
独占锁用于锁定地理数据库中的对象以防其他用户使用,以对该对象进行必要的更改。 当具有适当权限的用户开始更改地理数据库中的数据集时,系统会在对象上建立独占锁。 如果该数据集上有共享锁,则无法建立独占锁。 例如,要将要素类取消注册为版本化,数据集上需要独占锁。
独占锁升级自共享锁,当不再需要时降级回共享锁。 一次仅允许一个独占锁。
锁类型
使用企业级地理数据库时,将使用几个锁类型。 将根据数据集的注册类型和操作确定要使用的锁类型。
模式锁
ArcGIS 应用程序和 Web 图层的工作原理是,在处理地理数据库中的数据时,地理数据库模式保持固定且不会更改。 例如,地图图像图层的使用者期望地图图像图层中的数据模式不会改变。
为了实现这种一致性,任何时候访问数据集(例如将其添加到 ArcGIS Pro 中的地图时或 Web 图层使用数据集时)都会在数据集上获取共享模式锁。 当以任何方式修改数据集方案时,该共享方案锁将在方案更改期间从共享锁升级为独占锁。 这可以防止其他用户打开数据集时更改数据集的方案,从而在多用户环境下提供一致性。
如果其他用户正在访问您需要在其中进行模式更改的同一地理数据库数据集,则必须建立工作流以便在数据集未使用时进行模式更改。 例如,要在不影响其他用户的情况下进行更改,请安排在所有其他用户都离开系统时执行模式工作。 如果数据集已发布到服务,请停止服务并更改模式。 有关详细信息,请参阅 ArcGIS Server 帮助中的在地图服务中更改模式。
状态锁
访问传统版本化数据集时,将获取共享状态锁。 特定的 state_id 将以锁的对象名称的形式列出。 此锁类型仅适用于传统版本化数据集。
版本锁
将在版本内读取和编辑时获取版本锁,以确保可以独立执行某些操作。 根据要执行的操作和数据集的版本化类型,锁模式会有所不同。
使用版本的锁模式
用于不同版本化的锁类型如下所示:
- 分支版本化 - 共享版本锁在会话开始读取时获取。 这在通过将分支版本化服务添加至地图对其进行查看时在 ArcGIS Pro 中发生。 进行编辑时,版本锁的锁模式可能在要编辑的版本上发生变化,如下所示:
- 默认 - 编辑默认版本时,将保留共享版本锁。
- 版本 - 编辑指定版本时,共享版本锁将升级为独占锁。
- 传统版本化 - 当传统版本化数据集处于活动编辑状态时,将获取共享版本锁。 执行协调操作期间,共享版本锁将升级为独占版本锁。
使用版本的用户体验
使用版本和锁时的用户体验如下所示:
- 分支版本化
- 默认值 - 支持多个并发阅读器和编辑器。
- 版本 - 支持单一编辑器。
注:
当编辑指定版本时,锁定模型取决于 ArcGIS Enterprise 版本。
- 对于 ArcGIS Enterprise 12.0 及更高版本,锁定模型允许多个同步查看者以及单个编辑者: 写入锁会阻止其他写入锁,但允许阅读器。 在协调过程中,将获取独占版本锁以阻止阅读器和编写器。 如果编辑器尝试在多个查看器访问版本时进行协调,则会收到一条错误。
- 对于 ArcGIS Enterprise 11.5 及更低版本,锁定模型允许多个同步查看器或单个编辑器。 如果用户尝试在其他查看器或编辑器访问版本时开始编辑,则会收到一条错误。
地理数据库管理员可以使用地理数据库管理 > 锁视图管理地理数据库锁并断开任何用户以阻止编辑和协调操作。
- 传统版本化 - 支持多个并发阅读器和编辑器。
OID 保留锁
编辑分支版本化数据集时,将获取 OID 保留锁。 将保留对象 ID,以限制数据集在编辑操作期间获取对象 ID 的行程数。 此锁类型仅适用于分支版本化数据集。