Skip to main content
Feedback

High Availability Configuration

Updated 

This section provides details on the setup and operation of an MFT Runtime deployment using a Primary/Secondary configuration for high availability, and also includes details on health monitoring and the failover mechanism.

note

Both runtimes in a Primary/Secondary HA setup must use the same scheduler type (SYSTEMD or CronTab). If the scheduler types do not match between the primary and secondary runtime, duplicate file processing may occur during failover.

Primary runtime

  1. Deploy the runtime on the primary machine (Windows or Linux). 
  2. The runtime is assigned a unique Node ID. 
  3. Configure MFT Runtime Health Check

Secondary runtime

  1. Deploy an identical runtime on the secondary machine, either by installing it again using the same script as the primary or by copying the installation folder from the primary to the secondary.
  2. The secondary runtime must have the same Node ID as the primary. 
  3. The secondary runtime can now also be started, with the latest release of MFT Runtime, runtimes can detect other active instances of itself in the network. If a runtime detects an already active instance, it will refrain from accepting new tasks, ensuring no conflicts arise between multiple active runtimes.
  4. Configure the MFT Node Health Check port. (recommended to enable local monitoring, but not mandatory)

Heartbeat Monitoring

Monitor the health of the installed runtimes through: 

a. Local HealthCheck Port

b. The MFT cloud control plane. 

Failover Mechanism

In case the primary runtime becomes unresponsive (heartbeat down):

  • The secondary runtime will automatically take over as the active runtime. 
  • The updated runtime runtime ensures that: 
  • A runtime can detect other running runtimes and adjust its behavior accordingly. 
  • Nodes will not restart or re-initiate tasks for at least 3 minutes (by default) after the previous instance shuts down. This delay is configurable via the HeartbeatTtlSeconds parameter in the runtime's appsettings.json file (default: 180 seconds).

Multiple identical runtimes can run simultaneously, where:

  • One runtime acts as the primary, actively processing tasks. 
  • Other runtimes remain operational but will not accept new tasks unless the primary becomes unavailable. 
caution

When a failover from the primary to the secondary file transfer agent occurs, partially transferred files may not be automatically resumed by the secondary agent in the current implementation. Some partially transferred files may still require resending following a failover.

Best Practices

  • Regularly test failover and recovery processes to ensure smooth operation. 
  • Maintain robust logging for monitoring and troubleshooting. 
  • Ensure all active runtimes are configured to detect and respond appropriately to each other. 

This approach eliminates the need for a passive secondary runtime and enhances system resilience by allowing both runtimes to operate actively while preventing task conflicts. 

Stopping the Node

If you need to temporarily stop the MFT Node without fully uninstalling it, you can use PowerShell commands to disable and stop the scheduled task:

Disable-ScheduledTask -TaskName "ThruNode-{NODE_ID}" -Confirm:$false
Stop-ScheduledTask -TaskName "ThruNode-{NODE_ID}"

Replace {NODE_ID} with your actual Node ID (e.g., the folder name like TN7Y483B from your installation path).

What these commands do:

  • Disable-ScheduledTask: Prevents the scheduled task from running automatically
  • Stop-ScheduledTask: Immediately stops the currently running task

This approach allows you to stop the runtime temporarily while keeping the installation intact. To restart the runtime later, you can re-enable the scheduled task using:

Enable-ScheduledTask -TaskName "ThruNode-{NODE_ID}"
note

You must have Administrator privileges to run these commands.

On this Page