Konfigurationsdatei-Layout

Die FME Engines Konfigurationsdatei besteht aus mehreren Abschnitten, von denen jeder eine bestimmte Gruppe von Aufgaben ausführt. Die Konfigurationsdatei kann zwei Komponenten enthalten: einen globalen Abschnitt und keinen oder mehrere Unterabschnitte.

Das allgemeine Layout sieht folgendermaßen aus:

GLOBAL_SECTION

<GlobalDirectives>

SUB_SECTION <name>

<SubsectionDirectives>

Globaler Abschnitt

Der globale Abschnitt definiert alle globalen Anweisungen, die für eine einzelne FME Engine Sitzung gelten. Eine Sitzung ist definiert als der Zeitraum, in dem eine FME Engine gestartet wird, Umsetzungen vornimmt und heruntergefahren wird.

Der globale Abschnitt hat die folgende allgemeine Form:

GLOBAL_SECTION \

[FME_WORKING_DIR <results-dirpath> \]

[FME_MAPPING_DIR <repository-root-dirpath> \]

[FME_RESULT_LIFETIME <results-lifetime-seconds> \]

[FME_PURGE_INTERVAL <results-deletion-interval-seconds> \]

[AUTO_DIR_PREFIX <dir_prefix> \]

[AUTO_FILE_PREFIX <file_prefix> \]

