许多从事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”的新队列。
2、您需要一种将所有Esri作业分配给“ArcGIS”队列的方法。可以通过几种方式处理:
(a)如果设置了用于存储Esri作业的特定存储库,则可以设置Job Routing Rule将这些存储库中的所有作业发送到ArcGIS队列;
(b)或者,在配置作业时设置队列。如果需要将特定作业发送到ArcGIS队列,这种方式将非常有用。例如,如果在"自动化"或"明细表"中使用作业,则可以从"工作区"的"高级"选项中设置"作业队列"。
3、最后,配置引擎分配规则以将正确的引擎附加到ArcGIS队列。在这种情况下,我们可以设置规则以使用引擎属性将所有ArcGIS作业发送到一个主机名,因为该引擎主机具有ArcGIS软件。
查看"引擎"页,所有引擎都将具有一个包含引擎计算机主机名的属性。
我们可以在设置时使用此属性值引擎分配规则。
现在我们已经设置了这些队列规则,我们可以转到"引擎"页面来检查我们的配置。如下图:
如上图,我们已经在这篇博客文章中介绍了FME Server及其引擎如何工作的基础知识。我们还介绍了如何将作业分配给服务器队列,以便可以在特定引擎上处理与Esri相关的作业。