Introduction

  • Relocating an Agent refers to the scenario where the Agent should be moved either to a new server or to a new location on the same server. Relocation of an Agent will stop the execution of workflows during the Agent's down-time. Relocation steps include copying the contents of the ./state directory to a new Agent installation.
  • Before copying the contents you should first stop the Agents' service as otherwise it will continue to update its journals. This is an important step as otherwise the Agent will execute the same workflows once it is started later on. This would result in double job execution which might be harmful depending on the nature of your jobs.
  • As the Agent does not use a database connection, relocating the Agent only requires the contents of the ./state directory to be copied and the URL of the Agent to be updated in the JOC Cockpit user interface.

Relocating an Agent

  • Relocating an Agent requires the installation of a new Agent and copying the Agent's journal from the ./state directory. Then the Agent's URL has to be changed in the JOC Cockpit "Manage Controller/Agents" dialog.
  • The ./config folder of an Agent installation may contain keystore and truststore files and additional configuration files. Therefore, if the Agent is operated with HTTPS connections and if you want the new Agent to use HTTPS connections as well, the new Agent may require an individual server authentication certificate that matches the hostname.

Relocating an Agent's Journal

If Agent1 is facing an outage and should be relocated to Agent2  - on the same server or a different server - then follow the below steps to relocate the Agent's journal:

  1. Ensure that Agent1 has shutdown.
  2. Install Agent2.
  3. Copy the files from the ./state directory of Agent1 to the relevant directory of Agent2. 
  4. Start Agent2.
  5. Note that the Agent URL is not the same for Agent1 and Agent2.  Therefore the URL has to be updated in the JOC Cockpit.
  6. To change the Agent URL, login to the JOC Cockpit.
  7. From the main menu select the item "Manage Controllers/Agents".
  8. Make sure you edit the existing Agent1 which is not in service.
  9. Change the Agent1 URL to point to the Agent2 URL.
  10. When workflows are confirmed to work with Agent2 then drop or move the contents of the ./state directory of Agent1. This an important step as otherwise Agent1 will execute the same workflows if it is started later on. This would result in double job execution which might be harmful depending on the nature of your jobs.



Notes:

  • If you use HTTPS connections for Agents then consider that Agent2 may require its individual server authentication certificate. 
    • If Agent1 is operated with HTTPS then you can modify the protocol to HTTP and point to a different host provided that this is in line with your security requirements.
    • The same applies vice versa if Agent1 is operated with HTTP and Agent2 with HTTPS.
  • If you intend to roll back from Agent2 to Agent1 then repeat the procedure described above, changing the controller instances appropriately.