[RECEIVE_TIMEOUT 0 \

[FME_SHARED_RESOURCE_DIR <shared_dir>

[FME_SERVER_LOG_FILE <server-logfilepath>\]

[MACRO_DEF FME_DATA_REPOSITORY <data-repository-dirpath>\]

[FME_ENGINE_MEMORY_REDLINE <percentage> \]

[SUCCESS_RESPONSE <message> \]

[FAILURE_RESPONSE <message> \]

Die globalen Direktiven werden in der folgenden Tabelle beschrieben. Es ist wichtig zu wissen, dass die Direktiven der Unterabschnitte die globalen Direktiven überschreiben.

GLOBAL_SECTION-Direktive

Beschreibung

FME_WORKING_DIR <results-dirpath>

Gibt den Verzeichnispfad an, in den FME Flow alle Umsetzungsergebnisse schreibt, es sei denn, FME_WORKING_DIR wird im Unterabschnitt für einen bestimmten Job angegeben.

Voreingestellt: Aktuelles Arbeitsverzeichnis

Hinweis  Wenn Sie das Verzeichnis ändern, müssen Sie auch die entsprechende Direktive in den Eigenschaftendateien aller verwendeten Web Application Services ändern. Wenn Sie beispielsweise den Data Download Service verwenden, müssen Sie die Direktive RESULT_DIR in der Eigenschaftendatei für diesen Dienst aktualisieren. Die Eigenschaftendateien der Webanwendung befinden sich unter <FMEFlowDir>\Utilities\tomcat\webapps\<WebApp>\WEB-INF\conf.
Warnhinweis  Achten Sie darauf, dass der Wert für FME_WORKING_DIR auf das entsprechende Verzeichnis gesetzt ist. An dieser Stelle schreibt die FME Engine ihre Umsetzungsergebnisse. Dies ist wichtig - Sie können die FME Engine so einstellen, dass alle Dateien in diesem Verzeichnis, die älter als ein bestimmtes Alter sind (durch FME_RESULT_LIFETIME angegeben), regelmäßig rekursiv gelöscht werden). Wenn FME_WORKING_DIR auf das falsche Verzeichnis eingestellt ist, löscht FME Flow-Dateien in diesem Verzeichnis, anstatt die Umsetzungsergebnisse hier zu schreiben.

FME_MAPPING_DIR <repository-root-dirpath>

Gibt den Stamm-Verzeichnispfad des FME Flow-Repositorys an, in dem Workspaces enthalten sind, die während der Umsetzung von der FME Engine ausgeführt werden.

Voreingestellt: Aktuelles Arbeitsverzeichnis

FME_RESULT_LIFETIME <results-lifetime-seconds>

Gibt an, wie lange in Sekunden Umsetzungsergebnisse behalten werden. Die FME Engine überprüft und löscht regelmäßig alle Dateien, die älter als dieser Betrag sind, als Bereinigungsmaßnahme aus dem FME_WORKING_DIR. Die Häufigkeit dieser automatischen Löschprüfung wird durch den Wert von FME_PURGE_INTERVAL festgelegt (siehe unten). Immer wenn das automatische Löschen von Dateien durchgeführt wird, erfolgt dies nach einer Umsetzung.

Voreingestellt: Wenn der Wert Null ist oder die Direktive nicht vorhanden ist, werden die Ergebnisse niemals gelöscht - die Lebensdauer ist unendlich.

FME_PURGE_INTERVAL <results-deletion-interval-seconds>

Gibt den Zeitraum für die automatische Löschprüfung in Sekunden an. Die FME Engine prüft, ob Dateien älter sind als FME_RESULT_LIFETIME und löscht alle gefundenen. Diese Prüfung wird im FME_PURGE_INTERVAL-Zeitraum durchgeführt . Beachten Sie, dass die FME Engine entscheidet, ob die Prüfung nur nach jeder Umsetzung durchgeführt wird oder nicht. Es wird kein Timer eingestellt, um die Prüfung auszulösen. Dies bedeutet, dass die Überprüfung in dem festgelegten Intervall erfolgen kann, aber auch in längeren Intervallen, je nachdem, wie häufig Umsetzungen gemacht werden.

Voreingestellt: Wenn diese Direktive nicht vorhanden ist, ist der Standardwert 0 - überprüft nach jeder Umsetzung, ob zu bereinigende Umsetzungsergebnisse vorhanden sind.

AUTO_DIR_PREFIX <dir_prefix> und AUTO_FILE_PREFIX <file_prefix>

Die FME Engine Konfigurationsdatei verwendet zwei Pseudo-Variablen

!FME_AUTO_DIR_NAME!

!FME_AUTO_FILE_NAME!

um eindeutige Namen für die Verzeichnisse und Dateien der Umsetzungsergebnisse zu repräsentieren. Standardmäßig haben die Namen folgende Form:

FME_<cnnnnnnnnnnnnnn>

Beispiel:

FME_a03508997017636

Sie können das Standardpräfix FME_ in einen standortspezifischen Wert ändern. Standortspezifische Präfixe werden mit der Direktive AUTO_DIR_PREFIX definiert, um das Präfix für Verzeichnisnamen festzulegen, und mit der Direktive AUTO_FILE_PREFIX, um das Präfix für Dateinamen festzulegen. Die Direktiven haben folgende Syntax:

AUTO_DIR_PREFIX <prefix>

AUTO_FILE_PREFIX <prefix>

Die nützlichste Anwendung dieser Direktiven besteht darin, das Dateinamenpräfix mit der Direktive AUTO_FILE_PREFIX festzulegen. Dadurch können die Namen der Ergebnisdateien der Umsetzung die Ursprungsorganisation besser widerspiegeln.

Wenn eine dieser Direktiven vorhanden ist, wird der angegebene <Präfix>-Wert anstelle von FME_ verwendet. Wenn er nicht vorhanden ist, wird der voreingestellte Präfixwert FME_ verwendet.

Wenn beispielsweise für AUTO_FILE_PREFIX Noodle_ angegeben wurde, würden die Dateinamen der Umsetzungsergebnisse in dieser Form aussehen:

Noodle_<cnnnnnnnnnnnnnn>

Beachten Sie, dass ein nachfolgender Unterstrich im Präfixwert nicht angenommen wird. Wenn Ihr Präfix eines dieser Zeichen enthalten soll, müssen Sie es explizit als Teil des Präfixwerts einschließen.

Sie können eine dieser Direktiven oder beide im globalen Abschnitt und / oder in einem beliebigen Unterabschnitt der Konfigurationsdatei angeben. Bei der Angabe im globalen Abschnitt wird das Präfix von allen Unterabschnitten verwendet, in denen selbst keines angegeben ist. Unterabschnitte, die ein Präfix angeben, verwenden stattdessen dieses Präfix und verwenden kein globales Präfix.

Voreingestellt: Wenn die Direktive nicht vorhanden ist, wird ein Präfix FME_ verwendet.

RECEIVE_TIMEOUT <timeout_period_ms>

Dieses Timeout wird in Millisekunden gemessen. Wenn die FME Engine innerhalb dieses Zeitraums keine Umrsetzungsanfragen erhält, fährt sie automatisch herunter. Das FME Flow-System startet dann eine neue FME Engine-Instanz.

Unter den meisten Betriebsbedingungen ist dieser Wert auf den empfohlenen Standardwert Null gesetzt. Diese Einstellung bedeutet, dass die FME Engine unbegrenzt auf Anfragen wartet und niemals aufgrund fehlender eingehender Anfragen herunterfährt.

Sie können diese Direktive jedoch verwenden, um einen begrenzten Timeout-Zeitraum in Umgebungen anzugeben, in denen ein Netzwerkmonitor Verbindungen abschaltet, die über einen voreingestellten Zeitraum inaktiv bleiben. Wenn dies für die Verbindung gemacht wird, an der eine FME Engine Anfragen empfängt, kann die FME Engine nicht mehr antworten und wechselt in einen blockierten Zustand.

Wenn Sie diese Direktive auf einen Wert ungleich Null setzen, wird die FME Engine nach der angegebenen Zeit beendet. Die FME Engine bricht effektiv aus dem hängenden Zustand aus, so dass das FME Flow-System eine neue FME Engine-Instanz starten kann, die wieder auf Anfragen reagieren kann.

FME_SHARED_RESOURCE_DIR <shared_dirs>

Gibt die Dateipfade eines oder mehrerer Stammverzeichnisse an. Diese Verzeichnisse werden von der FME Engine verwendet, um verschiedene Arten von Ressourcen zu erhalten, wie z.B. Definitionen von benutzerdefinierten Formaten, Transformern und Koordinatensystemen. Verwenden Sie Semikolons, um mehrere Dateipfade für freigegebene Verzeichnisse zu trennen.

Standard: <FMEFlowDir>\Server\resources\shared

FME_SERVER_LOG_FILE <engine-logfilepath>

Gibt den Dateipfad zur Protokolldatei der FME Engine an. Diese Protokolldatei enthält einen Speicherauszug der Konfigurationsdatei der Engine und andere Informationen zum Gesamtbetrieb der FME Engine. Beachten Sie, dass diese Datei nicht die Verarbeitung einzelner Umsetzungsanfragen protokolliert, die separat in einzelnen Umsetzungsprotokolldateien protokolliert werden.

Für jede FME Engine und damit für jede fmeEngineConfig.txt müssen Sie einen anderen Dateinamen für die Datei fmeEngine.log angeben.

Sie können die Pseudovariable !FME_INSTANCE_NAME! verwenden, um eine Protokolldatei mit dem Namen der Instanz zu erstellen: <FMEFlowDir>\Logs\fmeEngine_!FME_INSTANCE_NAME!.log

Diese Direktive enthält einen zusätzlichen Parameter, der dem Dateipfad folgt. Der Wert des Parameters kann TRUE oder FALSE sein und gibt an, ob die Protokolldatei an den Zeitpunkt des Starts der FME Engine angehängt werden soll oder nicht. TRUE bedeutet, dass die Datei angehängt wird und FALSE bedeutet, dass sie überschrieben wird.

Standard: <FMEFlowDir>\Logs\fmeEngine.log FALSE

MACRO_DEF FME_DATA_REPOSITORY <data-repository-dirpath>

Gibt das Verzeichnis an, das von der Web-Benutzeroberfläche von FME Flow für das zeitweilige Hochladen von Daten verwendet wird. In einer verteilten Umgebung muss dieses Verzeichnis für den Webserver und für die FME Engines verfügbar sein. Es wird empfohlen, einen UNC-Pfad anzugeben.

FME_ENGINE_MEMORY_
REDLINE <factor>

Der automatische Ressourcenmanager bestimmt den optimalen Gesamtspeicher, den der FME Engine-Prozess verwenden soll. Er ordnet diesen Gesamtspeicher auch dynamisch den Algorithmen in der FME zu, die ihn anfordern.

Die Direktive FME_ENGINE_MEMORY_REDLINE ist ein Hinweis an die FME Engine, wie aggressiv sie beim Speicherverbrauch sein sollte. Werte zwischen 0 und 1 sind zulässig (0,5 ist der Standardwert). Für eine aggressivere Speichernutzung sollte ein Wert über 0,5 verwendet werden. Für eine sichere Speichernutzung sollte ein Wert unter 0,5 verwendet werden. Das Risiko einer zu aggressiven Speichernutzung besteht darin, dass der Prozess keinen Speicher mehr hat oder die Maschine ausgelastet ist. Das Risiko einer konservativen Eingabe besteht darin, dass der Prozess länger dauern wird.

Voreingestellt: 0.5

Antwortnachrichten

SUCCESS_RESPONSE

FAILURE_RESPONSE

Die Direktiven SUCCESS_RESPONSE und FAILURE_RESPONSE werden auf globaler Ebene festgelegt. Sie definieren den Nachrichten-String, der von der FME Engine für erfolgreiche bzw. fehlgeschlagene Umsetzungen zurückgegeben wird. Diese Direktiven bieten den Mechanismus, mit dem die FME Engine die Ergebnisse an den Client zurückmeldet.

Der Inhalt dieser Antwortnachrichten ist nur für den Client von Bedeutung. Die FME Engine gibt die Nachricht einfach wie definiert an den Client zurück, der sie dann auf beliebige Weise verarbeitet. Die Nachricht kann die vordefinierten Pseudo-Variablen und mehrere andere Direktiven enthalten.

Direktiven für besondere Zwecke

Zusätzlich zu den allgemeinen Direktiven des globalen Abschnitts, die in der vorhergehenden Tabelle aufgeführt sind, sind bei Bedarf auch die folgenden Direktiven für spezielle Zwecke verfügbar. Es ist wichtig zu wissen, dass die Direktiven der Unterabschnitte die globalen Direktiven überschreiben.

Besonderer Zweck
Direktiven

SDE30_PERM_CONNECT <host> <instance> <database> <userID> <password>

 

Definiert eine permanente Verbindung zu einem ESRI SDE Server. Diese Verbindung wird kurz vor der ersten Umsetzung der FME Engine hergestellt. Die Verbindung wird dann von der Engine gehalten, sodass nachfolgende Umsetzungen keine neue SDE-Verbindung herstellen müssen.

Seien Sie vorsichtig, wenn Sie diese Direktive verwenden, da SDE-Verbindungen eine wertvolle Ressource sind und Sie diese sparsam verwenden sollten. Im Allgemeinen empfiehlt es sich, die FME Engine zunächst ohne permanente Verbindung zu verwenden. Sie können später eine dauerhafte Verbindung in Betracht ziehen, wenn Sie feststellen, dass das Herstellen und Trennen von Verbindungen zu SDE zu aufwendig ist.

<host>

Der Name des Host-Computers, auf dem der SDE-Server ausgeführt wird.

Voreingestellt: Standortspezifisch

<instance>

Die SDE-Instanz, zu der die FME Engine eine Verbindung herstellen soll.

Voreingestellt: Port:5151

<database>

Die Datenbank auf der Instanz, die verbunden werden soll. Wenn sich die SDE in Datenbanken wie Oracle befindet, wird der angegebene Wert nicht verwendet. Obwohl Sie einen beliebigen Wert angeben können, ist es üblich, den Wert NOTUSED für die Datenbank festzulegen.

Voreingestellt: Standortspezifisch

<userID>

Das Benutzerkonto, mit dem Sie sich bei der SDE angemeldet haben.

Voreingestellt: Standortspezifisch

<password>

Das Benutzerkennwort des Benutzerkontos.

Voreingestellt: Standortspezifisch

Unterabschnitte

Unterabschnitte sind optional und wenn sie vorhanden sind, überschreiben sie globale Direktiven. Wenn ein Unterabschnitt vorhanden ist, wird er mit einem Schlüsselwort benannt, mit dem Client-Anwendungen darauf verweisen können. Sie können mehrere Unterabschnitte für verschiedene Zwecke definieren.

In einer FME Flow-Umgebung hat jeder Dienst (z. B. Data Download, Data Streaming usw.) einen eigenen Unterabschnitt.

Wenn eine Job-Anfrage - einschließlich einer Anfrage eines FME Flow-Dienstes - einen Unterabschnitt angibt, führt die FME Engine diesen Job mit den Anweisungen im angegebenen Unterabschnitt aus. Die folgende Tabelle zeigt die FME Flow Web Services und die entsprechenden Unterabschnitte, die von der FME Engine verwendet werden, wenn eine Job-Anfrage von diesem Dienst ausgeführt wird.

Hinweis  Unterabschnitts-Direktiven haben Vorrang vor globalen Direktiven.

FME Flow Service

FME Engine SUB_SECTION

Data Download Service

FILE_DOWNLOAD_SERVICE

Data Streaming Service

STREAM_DOWNLOAD_SERVICE

FME Flow Console

SERVER_CONSOLE_CLIENT

FMEServerJobSubmitter Transformer
(voreingestellter Unterabschnitt)

SERVER_JOB_SUBMITTER

Job Submitter Service

JOB_SUBMITTER_SERVICE

REST Service

REST_SERVICE

FME Flow Scheduler

SERVER_SCHEDULER

In jedem Unterabschnitt können Operationen angegeben werden, die die FME Engine ausführen soll, bevor und nachdem eine Umsetzungsanfrage verarbeitet wird. Der Unterabschnitt kann auch definieren, welche Erfolgs- und Fehlerantwortnachrichten bei einer Umsetzung an den Client zurückgegeben werden, und er kann auch FME-Workspace-Makrowerte definieren.

Neben ihren eigenen Direktiven können Unterabschnitte eine Reihe von Direktiven verwenden, die für den globalen Abschnitt verfügbar sind, um die globalen Werte für diesen bestimmten Unterabschnitt zu überschreiben.

Durch die namentliche Angabe eines Unterabschnitts in der Umsetzungsanfrage können Clients veranlassen, dass die durch den Unterabschnitt definierten Operationen von der FME Engine für die angeforderte Umsetzung durchgeführt werden.

Jeder Unterabschnitt hat die folgende allgemeine Form:

SUB_SECTION <keyword> \

[<Global Directives> \]

[FME_TRANSFORMATION_LOG_DIR <logfile-dirpath> \]

[MACRO_DEF <macroName> <macroValue> \]*

[SUCCESS_RESPONSE <message>  \]

[FAILURE_RESPONSE <message>  \]

Die Unterabschnitts-Direktiven, die globale Direktiven überschreiben, werden in der folgenden Tabelle beschrieben.

SUB_SECTION.Direktiven

Beschreibung

SUB_SECTION <keyword>

Gibt den Unterabschnitt an, der definiert wird. Es gibt keine Begrenzung für die Anzahl der Unterabschnitte, die Sie definieren können. Identifizieren Sie jeden Unterabschnitt mit einem eindeutigen <keyword> - er darf nicht mit FME_ anfangen.

<Global Directives>

Die folgenden globalen Direktiven stehen auch für Unterabschnitte zur Verfügung, in denen Sie diese mit anderen Werten neu definieren können:

FME_WORKING_DIR

FME_MAPPING_DIR

AUTO_DIR_PREFIX

AUTO_FILE_PREFIX

SUCCESS_RESPONSE

FAILURE_RESPONSE

Neu definierte Direktiven überschreiben den globalen Wert für den jeweiligen Unterabschnitt, für den sie definiert sind.

FME_TRANSFORMATION_LOG_DIR <logfile-dirpath>

Gibt den Pfad zum Standardverzeichnis an, das die von der FME Engine für diesen Unterabschnitt generierten Protokolldateien für die Umsetzung enthält.

Standard: <FMEFlowDir>\Logs\<subsectionSpecificDir>

MACRO_DEF <macroName> <macroValue>>

Definiert einen Makrowert, der dem FME-Workspace zur Verfügung gestellt wird, wenn die Umsetzung ausgeführt wird. Der erste Parameter <macroName> gibt den Namen des Makros an.

Alle Token bis zur nächsten Direktive oder dem Ende der SUB_SECTION-Definition bilden den Wert für <macroValue>.

Sie können Makro-Referenzen verschachteln.

Wenn sie definiert sind, stehen Makros zur Verwendung in Erfolgs- und Misserfolgs-Antwort-Strings zur Verfügung, wobei die pseudo-variable (!macroName!)-Syntax verwendet wird.

Einige Unterabschnitte der FME Engine definieren ein bestimmtes Makro namens FME_SERVER_DEST_DIR, dessen Wert als Pfad zu einem eindeutigen, vom System generierten Verzeichnis festgelegt wird. Das Verzeichnis soll als Ausgabe-Speicherort für Umsetzungsergebnisdateien verwendet werden. Workspace-Autoren können diesen Wert als offengelegten Parameter referenzieren und als definierten Speicherort für Zieldatensätze verwenden.

Antwortnachrichten

SUCCESS_RESPONSE

FAILURE_RESPONSE

Die Direktiven SUCCESS_RESPONSE und FAILURE_RESPONSE definieren den Nachrichten-Strings, der von der FME Engine für erfolgreiche bzw. fehlgeschlagene Umsetzungen zurückgegeben wird. Diese Direktiven bieten den Mechanismus, mit dem die FME Engine die Ergebnisse an den Client zurückmeldet.

Der Inhalt dieser Antwortnachrichten ist nur für den Client von Bedeutung. Die FME Engine gibt die Nachricht einfach wie definiert an den Client zurück, der sie dann auf beliebige Weise verarbeitet. Die Nachricht kann die vordefinierten Pseudo-Variablen und mehrere andere Direktiven enthalten.