# Remote Execution

Report execution can be balanced across servers to improve performance. As one execution is being processed subsequent report execution calls will be sent to different servers. For each new job, Exago will prioritize the server with the lowest load (according to CPU and memory load) and ratio of running jobs to max jobs allowed. The number of jobs on a server will not exceed the value specified by the simultaneous_jobs_max setting.

> NOTE. In versions prior to v2016.2.12, machine load is not taken into account, and jobs are sent to different servers in the order that they are specified ("round-robin").

The following instructions provide an overview for setting up report execution on remote servers:

On each remote server:

- Install the Exago Scheduler Service. For detailed instructions see: Scheduler Service Installation.
- The following conditions must be met:
  - The Scheduler version must match the Exago Application version.
  - The Scheduler’s language files and the Exago Application’s language files must match.
  - Any custom assemblies must be present in the Scheduler directory.
- Configure the Exago Scheduler. For detailed instructions see: Configuring Scheduler Services.
  - By default the execution host will pass the reports back to the Exago Application. In order to save reports to an external repository, see: Saving Scheduled Reports to External Repository.

> NOTE. Multiple scheduler services can point to the same repository.

In the Exago Application:

1. Using the Admin Console, open the Scheduler Settings
   - Set ‘Enable Remote Report Execution’ to True in the Report Scheduling Settings.
   - In ‘Remote Execution Remoting Host’ list the servers you want to use delineated by commas or semicolons (ex. http://MyHttpServer1:2001, tcp://MyTcpServer:2121). The servers will be prioritized based on the listed order.

> NOTE. When multiple remote execution hosts are enabled, the Exago application will prioritize the one with the lowest number of queued jobs.

> NOTE. When an execution host is used for both scheduling and remote execution, the Exago application will place immediate priority on Remote Execution tasks.