错误

错误:停止传输,因为同步完成后,将无法访问所需图层 [DatastoreConnection][Layer Name] [LayerID] [Feature Server]

Last Published: April 20, 2021

错误消息

如果在服务器端(由 ArcGIS Server)停止要素服务,则 GeoEvent Manager (https://server.domain.com:6143/geoevent/manager/index.html) 中的输出连接器将返回以下错误:

错误:停止传输,因为同步完成后,将无法访问所需图层 [DatastoreConnection][Layer Name] [LayerID] [Feature Server]。

GeoEvent 输出丢失在要素服务 REST 端点上发出请求所需的 URL,输出应保持其“已启动”状态,而不是转换为“错误”状态。

错误状态仅用于指示对假定存在的服务的请求失败,因为 HTTP 返回代码指示该服务不存在。

输出错误.png

如果外部服务意外离线,则此行为是预期行为,并且似乎是任何面向服务的架构 (SOA) 的限制。
根据入站或出站连接器的类型,在向外部 web 服务发出请求时,连接器所使用的 HTTP 客户端可能会收到 HTTP/500“常规服务器/服务”错误。 在这种情况下,输入将停止查询或接收数据。 输出连接器将停止向外部服务发出请求以传播已处理事件记录中的数据。

这里的关键是要认识到 Enterprise 门户或 ArcGIS Server 托管要素服务不会受益于特殊处理或处理,因为其位于 Esri 生态系统内。 GeoEvent Server 将任何正在进行轮询或向其发送请求的 web 服务视为外部 web 服务。

在错误状态下,对于出站连接器保持断开连接的时段,接收的任何实时数据都不会通过出站连接器进行传播。 接收的事件记录将继续“丢失”,因为会将其路由到不再连接和运行的出站连接器。

该错误的解决方案包括一些基础故障排除步骤,以及防止连接器进入错误状态并避免数据丢失的最佳做法。

原因

当输出要素服务的 REST 端点不可用时,更新要素输出连接器将转换为错误状态。 由于以下原因,要素服务可能不可用:

  • 计划中断,例如服务器修补
  • 参考数据源(企业地理数据库)的保管和维护
  • 意外中断,例如服务损坏或 ArcGIS Server 站点离线时
  • 如果输出要素服务以某种方式停止(仅需通过从相应的 Server Manager/Admin 中停止要素服务来复制错误。)
  • 正在回收要素服务
  • GeoEvent 服务器与托管要素服务的 ArcGIS Server 之间的通信中断

由于服务已停止(或 ArcGIS Server 离线),并且如果正在运行的 GeoEvent 连接器(输入或输出)对不可用的服务发出请求,则会产生 HTTP/500 错误,因此该服务可能会突然不可用。

如果 GeoEvent Server 连接器(入站或出站)要对当前正在进行回收的要素服务发出请求,则还需要 HTTP/500 服务器响应。 服务不可用。

解决方案或解决方法

要对错误消息进行故障排除,请根据上述潜在原因确认故障点。

  • ArcGIS Server 是否作为一个整体正常运行?
  • 检查服务的 REST 端点是否可用。
  • 从 Server Manager 或 Admin 中确认服务的状态:已启动已停止
  • 要素服务是否存在相关 ArcSOC?
  • 验证引用的数据源。
  • 从 GeoEvent 计算机访问 REST 端点。 确认其是否可访问。
  • 检查 ArcGIS Server 日志以进一步排除故障。

输出连接器可以通过以下方式恢复或重新联机:

  • 从 GeoEvent Manager 端点重新启动特定输出连接器。
  • 停止和启动输出连接器。
  • GeoEvent Manager > 站点 > 数据存储中强制同步 GeoEvent Datastore 连接。 将连接同步到发布服务的连接。 
  • 等待触发下一个服务发现。
注: 在大多数情况下,应该避免等待下一个服务发现。 如果服务发现与暂时不可用的服务同时发生,并且 GeoEvent 无法恢复其输入和/或输出,则需要等待下一个服务发现(几小时后),此时要素服务才可用。 在这种情况下,用户很容易会变得不耐烦,几分钟后即会尝试单击以请求新的服务发现,但是可能需要 20、30、45 分钟或更长时间才能完成几百个由托管服务器托管的地图/要素服务的服务发现,托管服务器的基础结构可能具有多个 ArcGIS Server 实例。

有关追踪服务发现的详细信息,请关注 Geonet 博客监控已注册 web 服务器的服务发现

建议最佳做法

  • 知道服务器将重新启动或者知道特定 web 服务将暂时不可用的系统管理员将负责暂停或停止利用这些 web 服务的实时处理。 否则,他们可能需要停止并重新启动单个连接器 - 或者在最坏的情况下,重新启动他们的 GeoEvent Server 以重新建立服务连接。 在修补/维护窗口期间停止输入、输出连接器和 GeoEvent 服务。
  • 将其已注册服务器连接的发现率从默认值(60 分钟)增加到大约 1440 分钟。 也可以将其设置为更大的值。
  • 限制每次 GeoEvent Server 运行其服务发现时可发现的要素服务数量。
  • 还应考虑不联合运行 GeoEvent Server 的 ArcGIS Server,并使用其自己的托管关系地理数据库配置该 ArcGIS Server,以便真正地实时查询并/或更新要素记录集的要素服务不会与 Enterprise 门户的托管要素图层混合。 除非系统架构中存在时空大数据存储,否则可以不联合 GeoEvent Server 的 ArcGIS Server,甚至不注册与 Enterprise 门户托管服务器的连接。

如果他们的服务意外不可用,我们应如何防止数据丢失?

根据连接器的实现方式,这可能无法实现。

  • GeoEvent Server 的输出不会主动或者甚至会被动地连接到要素服务。 输出只能向要素服务发送一系列离散请求,并通过失败发现要素服务当前不可用。
  • 输出可能会在几百毫秒后重试,但是如果它继续无限期地每秒或每 100 毫秒重复调用不可用服务,则会削弱 GeoEvent Server 执行其他事件处理任务以及处理其他可用的入站/出站 web 服务的能力。 唯一的选择是允许输出暂停操作,直到其停止并重新启动。

文章 ID:000025243

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项