Job Management within a distributed environment

An environment can be configured to stop bottlenecks resulting in efficiency and reliability issues with the use of distributed job management. Scalable environments can increase efficiency and reliability with its distributed processing but adds availability with its configurable Master/Slave servers. Slaves can be configured to handle specific processes and can be added to an environment as and when requirements increase.

Furthermore, software/hardware load balancers can be incorporated within a scalable environment to ensure traffic from end users is routed efficiently and reliably to ensure availability of the application while maximizing concurrent users.

With the inclusion of a hardware/software load balancer, incoming traffic can be configured in a way in which it uses a round robin method to distribute the traffic to the app servers involved. 

Example Environment

This is an example and should not be used to base your own environment on.

Setting up the Exterro Service Master/Slaves

When creating an environment with multiple Exterro services, there must be a minimum of one master. The master ensures jobs are distributed to the slaves as they were configured. Users can utilise multiple masters and load balancers to serve UI pages ensuring high availability, however this is not a requirement.

How to install the Exterro Service

This must be followed on each additional master/slave.

  1. Copy and run the Forensic Tools installer on a slave as a domain-administrator.
  2. Review and accept the License Agreement and click Next.
  3. Select “FTK Central” when prompted to select which product to install. Click Advanced.
  4. Check Forensic Tools and uncheck any other component and click Install.

    Note:     You may be prompted to install additional Microsoft Visual C++ runtime libraries, click Install.

  5. Click Next.
  6. Review and accept the License Agreement and click Next.
  7. At the configuration dialog, select the desired installation path and the Database computer/IP. This field must point at the single database server being utilised by all servers.
    • This will ensure that the relevant table is updated so the UI can display the server with the Exterro service running.
  8. At the User Credentials dialog, enter the credentials for an account to the run the Exterro service.

    Warning:     This account should be a member of the local administrator’s group, and be a domain-level account in a multi-box environment. The "Local System" account should only be used if all components, as well as case and evidence storage, will be on one single machine.

  9. Click Next.
  10. Click Install.
  11. Click Finish and restart the server.

Which configuration keys control the Exterro services master/slave state?

There are numerous ADGWeblabSelfHost configuration keys that must be configured in order to facilitate an environment with the ability to distribute specific jobs.  Users must edit the ADGWeblabSelfHost.exe.config file with a text editor.

If any changes have been made to ADGWeblabSelfHost.exe.config, the Exterro service must be restarted.

Configuration Keys



This key ensures that at least one service is set as the master; this only allows this service to be used as a master when required and when in an environment with . The master serialises the jobs that the slaves will manage so they are not duplicated.

Value can be set as true or false.


This key ensures that an Exterro service can allow users to access the FTKC UI from it. It does not disable access to FTK Plus from a given host server.


Multiple Exterro services can have this set as true. This would aid in a load balanced environment. For example, if UI A has reached its limit, a load balancer can direct users to another UI machine which has this configuration key enabled.

Value can be set as true or false.


This key should only be set as false if the server will only be used to handle the UI, not jobs.

Value can be set as true or false.


This configuration key, if set as true will force the current server sending the job to process the job.


In an environment with multiple servers, this should be turned off so any server can pick it up.

Value can be set as true or false.

How to connect to the correct Database

This must be followed on each additional master/slave.

  1. Navigate to C:\Program Files\AccessData\Forensic Tools\7.5\bin.
  2. Open DBConfig.exe as an Administrator.
  3. Enter the shared database details but do not check create database.
  4. Click Connect.

How to Install and Configure the Redis Cache Server

Only one of the servers with an Exterro service must have this installed.
Installer can be found here.

Installing Redis for distributed caching

  1. Navigate to the Redis-x64-5.0.14.msi and run as administrator.
  2. Click Next.
  3. Review and accept the license agreement, then click Next.
  4. Select an installation directory, enable PATH variables and click Next.
  5. Select a Port to run Redis through. Default port is 6379.
  6. Check the Windows Firewall exception.
  7. Leave the Memory Limit as unchecked and click Next.
  8. Click Install.
  9. Click Finish.

Configuring the Redis installation

  1. Navigate to: C:\Program Files\Redis.
  2. Open in a text editor.
  3. Within the Network section, add the IP address of the server running Redis and save it.
  4. Navigate to: C:\Program Files\AccessData\Forensic Tools\7.5\bin and open ADGWeblabSelfHost.exe.config in a text editor. 
  5. Set the "RedisUrl" configuration key to state the IP address of the Redis cache server and port.
    • E.G.
  6. Set the "EnableDistributedCache" configuration key to True.
  7. Repeat this on all servers with the Exterro service in use.
    • When these changes have been made, ensure all servers involved have their Exterro service restarted.

Adding Master/Slaves to the ADG Settings table manually (Not Required)

These steps should only be followed if the server with an Exterro service has not been automatically added to the cmn_settings table.

  1. Open MSSQL Server Management Studio.
  2. Login with an authorised user.
  3. Navigate to Databases > ADG > Tables > ADG7x1.cmn_Settings.
  4. Enter the required hosts.
    • Ensure an array of hosts has been configured to add to the query.
    • UPDATE ADG7x1.cmn_Settings SET SettingValue = ‘[ARRAY OF HOSTS – EXAMPLE BELOW]’ WHERE SettingName = ‘QuincEngineSettings’
  5. Once the query has been run and the data has been successfully added, restart the Exterro Service on all masters/slaves.
  6. To verify, open FTKC.
    • Navigate to the Administration section > System Management > Jobs.
    • The drop-down list should display the hosts added to the database.

How to format the array of hosts

Default JSON Array

The snippet below is what is by default in the SettingValue column.


Example JSON Array

The snippet below is an example of an environment with 2 masters and 1 slave where all servers can handle all job types.


Key Options




The HostName is where the Exterro service resides.


The EngineMachineName is what is displayed in the FTKC UI.


The JobsILike is where the jobs types are stored.


This is initiated by the UI. When jobs are associated to a server in FTKC, this will be updated. If this string is left empty, it will be able to pick up all job types.


The CoresToUse allows the host to limit how many cores the service can utilise.


The Port in which the service is utilizing.


If the service is utilizing HTTPS.


If the service is running as a master.


This can be set via the ADGWeblabSelfHost configuration file.




The URL where the service can be accessed.

Configuring the Exterro Services to handle specific jobs within FTKC UI

  1. From the home page, click Settings from the top-right corner.
    • The Administration page is displayed.
  2. Navigate to the System Management tab.
  3. Click Jobs.
  4. Select a server from the drop-down list.
  5. Check specific job categories.
    • Processing
    • eDisco/Search
    • Other
  6.  Click Associate Job(s) to server.

Warning:     If there are no job types selected, the server will be assigned all jobs as a result.