# Scheduler Configuration

To configure the Scheduler Service API, edit the file `WebReportsScheduler.xml` in the folder where the scheduler service was installed.

The following settings are available:

> NOTE. Settings that can be `true` or `false` are case sensitive and should use lower case. Ex. encrypt_schedule_files will cause an error for `True`.

`smtp_server` – The smtp server used to email reports.

`smtp_enable_ssl` - Set to `true` to enable SSL.

`smtp_user_id` - The user id that is used to login into the smtp server.

`smtp_password` - The password that is used to login into the smtp server.

`smtp_from` - The 'From' email address used in the report emails.

`smtp_from_name` - The 'From' name used in the report emails.

`error_report_to` - The email address to send error reports to.

`channel_type` - `tcp` or `http` – must match the setting of the Remote Host in the Scheduler Settings admin config.

`port` - The port number of the .NET remoting object used to communicate with Exago; this should also be entered in the Scheduler Settings of the admin config.

`working_directory` - The directory where scheduled documents and temporary files are written. The default setting `[INSTALLDIR]working` creates a `working` folder in the scheduler location.

`default_job_timeout` - The maximum number of seconds any report execution is allowed. If an execution reaches a maximum number of seconds an email will be sent to the address specified under `error_report_to.```

`report_path` - A path to specify where to save reports when 'Email Scheduled Reports' is set to `False` in the admin config. For more details see Saving Scheduled Reports to External Repository.

`sleep_time` - The time interval (in seconds) used for polling for scheduled reports to execute.

`simultaneous_job_max` - The maximum number of report executions that can occur simultaneously. This setting is based on the resources available of the server where the scheduler is installed.

`logging` - Logging is on by default. To turn logging off, set to `OFF` (in all-caps). To configure logging, edit the Logging Settings in the `eWebReportsScheduler.exe.config` file.

`flush_time` - The number of hours that a completed, deleted, or aborted job will be saved for viewing in the schedule reports manager. Set to 0 to flush jobs immediately upon completion. Set to -1 to disable automatic flushing.

`sync_flush_time` - The flush time for synchronous (non-scheduled remote) jobs.

`email_addendum` - Text that will be added at the end of email body. Use `\n` to insert lines.

`external_interface` - This is optional and overrides the value set in the admin config. The advantage of setting the value here is that the existing scheduled reports that have a previous external interface value will take the new value. For more details see External Interface.

`abend_upon_report_error` - This controls how the scheduling service should proceed if an error occurs while loading or executing a report. The default `true` will stop the running the schedule and set the status to 'Abended'. Set to `False` to continue running the schedule and maintain the status as 'Ready'.

`ip_address` - Binding IP address for the Scheduling Service. Most commonly used when the server has multiple Network Interface Cards (NICs).

`encrypt_schedule_files` - Set to `true` to encrypt the files created by the scheduling service. All existing schedules will be encrypted the next time the service is started.

`max_temp_file_age` - The number of minutes between each "flush" of the temp files created by the scheduling service. The default is 1440 minutes (24 hours).

> NOTE. Making this value too low may result in errors as temp files are used during report execution and for interactive HTML capabilities when using remote execution. It is not recommended setting this value any lower than 60 minutes.

`email_retry_time` - In the case an email fails to send, the number of minutes to wait before retrying to send the email. After five failed attempts the schedule will set itself to 'Aborted'. The default is 10 minutes.

`max_job_execution_minutes` (v2016.2.12+) - Maximum amount of time (in minutes) to run an execution job before timing out. If the job times out, the schedule will be marked as 'Aborted'.

`secure_channel` (v2016.3+) - Set to `true` to allow receipt of encrypted data from hosts. The setting Use Secure Scheduler Remoting Channel must be `true` in the admin config.

`security_protocol` (v2016.3.4+) - Specify which security protocol(s) the scheduler should use. Possible values: `Ssl3, Tls, Tls11, Tls12, Tls13` (.NET v4.6+). Separate multiple values with commas (,).

`service_name_tag` - For manual installation of scheduler services using Visual Studio installutil.exe, this field is appended to the end of the service name. Useful for installing multiple services on the same server. installutil.exe must be in the same folder as the scheduler configuration file.

# Starting and Changing Scheduler Services

The Windows Service will have to be manually started for new installations of the Scheduler. Starting the service will create the working directory as set in `working_directory` described above.

To start the scheduler open Windows Services. Double click on 'ExagoScheduler' and the Properties menu will appear. Click Start.

If any changes are made to the configuration (detailed above) the service must be stopped and restarted for the changes to take effect.