Adding FME Engines on a Separate Machine
- Skill Level: Intermediate
- Estimated Time Required: 30-45 minutes
- Prerequisites:
- Existing Distributed/Fault-Tolerant FME Server installation.
- Access to system, network, and FME Server administrators.
You can add processing capacity to your FME Server by installing additional FME Engines on a separate computer from the FME Server Core.
When adding FME Engines, keep in mind the following:
- Adding FME Engines that do not match the primary release version of the FME Server Core is not supported. The primary release version refers to the first decimal value following the release year. For example, if the release version of the FME Server Core is 2020.0, FME Engines from release versions 2020.0.1 or 2020.0.2 are supported. However, FME Engines from release versions 2020.1 or 2021 are not supported.
- We recommend installing all FME Engines on systems that are synchronized to the same time zone as other FME Engines and the FME Server Core. If time zones differ, unexpected issues may arise, including:
- Difficulty accessing the FME Server Web User Interface.
- Improper timing of Schedule Initiated triggers.
- Inconsistent or misleading timestamps in log files (accessed from Resources).
For more information, see About Times and Time Zones.
In the instructions below, the computer that hosts the FME Server Core is the <coreHost>.
Note: In a fault-tolerance environment, we recommend assigning unique names to FME Engines. However, if multiple FME Engine hosts have the same FME Engine name, the queue server configuration applies to all FME Engines with the same name in the same way regardless of which host it resides on. For more information, see Queue Control.
- Obtain the Installer. Be sure to obtain the FME Server Installer (not the Engine Installer).
- Start the installer on another computer (<engineHost>).
-
On the Installation Extractor dialog, specify a Destination folder in which to extract installation files. Note that this folder only specifies where installation files are extracted—it does not specify where FME Server program files are installed. That location is specified later in the installer.
Tip: Take note of the specified Destination folder location. Following installation, you may wish to:
Review the installation .log file.
Remove these files. Doing so saves almost 2 GB disk space.
Click Install.
When extraction is complete, the installer opens. Proceed through the installer to the Choose Setup Type dialog.
- On the Choose Setup Type dialog, select the Distributed Engine setup type.
- On the Destination Folder dialog, specify the directory to install the FME Engines.
- On the User Account page, specify the Windows user account that will run the <engineHost>. This account must have:
- Read/Write access to the FME Server System Share that you specify in the next dialog. The System Share is the location where FME Server stores Repositories and Resources files.
- Read/Write access to the FME Server installation directory that you specified in the previous dialog.
- "Log on as a service" rights on the <engineHost>. For more information, see this Microsoft Docs article.
- On the Existing FME Server System Share dialog, provide the UNC path to the FME Server System Share directory.
- On the FME Server Hostname dialog, enter the hostname of the <coreHost> computer.
- On the Database Server Type dialog, specify the database type that you specified when installing the FME Server Core. If you specified a database other than the "FME Server Database," enter the connection parameters in the next dialog.
- On the Database User dialog, specify the user name and password for the FME Server Database that you specified when installing FME Server.
- On the Install Python 2.7 dialog, specify whether you want to install an optional Python 2.7 interpreter. (A Python 3.7 interpreter is installed by default.)
- Complete the remaining dialogs of the FME Server Installer.
- If this <engineHost> is connecting to a <coreHost> that also hosts the built-in FME Server database and the initial FME engines, as with an Express Installation, allow the necessary connection to this machine:
- On the <coreHost>, open file pg_hba.conf, located in %ALLUSERSPROFILE%\Safe Software\FME Server\pgsql\data.
- Change the following lines:
- Restart the FME Server Database and FME Server Engines services.
- If the <coreHost> machine was an Express Installation of FME Server, complete the following steps on the <coreHost> to configure the FME Server Web Services:
- Open the corresponding propertiesFile.properties file for the Data Download, Data Streaming, Job Submitter, and Notification services, located at <FMEServerDir>\Utilities\tomcat\webapps\<service_name>\WEB-INF\conf\propertiesFile.properties.
- For each properties file, locate the parameter REQUEST_DATA_DIR and change the value from a local file system path (for example, C:/ProgramData/Safe Software/FME Server//resources/system/temp/requestdata) to a UNC path that references the <coreHost> (for example, //MyHost/FME Server/resources/system/temp/requestdata).
- After saving the changes in the properties file for each service, restart the FME Server Application Server service.
For example, the properties file for the Data Download Service is at <FMEServerDir>\Utilities\tomcat\webapps\fmedatadownload\WEB-INF\conf\propertiesFile.properties
Note: Use forward slashes only.
- On the <coreHost> machine, open configuration file fmeServerConfig.txt, located in <FMEServerDir>\Server\, and update the FME_SERVER_HOST_NAME parameter to a value that fully resolves to the IP address of the <coreHost> machine.
- Restart the FME Server Core service.
If the <coreHost> machine is an Express installation of FME Server, the System Share is written, by default, to %ALLUSERSPROFILE% \Safe Software\FME Server\, unless specified otherwise.
Note: Unless modified, C:\ProgramData is the default value of the %ALLUSERSPROFILE% environment variable.
In all cases, enter the UNC path to the System Share, including the final Safe Software\FME Server directories, which are created by default. For example, \\MyServer\Safe Software\FME Server.
WARNING: The Python 2.7 interpreter relies on the Visual Studio 2008 runtime, which has security vulnerabilities. If you will run existing FME Desktop workspaces from FME Server that reference Python 2.7, we strongly recommend upgrading them to reference Python 3.x in lieu of installing the Python 2.7 interpreter.
Note: Unless modified, C:\ProgramData is the default value of the %ALLUSERSPROFILE% environment variable.
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
to:
host all all 0.0.0.0/0 md5
host all all ::/0 md5
- If not already accomplished, mount the directory that holds the FME Server System Share. (The System Share holds FME Server Repositories and Resources):
- Obtain the Installer. Be sure to obtain the FME Server Installer (not the Engine Installer).
- Start the FME Server Installer:
- From the setup type list, choose Engine.
-
The installer prompts you for a location to install the FME Server Engine components. This can be on the local machine.
- The installer prompts you for the name of the <coreHost>. In a fault-tolerant installation, the primary <coreHost> should always be specified. Do not specify the failover host.
-
The installer prompts you for the FME Server System Share location. Enter the mounted directory created in step 1.
- Enter the database type you specified when installing the FME Server Core. If you specified a database other than the "FME Server Database", enter the connection parameters.
- Enter the user name and password for the FME Server Database that you specified when installing FME Server.
- Complete the remaining dialogs of the FME Server Installer.
- Manually start FME Server, and configure it to start automatically.
-
If this <engineHost> is connecting to a <coreHost> that also hosts the built-in FME Server database and the initial FME engines, as with an Express Installation, allow the necessary connection to this machine:
- On the <coreHost>, open file pg_hba.conf, located in <FMEServerDir>\Utilities\pgsql\data\.
- Change the following lines:
- Restart the FME Server Database and FME Server Engines services.
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
to:
host all all 0.0.0.0/0 md5
host all all ::/0 md5
- Ensure that the user account that runs <engineHost> has the necessary permissions to access the FME Server System Share and the FME Server install directory. For more information, see Directory and Account Permissions.
- On the <coreHost> machine, open configuration file fmeServerConfig.txt, located in <FMEServerDir>\Server\, and update the FME_SERVER_HOST_NAME parameter to a value that fully resolves to the IP address of the <coreHost> machine.
- Restart the FME Server Core service.
sudo mount -t nfs <coreHost>:/<FMEServerSystemShare> /<mntPath>
sudo ./<installationFile>
The installation on <engineHost> starts two FME Engines by default. The FME Engines start and register with the FME Server Core running on <coreHost>. All licensed engines are listed on the Engines page of the Web User Interface.
Note: You may have to disable any firewalls that are running on this computer.
You can also use the Engines & Licensing page to perform the following tasks:
- To license FME Engines, see Licensing.
- If you want this computer to start more or less FME Engines, see Configuring the Number of FME Engines to Start.
For more information, see Verify the Installation (Windows) or Verify the Installation (Linux).