Skip to main content

Is there any way to restart FME engines on a set schedule ? Like from a rest call or something like that ? Just exploing ways to clear all database connections an engine might have open, context is firewall timeouts.

Hi @mferwerda1111,

I do not believe there is currently away to restart Engines from within the Web UI or using a Rest API call. There is an idea for an enhancement similar to this so please consider adding your vote and comments to help our Product Owners understand why this is an important feature. Alternatively create a new idea if this one doesn't quite meet your request.

There are some parameters in the fmeServerConfig.txt that you could modify to help with this problem:

MAX_TRANSACTION_RESULT_SUCCESSES/FAILURES is used to determine after how many successful/failed jobs the engine is set to restart after. By default this is 100 and 10 respectively, but you could lower these to ensure the engines are restarting more frequently.

MAINTENANCE_IDLE_WAIT sets the amount of time in seconds an engine will remain idle before it is restarted. The default value is 90 seconds so reducing this may also help with your issue.

If you decide to make either of these changes make sure to restart your FME Server for them to be applied.


Hi @mferwerda1111,

I do not believe there is currently away to restart Engines from within the Web UI or using a Rest API call. There is an idea for an enhancement similar to this so please consider adding your vote and comments to help our Product Owners understand why this is an important feature. Alternatively create a new idea if this one doesn't quite meet your request.

There are some parameters in the fmeServerConfig.txt that you could modify to help with this problem:

MAX_TRANSACTION_RESULT_SUCCESSES/FAILURES is used to determine after how many successful/failed jobs the engine is set to restart after. By default this is 100 and 10 respectively, but you could lower these to ensure the engines are restarting more frequently.

MAINTENANCE_IDLE_WAIT sets the amount of time in seconds an engine will remain idle before it is restarted. The default value is 90 seconds so reducing this may also help with your issue.

If you decide to make either of these changes make sure to restart your FME Server for them to be applied.

Thanks Holly, so MAINTENANCE_IDLE_WAIT at 90 seconds, so just to be really clear, if there are no jobs on on a specific engine for 5 minutes, during that 5 minutes that engine will have restarted 3 times, clearing any open connections, correct ?


The easiest is probably to create a regular scheduled task (in the OS, not on FME Server) and then use the service mechanisms provided by your OS.

On Windows, e.g., you can use the following to restart the FME Server Engines

net stop "FME Server Engines"
net start "FME Server Engines"

You can simply insert these two lines into a batch file and call them from the Windows scheduler.


Thanks Holly, so MAINTENANCE_IDLE_WAIT at 90 seconds, so just to be really clear, if there are no jobs on on a specific engine for 5 minutes, during that 5 minutes that engine will have restarted 3 times, clearing any open connections, correct ?  

Hi @mferwerda1111,

Not quite - the definition for the MAINTENANCE_IDLE_WAIT parameter is: 

Amount of time in seconds to wait before attempting to perform maintenance operations. Currently # Engines that have already processed jobs and that are idle for the specified time will undergo # maintenance which includes recycling connections and memory used by Engine.

So the engines will restart if they have been idle for 90 seconds after running a job, but in that 5 minute period if no more jobs are processed by that engine after the restart it will not be restarted a second time from this idle wait value. 


If you want to "restart" the engines (and the count in the database), I have found if you set the max engines on the licensing section to 0 then wait for it to refresh to 0 and then change it back to the number of engines you're licensed for also seems to work.


Reply