配置文件布局据/h1>
一个引擎据a href="//www.baooytra.com/docs/fme/2017.1/html/FME_Server_Documentation/Content/ReferenceManual/fme_server_config_files.htm">配置文件据/a>由几个部分组成,每个部分执行一组特定的任务。配置文件可以包含两个组件:一个全局部分和零个或多个子部分。据/p>
总体布局是这样的:据/p>
GLOBAL_SECTION据/p>
据据/span>全球化指导据/span>>据/span>
sub_cection <据/span>名称据/span>>据/span>
据据/span>小核协定据/span>>据/span>
全球部分据/p>
全局部分定义适用于单个FME引擎会话的所有全局指令。会话定义为FME引擎启动时的时间段,执行一些翻译,并关闭。据/p>
全球部分具有以下一般形式:据/p>
全科\据/p>
[fme_working_dir [FME\u映射\u目录 [FME_结果_寿命<结果寿命秒>\]据/p>
[FME\u清除间隔<结果删除间隔秒>\]据/p>
[auto_dir_prefix [AUTO_FILE_PREFIX < file_prefix > \]据/p>
[RECEIVE_TIMEOUT 0 \据/p>
[FME_SHARED_RESOURCE_DIR < shared_dir >据/p>
[FME_SERVER_LOG_FILE < server-logfilepath > \]据/p>
[宏定义FME数据存储库<数据存储库目录>\]据/p>
[FME\发动机\内存\红线<百分比>\]据/p>
[Success_Response [故障\响应 全局指令在下表中描述。重要的是要记住,小节指令会覆盖全球指令。据/p>
GLOBAL_SECTION指令据/p> 描述据/p> fme_working_dir 指定FME服务器写入所有转换结果的目录路径,除非据span class="Code">FME_WORKING_DIR据/span>是为某一特定工作而在分段中指定的。据/p> 违约:据/span>当前工作目录据/p> 笔记:据/b>更改目录时,还必须在您使用的任何Web应用程序服务的属性文件中更改相应的指令。例如,如果使用数据下载服务,则必须更新据code>RESULT_DIR据/code>指令在该服务的属性文件中。Web应用程序属性文件位于据code style="font-style: normal;">据据span class="CodeItalic">Fmeserverdir.据/span>> \ \ utilities \ tomcat \ webapps \ <据span class="CodeItalic">网络应用据/span>> \ web-inf \ conf据/code>。据/p> 警告:据/b>注意确保据span class="CodeItalic">FME_WORKING_DIR据/span>值设置为适当的目录。这个位置是FME引擎编写翻译结果的地方。这一点很重要——您可以设置FME引擎周期性地递归地删除该目录中超过某个年龄的所有文件(由据span class="CodeItalic">FME_RESULT_LIFETIME据/span>).当据span class="CodeItalic">FME_WORKING_DIR据/span>设置为错误的目录,FME服务器删除此目录中的文件,而不是在此处编写翻译结果。据/p> FME_映射_目录<存储库根目录路径>据/p> 指定FME服务器的存储库据span class="Code">根据/span>目录路径,其中包含在翻译期间的FME引擎运行的工作空间。据/p> 违约:据/span>当前工作目录据/p> fme_result_lifetime 指定保存翻译结果的时间(以秒为单位)。FME引擎定期检查并递归地从数据库中删除所有早于此数量的文件据span class="Code">FME_WORKING_DIR据/span>作为管家措施。此自动删除检查的频率由值设置据span class="Code">fme_purge_interval.据/span>,下面介绍。每当执行自动文件删除时,都会在翻译后执行。据/p> 违约:据/span>若值为零或缺少指令,则永远不会删除结果–寿命是无限的。据/p> FME_清除_间隔<结果删除间隔秒>据/p> 以秒为单位,以秒为单位自动删除检查周期。FME引擎检查比旧的文件据span class="Code">FME_RESULT_LIFETIME据/span>并删除它找到的所有内容。该检查在据span class="Code">fme_purge_interval.据/span>时期。请注意,FME引擎仅在每次翻译后才能完成检查。它没有设置触发检查的计时器。这意味着检查可以在间隔集中发生,但是也可能根据翻译的频率较长的间隔而发生。据/p> 违约:据/span>如果此指令不存在,则默认值为0 - 在每次翻译后检查是否有翻译结果清除。据/p> AUTO_DIR_PREFIX FME引擎配置文件使用两个伪变量:S据/p> !FME_AUTO_DIR_NAME!据/p> !fme_auto_file_name!据/p> 分别表示翻译结果目录和文件的唯一名称。默认情况下,名称具有以下形式:据/p> fme_ 例如:据/p> FME_a03508997017636据/p> 您可以更改默认值据span class="Code">FME_据/span>为站点特定值的前缀。使用特定于站点的前缀使用据span class="Code">AUTO_DIR_PREFIX据/span>指令设置目录名称的前缀,以及据span class="Code">auto_file_prefix.据/span>指令设置文件名的前缀。这些指令的语法如下:据/p> auto_dir_prefix 自动文件前缀<前缀>据/p> 这些指令最有用的应用程序是将文件名前缀设置为据span class="Code">auto_file_prefix.据/span>指令。这样可以使翻译结果文件的名称更好地反映原始组织。据/p> 当存在这些指令中的任何一种时,指定的据span class="CodeItalic"><前缀>据/span>使用值代替据span class="Code">FME_据/span>。缺席时,前缀默认为据span class="Code">FME_据/span>默认值。据/p> 例如,如果据span class="Code">auto_file_prefix.据/span>面条_据/span>如果指定,则转换结果文件名将采用以下形式:据/p> noodle_ 注意,在前缀值中没有假设尾随下划线字符。如果希望前缀具有这些字符之一,则必须显式地将其作为前缀值的一部分包含。据/p> 您可以在全局部分和/或配置文件的任何子部分中指定这些指令中的一个或两个。当在“全局”部分中指定时,前缀将由本身未指定前缀的所有子部分使用。指定前缀的子部分使用该前缀,而不使用指定的任何全局前缀。据/p> 违约:据/span>当指令不存在时,前缀为据span class="Code">FME_据/span>使用。据/p> RECEIVE_TIMEOUT < timeout_period_ms >据/p> 此超时以毫秒为单位。当FME引擎在这段时间内没有收到任何翻译请求时,FME引擎将自身关闭。然后,FME服务器系统启动新的FME引擎实例。据/p> 在大多数操作条件下,该值设置为其推荐默认值零。此设置意味着FME引擎无限期地等待请求,并且从不因缺少传入请求而关闭。据/p> 但是,您可以使用此指令来指定一个有限的超时时间,在这种环境中,网络监视器将关闭那些超过预设时间仍处于不活动状态的连接。当对FME引擎正在侦听接收请求的连接执行此操作时,FME引擎将不再响应并进入挂起状态。据/p> 将此指令设置为非零值,允许FME引擎在指定时间后终止本身。FME发动机有效地突破了鸿沟状态,允许FME服务器系统启动新的FME引擎实例,可以再次响应请求。据/p> fme_shared_resource_dir 指定一个或多个根目录的文件路径。FME引擎使用这些目录以获取不同类型的据a href="//www.baooytra.com/docs/fme/2017.1/html/FME_Server_Documentation/Content/ReferenceManual/Resources.htm" class="MCXref xref">资源据/a>,例如自定义格式、转换器和坐标系统定义。多个共享目录文件路径之间使用分号分隔。据/p> 违约:据/span>< FMEServerDir > \ Server \ \共享资源据/span> FME_SERVER_LOG_FILE < engine-logfilepath >据/p> 指定FME引擎日志文件的文件路径。此日志文件包含引擎配置文件的转储和与FME引擎的整体操作有关的其他信息。请注意,此文件不记录单独的翻译请求处理,该处理在单个转换日志文件中单独记录。据/p> 因此,对于每个FME引擎,因此对于每个fmeengineConfig.txt,您需要指定不同的fmeengine.log文件名。据/p> 你可以使用伪变量FME_INSTANCE_NAME!创建一个以实例名命名的日志文件:据span class="Code"> 该指令包括一个遵循文件路径的附加参数。参数的值可以是据span class="Code">真正的据/span>或据span class="Code">错误的据/span>,表示是否应该将日志文件追加到每次启动FME引擎的时间。据span class="Code">真正的据/span>表示将文件附加到和据span class="Code">错误的据/span>意味着它被覆盖了。据/p> 违约:据/span> 宏定义FME数据存储库<数据存储库目录>据/p> 指定FME Server的Web用户界面用于临时上传数据的目录。在分布式环境中,必须对Web服务器和FME引擎访问此目录。建议指定UNC路径。据/p> fme_engine_memory_据/span> 自动资源管理器确定FME引擎过程应使用的最佳总内存。它还在请求它的FME内最佳地动态地将此总存储器分配给算法。据/p> FME_ENGINE_MEMORY_REDLINE指令是对FME引擎的一个提示,告诉它应该在多大程度上消耗内存。它接受0到1之间的值(0.5是默认值)。对于更激进的内存使用,应该使用大于0.5的值。为了更安亚搏在线全的内存使用,应该使用低于0.5的值。过于激进的风险是进程耗尽内存或机器抖动。过于保守的风险在于,这一过程将需要更长的时间才能完成。据/p> 违约:据/span>0.5据/p> 响应消息据/p> 成功_响应据/p> FAILURE_RESPONSE据/p> 这据span class="Code">成功_响应据/span>和据span class="Code">FAILURE_RESPONSE据/span>指令是在全局级别指定的。它们分别定义FME引擎为成功和失败的翻译返回的消息字符串。这些指令提供了FME引擎将结果传送回客户端的机制。据/p> 这些响应消息的内容仅对客户机有意义。FME引擎简单地将定义的消息传递回客户机,客户机然后以它选择的任何方式处理它。该消息可以包括预定义的伪变量和其他几个指令。据/p> 专用指令据/p>
除了前表中列出的公共全球部分指令外,还需要在需要时提供以下特殊用途指令。重要的是要记住,小节指令会覆盖全球指令。据/p>
特殊目的据br>指令据/p> sde30_perm_connect 定义到ESRI SDE服务器的永久连接。这个连接将在FME引擎上执行第一次翻译之前启动。该连接随后由Engine保存,因此后续的翻译不需要建立新的SDE连接。据/p> 使用此指令时要小心,因为SDE连接是一种有价值的资源,您应该谨慎使用它们。一般来说,最好首先使用FME发动机,而不使用任何永久性连接。如果发现连接和断开SDE太贵,您可能会考虑永久连接。据/p> 运行SDE服务器的主机计算机的名称。据/p> 违约:据/span>特定网站据/p> > <实例据/p> FME引擎要连接的SDE实例。据/p> 违约:据/span>端口:5151据/span> <数据库>据/p> 要连接的实例上的数据库。当SDE位于数据库(如Oracle)上时,不使用指定的值。尽管可以指定任何值,但约定是指定不用于数据库的值。据/p> 违约:据/span>特定网站据/p> 用于登录SDE的用户帐户。据/p> 违约:据/span>特定网站据/p> <密码>据/p> 用户帐户的用户密码。据/p> 违约:据/span>特定网站据/p> 小节据/p>
子部分是可选的,当出现子部分时,它们的指令将覆盖全局指令。当一个子节出现时,它会用一个关键字命名,客户机应用程序可以通过该关键字引用它。您可以为各种目的定义多个子部分。据/p>
在FME服务器环境中,每个服务(如数据下载、数据流、WFS、WMS等)都有自己的子部分。据/p>
如果作业请求 - 包括来自FME服务器服务的作业请求 - 指定一个小节,FME引擎使用指定的子部分中的指令运行该作业。下表显示了从该服务运行作业请求时FME Server Web服务和FME引擎使用的相应子部分。据/p>
笔记:据/b>子指令优先于全局指令。据/p>
FME服务器服务据/p> FME发动机Sub_ection.据/p> 数据下载服务据/p> file_download_service.据/p> 数据流服务据/p> Stream_download_Service.据/p> OGC WFS服务据/p> wfs_service.据/p> OGC WMS服务据/p> wms_service.据/p> FME服务器控制台据/p> SERVER_CONSOLE_CLIENT据/p> FMEServerJobSubmitter变压器据br>(默认小节)据/p> server_job_submitter据/p> 作业提交者服务据/p> Job_submitter_service.据/p> 休息服务据/p> rest_service.据/p> FME服务器调度程序据/p> SERVER_SCHEDULER据/p> 每个分段都可以指定FME引擎在处理翻译请求之前和之后应该执行的操作。该分段还可以定义向客户端返回的翻译成功和失败响应消息,并可以定义FME工作区宏值。据/p>
除了自己的指令外,小节可以使用全局部分可用的一些指令覆盖该特定小节的全局价值。据/p>
通过在翻译请求中按名称指定小节,客户端可以使FME引擎为所请求的翻译执行该小节定义的操作。据/p>
各小节具有以下一般形式:据/p>
SUB_SECTION <关键词> \据/p>
[<全局指令> \]据/p>
[fme_transformation_log_dir [macro_def [PRE_命令 [post_command [POST\u COMMAND\u ALL [post_command_success [POST_COMMAND_FAILURE < post命令> \]*据/p>
[Success_Response [故障\响应 覆盖全局指令的小节指令将在下表中描述。据/p>
SUB_SECTION指令据/p> 描述据/p> <关键词> SUB_SECTION据/p> 确定要定义的分段。您可以定义的子节的数量没有限制。用独特的方式识别每个小节据span class="Code"> <全球指令>据/p> 以下全局指令也可用于子节,你可以重新定义它们以拥有不同的值:据/p> FME_WORKING_DIR据/p> fme_mapping_dir.据/p> AUTO_DIR_PREFIX据/p> auto_file_prefix.据/p> 成功_响应据/p> FAILURE_RESPONSE据/p> 重定义的指令覆盖定义它们的特定小节的全局价值。据/p> fme_transformation_log_dir 指定默认目录的路径,该目录包含FME引擎为该小节生成的每翻译日志文件。据/p> 违约:据/span> 宏_def 在执行翻译时定义将提供给FME工作区的宏值。第一个参数据span class="Code"> 直到下一个指令或指令末尾的所有令牌据span class="Code">Sub_ection.据/span>定义表格为值据span class="Code">< macroValue >据/span>。据/p> 您可以嵌套宏引用。据/p> 定义时,使用伪变量(!macroname!)语法,宏可用于预先和后命令,以及成功和失败响应字符串。据/p> 某些FME引擎子部分定义了一个名为据span class="Code">fme_server_dest_dir.据/span>其值设置为唯一系统生成目录的路径。意图是,此目录用作翻译结果文件的输出位置。工作区作者可以将此值作为发布参数引用,并将其作为目标数据集的明确位置。据/p> 前置和后置命令据/p> 这据span class="Code">pre_command.据/span>和据span class="Code">邮政指挥部据/span>指令定义命令放置在运行翻译之前或之后执行的FME引擎配置文件子部分。据/p> 您可以在a中定义的预先或命令后的数量没有限制据span class="Code">Sub_ection.据/span>。命令按在子序列中指定的顺序运行。能够从FME引擎正在运行的操作系统从命令行运行的任何命令都可以指定为预先或后命令据a href="javascript:void(0);" class="MCTextPopup popup popupHead" style="font-size: 0.9em; vertical-align: super">1据span class="MCTextPopupBody MCTextPopupBody_Closed needs-pie popupBody">在Windows计算机上运行FME服务器时,某些操作系统命令可能无法正常工作。这种情况发生,因为Windows在其某些操作系统命令中区分真正的操作系统命令(即OS所固有的),并且某些程序可访问OS。要确保在Windows环境中使用预先或后命令,请使用以下语法:cmd.exe / c 这些命令可以采取其他指令更准确地定义连续命令在故障时处理的方式。据/p> 可用的据span class="Code">pre据/span>和据span class="Code">post_commands.据/span>在这里列出:据/p> pre_command.据/p> 定义设置为运行的操作系统命令据span class="CodeItalic">之前据/span>FME引擎执行翻译。据/p> 邮政指挥部据/p> 看据span class="Code">POST_COMMAND_SUCCESS据/span>。据/p> POST_COMMAND_SUCCESS据/p> 定义要运行的操作系统命令据span class="CodeItalic">后据/span>FME引擎执行翻译。此命令仅在FME翻译成功时运行。据/p> POST_COMMAND_FAILURE据/p> 定义设置为运行的操作系统命令据span class="CodeItalic">后据/span>FME引擎执行翻译。如果FME翻译失败,则此命令仅运行。据/p> post_command_all.据/p> 定义设置为运行的操作系统命令据span class="CodeItalic">后据/span>FME引擎执行翻译。无论FME转换成功或失败状态如何,此命令都将运行。据/p> 此外,前置和后置命令都可以采用可选指令,指示当前置或后置命令失败时FME引擎的行为。可用的指令包括:据/p> ABORT_WITH_ERROR !据/p> 当pre-or-post命令失败时,整个转换将在该点停止。不执行进一步的处理,包括任何后续的前置或后置命令。据/p> CONTINUE_WARN !据/p> 当pre-or-post命令失败时,转换将继续并发出警告。据/p> !继续\u否\u警告!据/p> 当预先或后命令失败时,翻译继续仍然存在警告。据/p> 响应消息据/p> 成功_响应据/p> FAILURE_RESPONSE据/p> 这据span class="Code">成功_响应据/span>和据span class="Code">FAILURE_RESPONSE据/span>指令定义FME引擎返回的消息字符串,以分别成功和翻译失败。这些指令提供了FME引擎将结果传送回客户端的机制。据/p> 这些响应消息的内容仅对客户机有意义。FME引擎简单地将定义的消息传递回客户机,客户机然后以它选择的任何方式处理它。该消息可以包括预定义的伪变量和其他几个指令。据/p>
红线<系数>据/span>
\]*据/p>