Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Introduction

  • Relevant information is also available in the JS7 - Impact of a Controller outage article.
  • For information about the behavior in case of outages see the
  • The outage of a Controller will not stop the execution of workflows with an Agent.
  • But if a workflow includes jobs that are executed on different Agents then the workflow will not be executed and will be put on hold as the switching of Agents during workflow execution is done by Controller.
  • Testing by SOS includes performing tests for the scenario when the Controller is not available for 24 hours and the Agent executes all scheduled orders. When the Controller is started again then job execution results are updated to the JOC Cockpit History and become visible with the GUI.
  • For information about the behaviour in case of outages see JS7 - FAQ - What happens to workflows in case of outage of a Controller?
  • Use of a Controller cluster will leverage an outage situation as the standby Controller instance will pick up operations immediately during fail-over after 3-5s. The failed active Controller instance can be started later on and will automatically synchronize with the currently active Controller instance.

Troubleshooting

The Controller is the component in JS7 that holds the JS7 Controller holds job-related configurations and orchestrates the AgentAgents. The outage of a Controller instance does not prevent the execution of workflows having the with jobs running on a single agentthe same Agent. However, it affects, for example the execution of workflows which includes the jobs that are running on multiple agents as the that include jobs running on a number of Agents as switching of Agents during the workflow execution is done performed by the Controller. 

The Controller outage can be handled either by resolving the issue with the current Controller, e.g. by restarting or by relocating the ./state directory to a different Controller provided that access to the same scripts and programs is available that should be executed. The journal of the Controller is stored in the ./state directory. To relocate the Controller to a different Controller copy the journal to the target Controller.

Relocating the Agent's Journal

If Controller1 is facing an outage and Controller2 is running (on the same server or on a different server) then follow the below steps to relocate the Controller's journal from Controller1 to Controller2:

...

Troubleshooting starts from the fact that users reproduce and locate a problem in order to better know the nature of the problem:

  • As a first step check the Controller's log file controller.log and watchdog.log, see JS7 - Log Files and Locations.
    • Warnings and errors can be found in log files with the output qualifiers WARN and ERROR.
    • Example:
      • 2021-10-10T09:53:04,939 WARN js7.base.session.SessionApi - HttpControllerApi(https://apmacwin:4344): HTTP 401 Unauthorized: POST https://apmacwin:4344/controller/api/session => InvalidLogin: Login: unknown user or invalid password
  • Due to log rotation, log files from previous days are available in a compressed .gz format on a daily basis, see the JS7 - Log Rotation article for details.
    • For Unix the zcat command can be used to directly access compressed log files.
    • For Windows compressed files have to be extracted, for example using 7-zip.
  • Note that a Controller instance can report problems related to other products such as Agents and the JOC Cockpit. In this situation it is recommended that the product's log files are checked.
  • If warnings or error messages are not evident then users should do some research: the Product Knowledge Base and the Change Management System offer a search box, browsers offer access to search engines.
  • Having completed analysis of a problem and being certain that the problem is related to a product defect and not to resources of the IT environment:
  • Should the controller.log file not provide sufficient information to reproduce a problem then the log level should be increased, see the JS7 - Log Levels and Debug Options article.

In some situations, for example if computer memory is not sufficient for the heap size of the Controller instance's Java Virtual Machine, the outage of a Controller instance can be handled by restarting the instance. However, problems indicating insufficient resources typically require better sizing of resources.

If the problem is related to server resources and if operation of the Controller cannot be continued on the same server then relocation of the Controller instance can be a last means to fight an outage. Relocation includes copying/moving the Controller instance's JS7_CONTROLLER_DATA/state directory to a Controller instance on a new server. This directory holds the Controller instance's journal. To relocate a Controller instance the journal files should be copied to the new Controller instance. Refer to the JS7 - How to relocate a Controller article for the steps to applyNote: If you intend to roll back from Controller2 to Controller1 then consider applying the above steps.