许多从事ArcGIS格式数据的用户使用FME来处理数据验证、格式转换和数据转换。这些基本上都发生在将数据迁入和迁出其系统时。但是,必须在运行FME的计算机上安装ArcGIS并授予许可,FME中的基于Esri的读取器和写入器(如企业级地理数据库格式)才能正常工作。这在FME Desktop上效果很好。客户通常会安装ArcGIS Pro等内容以便在本地使用。这使得与FME共享许可证变得容易。但是,如果您使用的是FME Server,这可能会变得比较复杂。

在这里,将介绍FME Server及其引擎如何工作的基础知识。还将介绍如何将作业分配给服务器队列,以便在特定引擎上处理与Esri相关的作业。

一、FME SERVER及其引擎的基础知识

FME Server是FME平台的一部分,该平台为您提供了强大的工具,可以自动执行使用FME Desktop创建的工作流程。FME Server的一个关键组件是引擎。FME Server的一个实例可以连接许多引擎,这些引擎可以全部安装在一台计算机上,也可以分布在多台计算机上。

然而,这与在FME中使用ArcGIS格式有什么关系呢?如果要使用FME Server运行基于Esri的作业,则需要确保连接到该服务器的引擎有权访问安装的ArcGIS。如果您在同一台计算机上安装了所有引擎,这很容易。只需在那里安装并许可所需的Esri软件即可。您的所有引擎都可以使用它。

但是,如果您有一个分布式安装的FMEServer,并在多个主机上安装了引擎,该怎么办?是否确实要在其中每个主机上安装Esri软件?您是否有基于Esri的作业和常规作业的组合要在FME SERVER上运行?您可以使用ArcGIS许可证配置一台引擎计算机,并使用FME Server队列控制将ArcGIS作业发送到正确的引擎集来处理。

二、什么是FME SERVER中的队列控制?

队列控制的设置提供了灵活的方法来管理FME Server如何处理作业和使用可用引擎。队列控制由三个组件组成。这些组件协同工作,以确保将作业路由到正确的引擎进行处理:

  • 作业路由规则

        这决定了任何提交的作业应发送到哪个队列。

  • 队列
    它保存从作业路由规则发送给它们的作业,并根据引擎分配规则将它们定向到引擎。
  • 引擎分配规则
    此规则控制将哪些引擎分配给每个队列。

三、使用队列控制的作业路由

在下面的示例中,设置了四个引擎的FMEServer。在一台主机上分布两个引擎,在另一台主机上布置另外两个引擎。

一些作业使用的数据格式需要运行Esri软件。还有很多其他作业不需运行Esri软件。您已在一个引擎主机上安装了ArcGIS,但未在另一个引擎主机上安装ArcGIS。在这种情况下,您需要确保所有需要ArcGIS软件的作业都在正确的引擎上运行。

可以使用FME Server中的队列控制来帮助管理此问题。步骤如下:

1、为所有与Esri相关的作业创建队列。出于我们的目的,我们可以创建一个名为“ArcGIS”的新队列。

Espruino中文社区_GIS

2、您需要一种将所有Esri作业分配给“ArcGIS”队列的方法。可以通过几种方式处理:

(a)如果设置了用于存储Esri作业的特定存储库,则可以设置Job Routing Rule将这些存储库中的所有作业发送到ArcGIS队列;

Espruino中文社区_Server_02

(b)或者,在配置作业时设置队列。如果需要将特定作业发送到ArcGIS队列,这种方式将非常有用。例如,如果在"自动化"或"明细表"中使用作业,则可以从"工作区"的"高级"选项中设置"作业队列"。

3、最后,配置引擎分配规则以将正确的引擎附加到ArcGIS队列。在这种情况下,我们可以设置规则以使用引擎属性将所有ArcGIS作业发送到一个主机名,因为该引擎主机具有ArcGIS软件。

查看"引擎"页,所有引擎都将具有一个包含引擎计算机主机名的属性。

Espruino中文社区_GIS_03

我们可以在设置时使用此属性值引擎分配规则。

Espruino中文社区_服务器_04

现在我们已经设置了这些队列规则,我们可以转到"引擎"页面来检查我们的配置。如下图:

Espruino中文社区_服务器_05

如上图,我们已经在这篇博客文章中介绍了FME Server及其引擎如何工作的基础知识。我们还介绍了如何将作业分配给服务器队列,以便可以在特定引擎上处理与Esri相关的作业。