Skip To Content

在地图服务中更改模式

数据集的模式是该数据集中包含的字段及其定义。 当这些更改时,数据集的模式也会更改。 地图服务(地图图像图层)默认使用模式锁定,以防止在服务运行时修改引用数据集的模式。 锁定模式可防止地图服务的用户遇到意外行为,例如丢失图层和字段、查询失败或服务不可用。

在某些情况下,您需要更改已发布为地图服务的数据集的模式。 例如,您可能需要向要素类添加新字段、更改应用于要素类字段的子类型、添加或删除字段、修改域或更改地图中图层的符号系统。 在这些情况下,在实施模式更改之前仔细规划模式更改非常重要。

执行模式变更

建议您在组织中计划服务停机时准备并执行模式更改。

请执行以下步骤更改模式。

  1. 确定访问需要模式更改的数据集的服务。

    要识别服务使用的数据集,请在 ArcGIS Server Manager 中打开各个服务的服务工作空间,或者作为 ArcGIS Server 站点管理员,在 ArcGIS Server Administrator REST API 中运行服务清单操作。

  2. 登录到 ArcGIS Server Manager
  3. 停止每个受影响的服务
  4. 执行模式变更或源数据变更。
  5. ArcGIS Server Manager启动服务

服务启动后,它将获取更改现有字段定义的模式更改,例如对地理数据库或数据库中字段数据类型的更改、为子类型启用的字段、应用于字段的子类型、添加到字段的域、已更改的域或已更改的属性规则。

注:

如果您在源表中添加或删除了字段,则必须覆盖地图服务

地图级别变更和地图服务

要使地图或地图图层更改反映在地图服务中,您必须覆盖地图服务

地图级别更改是对地图或地图内图层设置的更改。 这些类型的变更包括但不限于以下内容:

  • 添加或删除图层,包括拓扑图层或关系类
  • 修改地图图层中的字段别名或修改地图图层别名
  • 修改图层的符号系统、透明度或标注属性
  • 应用按比例渲染
  • 定义或更改编辑模板(适用于启用要素访问的地图服务)
  • 如果源是查询图层,则更改查询图层定义

修改地图服务模式锁定设置

对于一些在严格的服务级别协议 (SLA) 下运营的组织,必须进行模式更改,同时仍允许地图服务保持可访问性。 要最大限度地减少地图服务不运行的时间,您可以禁用地图服务的模式锁定,这样您就可以在不停止地图服务的情况下修改引用数据集的模式。

注:

有关禁用共享实例模式锁定的信息,请参阅配置服务实例设置

在禁用模式锁定之前请考虑以下事项:

  • 禁用模式锁定时,建议您仅在服务空闲时更新模式。 如果在服务具有负载时更新模式,地图服务的用户可能会遇到意外行为,例如丢失图层和字段、查询失败以及服务不可用。
  • 更改模式锁定设置需要您重新启动服务。 此外,为了在禁用服务的模式锁定时反映更改,您必须在更改现有字段定义的模式更改完成后重新启动地图服务,或者在添加或删除字段时覆盖地图服务。

完成以下步骤以允许在地图服务运行时进行模式编辑:

  1. 确定访问需要模式更改的数据集的服务。

    要识别服务使用的数据集,请在 ArcGIS Server Manager 中打开各个服务的服务工作空间,或者作为 ArcGIS Server 站点管理员,在 ArcGIS Server Administrator REST API 中运行服务清单操作。

  2. 登录到 ArcGIS Server Manager
  3. 确认地图服务未使用。

    要确定服务是否空闲,请在 ArcGIS Server Manager 中找到感兴趣的地图服务并验证 Instances in use 值是否为零。

  4. 单击服务 > 管理服务
  5. 找到地图服务并单击编辑

    注:
    如果地图服务未显示在列表中,那么其可能位于站点(根)文件夹下的某一子文件夹内。

  6. 单击参数
  7. 取消选中锁定数据库模式
  8. 单击保存并重新启动

    地图服务不会对其引用的数据集持有模式锁。

    现在可以在地图服务运行时进行模式更改。

  9. 要使地图服务反映更改,请执行以下操作之一:
    1. 停止启动服务。
    2. 如果您添加或删除字段或进行地图级别更改,请覆盖服务。
注:

禁用地图服务的模式锁定只会阻止来自该服务的模式锁。 其他 ArcGIS 应用程序和服务以及第三方应用程序仍然可以获得模式上的独占锁。 如果在禁用地图服务的模式锁定后无法更新数据集上的模式,请参阅企业级地理数据库锁定主题。

重新启用模式锁定

要防止在服务运行时进行模式更改,请按照以下步骤操作:

  1. 单击服务 > 管理服务
  2. 找到地图服务并单击编辑

    注:
    如果地图服务未显示在列表中,那么其可能位于站点(根)文件夹下的某一子文件夹内。

  3. 单击参数
  4. 选中锁定数据库模式
  5. 单击保存并重新启动

地图服务将不再允许在服务运行时修改引用数据集的模式。