你在这里: 参考手册 > FME服务器引擎 > 配置文件布局

配置文件布局

发动机配置文件由几个部分组成,每个部分执行特定的任务集。配置文件可以包含两个组件:全局部分和零个或更多小节。

一般布局看起来如此:

global_section.

<全球化指导>

sub_cection <名称>

<SubsectionDirectives>

全球部分

Global部分定义了应用于单个FME引擎会话的所有全局指令。会话定义为FME引擎启动、执行一些转换,然后关闭的一段时间。

全球部分具有以下一般形式:

global_section \

[fme_working_dir \]

[fme_mapping_dir \]

[fme_result_lifetime <结果 - 生命周期> \]

[fme_purge_interval \]

[auto_dir_prefix \]

[auto_file_prefix \]

[接收0 \

[FME_SHARED_RESOURCE_DIR < shared_dir >

[fme_server_log_file \]

[宏_deffme_data_repository \]

[fme_engine_memory_redline <百分比> \]

[SUCCESS_RESPONSE <消息> \]

[fally_response \]

全局指令在下表中描述。重要的是要记住分段指令覆盖全局指令。

Global_section指令

描述

FME_WORKING_DIR < results-dirpath >

指定FME服务器写入所有转换结果的目录路径,除非fme_working_dir.在特定工作的小节中指定。

默认:当前工作目录

笔记:更改目录时,还必须在您使用的任何Web应用程序服务的属性文件中更改相应的指令。例如,如果使用数据下载服务,则必须更新结果_DIR.指示该服务的属性文件中的。web应用程序属性文件位于<FMEServerDir> \ tomcat工具\ \ webapps \ <webapp.> \ web - inf \ conf

警告:注意确保fme_working_dir.值设置为适当的目录。此位置是FME引擎写入的翻译结果。这很重要 - 您可以定期设置FME引擎,并递归地删除此目录中的所有文件超过特定年龄(指定FME_RESULT_LIFETIME)。当。。。的时候fme_working_dir.如果被设置为错误的目录,FME服务器将删除该目录中的文件,而不是在这里写入翻译结果。

fme_mapping_dir

指定FME服务器的存储库目录路径,其中包含在翻译期间的FME引擎运行的工作空间。

默认:当前工作目录

fme_result_lifetime

指定持有的翻译结果以秒为单位。FME引擎定期检查和递归删除,所有比此数量更长的文件fme_working_dir.作为一种内务措施。的值设置此自动删除检查的频率FME_PURGE_INTERVAL,下一步描述。每当执行自动文件删除时,它会在翻译后发生。

默认:如果值为零或指令,则不会删除结果 - 寿命为无限。

fme_purge_interval

以秒为单位,以秒为单位自动删除检查周期。FME引擎检查比旧的文件FME_RESULT_LIFETIME并删除任何它发现。此检查是在的FME_PURGE_INTERVAL时期。注意,FME引擎只在每次翻译之后才决定是否进行检查。它没有设置计时器来触发检查。这意味着检查可以在指定的时间间隔内进行,但也可以在更长的时间间隔内进行,这取决于转换的频率。

默认:如果没有这个指令,默认值是0——在每次翻译后检查是否有翻译结果要清除。

auto_dir_prefix 和auto_file_prefix

FME引擎配置文件使用两个伪变量:s

!fme_auto_dir_name!

!fme_auto_file_name!

代表翻译结果目录和文件的唯一名称。默认情况下,名称具有此表单:

FME_ < cnnnnnnnnnnnnnn >

例如:

FME_A03508997017636

您可以更改默认值FME_为站点特定值的前缀。使用特定于站点的前缀使用AUTO_DIR_PREFIX指令设置目录名称的前缀,以及auto_file_prefix.指令设置文件名的前缀。指令具有以下语法:

auto_dir_prefix

auto_file_prefix

这些指令最有用的应用程序是将文件名前缀设置为auto_file_prefix.指示。这样做允许翻译结果文件的名称更好地反映始发组织。

当存在这些指令中的任何一种时,指定的<前缀>使用值代替FME_。缺席时,前缀默认为FME_默认值。

例如,如果auto_file_prefix.Noodle_指定了翻译结果文件名将采用此表格:

noodle_

请注意,未假定前缀值中的尾随下划线字符。如果希望您的前缀具有其中一个字符,则必须将其明确包含它作为前缀值的一部分。

您可以在全局部分和/或配置文件的任何子部分中指定这些指令中的任何一个或两个。在“全局”部分中指定时,所有子部分使用的前缀本身不指定一个。代替指定前缀的小节,而不是使用指定的任何全局前缀。

默认:当指令不存在时,一个前缀FME_用来。

receip_timeout

这个超时以毫秒为单位。当FME引擎在这段时间内没有收到任何翻译请求时,FME引擎就会自动关闭。然后,FME服务器系统启动一个新的FME引擎实例。

在大多数操作条件下,此值设置为其建议的默认值为零。此设置意味着FME发动机无限期地等待请求,并且由于缺乏来文请求而永远不会关闭。

但是,您可以使用此指令在环境中指定有限的超时时段,其中网络监视器关闭了在预设时间内保持不活动的连接。完成FME引擎正在侦听接收请求的连接时,FME引擎不再响应并进入挂起状态。

将该指令设置为非零值将使FME引擎在指定的时间后终止自己。FME引擎有效地中断挂起状态,允许FME服务器系统启动一个新的FME引擎实例,该实例可以再次响应请求。

FME_SHARED_RESOURCE_DIR < shared_dirs >

指定一个或多个根目录的文件路径。这些目录被FME引擎用来获得不同类型的资源,例如自定义格式、转换器和坐标系统定义。使用分号分隔多个共享目录文件路径。

默认: \ server \资源\共享

FME_SERVER_LOG_FILE < engine-logfilepath >

指定FME引擎日志文件的文件路径。此日志文件包含引擎配置文件的转储和与FME引擎的整体操作有关的其他信息。请注意,此文件不记录单独的翻译请求处理,该处理在单个转换日志文件中单独记录。

对于每个FME引擎,因此,对于每个fmeEngineConfig.txt,您需要指定一个不同的fmeEngine.log文件名。

您可以使用伪变量!fme_instance_name!要为如下创建名为实例名称的日志文件:< FMEServerDir > \ Logs \ fmeEngine_ FME_INSTANCE_NAME ! . log

这个指令包含一个附加的参数,它跟在文件路径后面。取值为真的或者,指示日志文件是否应附加到每个FME引擎启动的时间。真的表示文件附加到和意味着它被覆盖了。

默认: \ logs \ fmeengine.log false

宏_deffme_data_repository

指定FME Server的Web用户界面用于临时上传数据的目录。在分布式环境中,必须对Web服务器和FME引擎访问此目录。建议指定UNC路径。

fme_engine_memory_
红线<因子>

自动资源管理器确定FME引擎进程应该使用的最佳总内存。它还动态地将这个总内存最优地分配给请求它的FME中的算法。

FME_ENGINE_MEMORY_REDLINE指令是对FME引擎的提示,即在消耗内存时的攻击性。它介于0到1之间的值(0.5是默认值)。对于更具侵略性的内存使用情况,应使用高于0.5的值。对于更安亚搏在线全的内存使用情况,应使用低于0.5的值。过于激进的风险是内存或机器延迟的过程。保守的风险是,该过程需要更长时间才能完成。

默认:0.5

响应消息

SUCCESS_RESPONSE

FAILURE_RESPONSE

SUCCESS_RESPONSEFAILURE_RESPONSE指令在全球范围内规定。它们定义了FME引擎返回的消息字符串,以便分别成功和翻译失败。这些指令提供了FME引擎将结果传送回客户端的机制。

这些响应消息的内容仅对客户端有意义。FME引擎只需将邮件传递回客户端,然后以其选择的任何方式处理它。该消息可以包括预定义的伪变量和其他几个指令。

专用指令

除了上表中列出的通用Global节指令外,在需要时还可以使用以下特殊用途指令。重要的是要记住分段指令覆盖全局指令。

特殊目的
指令

SDE30_PERM_CONNECT

定义与ESRI SDE服务器的永久连接。在FME引擎执行第一个翻译之前,此连接会提升。然后通过发动机保持连接,因此随后的翻译不需要建立新的SDE连接。

使用此指令时要小心,因为SDE连接是有价值的资源,您应该谨慎使用它们。一般来说,首先使用FME发动机没有任何永久连接,这是一个很好的做法。如果您发现连接和断开到SDE太贵,您可以考虑永久连接。

SDE服务器正在运行的主机的名称。

默认:特定场地

<实例>

FME引擎要连接的SDE实例。

默认:港口:5151

要连接的实例上的数据库。当SDE在诸如Oracle等数据库时,不使用指定的值。虽然您可以指定任何值,但是该约定是指定对数据库通知的值。

默认:特定场地

<标识>

用于登录SDE的用户帐户。

默认:特定场地

<密码>

用户帐户的用户密码。

默认:特定场地

小节

子部分是可选的,当呈现指令覆盖全球指令时。当存在子部分时,它与客户端应用程序可以引用的关键字命名。您可以为各种目的定义多个子部分。

在FME服务器环境中,每个服务(如数据下载,数据流,WF,WMS等)都有自己的小节。

如果作业请求 - 包括来自FME服务器服务的作业请求 - 指定一个小节,FME引擎使用指定的子部分中的指令运行该作业。下表显示了从该服务运行作业请求时FME Server Web服务和FME引擎使用的相应子部分。

笔记:小组指令优先于全球指令。

FME服务器服务

FME发动机Sub_ection.

数据下载服务

FILE_DOWNLOAD_SERVICE

数据流媒体服务

STREAM_DOWNLOAD_SERVICE

OGC WFS服务

WFS_SERVICE

OGC WMS服务

WMS_SERVICE

FME服务器控制台

server_console_client.

Fmeserverjobsubmitter变压器
(默认分段)

server_job_submitter

职位提交者服务

JOB_SUBMITTER_SERVICE

休息服务

REST_SERVICE

FME服务器调度程序

SERVER_SCHEDULER

每个子部分都可以指定FME引擎在处理翻译请求之前和之后的操作。小节还可以定义翻译成功和失败响应消息的转换响应消息,也可以定义FME工作区宏值。

除了它们自己的指令外,子节还可以使用一些Global节可用的指令来覆盖该特定小节的全局值。

通过在翻译请求中按名称指定子部分,客户端可以导致由FME引擎执行的子部分定义的操作以便请求翻译。

每个小节都有以下一般形式:

sub_section <关键字> \

[<全球指令> \]

[fme_transformation_log_dir \]

[MACRO_DEF \]*

[pre_command \] *

[post_command \] *

[post_command_all \] *

[post_command_success \] *

[POST_COMMAND_FAILURE < post命令> \]*

[SUCCESS_RESPONSE <消息> \]

[fally_response \]

覆盖全局指令的小节指令将在下表中描述。

SUB_SECTION指令

描述

sub_section <关键字>

识别正在定义的子部分。您可以定义的小节数没有限制。用一个唯一的识别每个子部分<关键字>- 它不能开始FME_

<全球指令>

下面的全局指令也适用于子节,你可以重新定义它们的不同值:

fme_working_dir.

FME_MAPPING_DIR

AUTO_DIR_PREFIX

auto_file_prefix.

SUCCESS_RESPONSE

FAILURE_RESPONSE

重定义的指令覆盖定义它们的特定小节的全局价值。

fme_transformation_log_dir

指定包含由FME引擎生成的按转换日志文件的默认目录的路径。

默认: \ logs \

MACRO_DEF <宏名字> < macroValue > >

在执行翻译时定义将提供给FME工作区的宏值。第一个参数指定宏的名称。

所有令牌到下一个指令或结尾SUB_SECTION定义表格为值

您可以嵌套宏引用。

定义时,使用伪变量(!macroname!)语法,宏可用于预先和后命令,以及成功和失败响应字符串。

一些FME引擎子部分定义了一个特定的宏fme_server_dest_dir.其值设置为一个唯一的、系统生成的目录的路径。目的是将此目录用作翻译结果文件的输出位置。工作区作者可以将此值作为已发布的参数引用,并将其用作目标数据集的定义良好的位置。

预先和后命令

pre_command.post_command.指令定义放置在FME引擎配置文件分段中的命令,这些命令在翻译运行之前或之后执行。

控件中可以定义的前置或后置命令的数量没有限制SUB_SECTION。命令按在子序列中指定的顺序运行。能够从FME引擎正在运行的操作系统从命令行运行的任何命令都可以指定为预先或后命令1在Windows计算机上运行FME服务器时,某些操作系统命令可能无法正常工作。这种情况发生,因为Windows在其某些操作系统命令中区分真正的操作系统命令(即OS所固有的),并且某些程序可访问OS。要确保在Windows环境中使用预先或后命令,请使用以下语法:cmd.exe / c :post_command cmd.exe / c复制文件_a file_b

这些命令可以使用附加指令来更准确地定义如何在失败时处理后续命令。

可用prepost_commands.在这里列出:

pre_command.

定义设置为运行的操作系统命令FME引擎执行转换。

post_command.

post_command_success.

post_command_success.

定义要运行的操作系统命令FME引擎执行转换。此命令只在FME转换成功时运行。

post_command_failure.

定义设置为运行的操作系统命令FME引擎执行转换。这个命令只在FME转换失败时运行。

POST_COMMAND_ALL

定义设置为运行的操作系统命令FME引擎执行转换。此命令不管FME翻译成功或失败状态如何运行。

此外,Pre-和后命令都可以采用可选指令,该指令指示FME引擎在预先或后命令失败时如何行为。可用指令包括以下内容:

!abort_with_error!

当前命令或后命令失败时,此时将停止整个转换。不执行进一步处理,包括任何后续的预期或命令后。

!continue_warn!

当预先或后命令失败时,翻译继续并给出警告。

!continue_no_warn!

当前置或后置命令失败时,转换将继续,但不会给出任何警告。

响应消息

SUCCESS_RESPONSE

FAILURE_RESPONSE

SUCCESS_RESPONSEFAILURE_RESPONSE指令定义FME引擎返回的消息字符串,以分别成功和翻译失败。这些指令提供了FME引擎将结果传送回客户端的机制。

这些响应消息的内容仅对客户端有意义。FME引擎只需将邮件传递回客户端,然后以其选择的任何方式处理它。该消息可以包括预定义的伪变量和其他几个指令。