Introduction

Taking a backup involves consistently storing the following data in a JS7 environment:

  • Configuration Data
    • This includes installation options and configuration items which are updated after installation, for example certificates and settings for HTTPS connections.
  • Inventory Data
    • JS7 - Inventory of workflows, jobs and related objects managed with JOC Cockpit.
  • Transaction Data
  • Log Data
    • Log files are created and updated continuously and are mainly used for problem analysis. As past log files are not used at run-time many users consider them not be an immediate target of backups. 

JOC Cockpit

Configuration Data

The JOC Cockpit configuration data is stored in files in the JETTY_BASE/resources/joc directory hierarchy, for example:

Configuration data is created during installation and is optionally modified by users later on. This implies that repeated backups of configuration data are only required after changes have been made by users.

Inventory Data, Transaction Data

All objects managed with the JOC Cockpit are stored in the JS7 - Database.

This includes data that is managed by the JOC Cockpit GUI:

Users should make backups of the JS7 database on a regular basis.

  • The database backup tool is required to create consistent backups in situations such as concurrent transactions - for example, new items being added to the JS7 History while a backup is being performed.
  • The database backup tool should not interfere with JS7 database transactions and should not affect JS7 operations. 
  • If no decent backup tool is in place then users can shut down the JOC Cockpit and make a backup by exporting the JS7 database.

Log Data

JOC Cockpit log files are stored in the JETTY_BASE/logs directory.

Log files are not too relevant except for problem analysis, However, compliance reasons can require backups of log files.

Controller

Configuration Data

The Controller's configuration data is available in files in the JS7_CONTROLLER_DATA/config directory hierarchy, for example:

Configuration data is created during installation and is optionally modified by users later on. This implies that repeated backups of configuration data are only required after changes have been made by users.

Transaction Data

Transaction data of Controller instances is available in the Controller's JS7_CONTROLLER_DATA/state directory which holds the journal of JS7 - Deployment of Scheduling Objects operations and JS7 - Order State Transitions. This applies to Standalone Controller instances and to Controller Cluster instances.

  • There is little point in backing up transaction data as it can change every millisecond.
  • Restoring from a backup that is, for example, 30 minutes old is of no use as in between times jobs will have been executed and orders will have proceeded. This will result in severe data loss and an inconsistent journal.

Standalone Controller

  • Use of a cluster file system for the Standalone Controller instance's journal is an option. However, this also brings performance penalties and requires user intervention to restart a failed Standalone Controller instance from a clean copy of its journal.
  • If transaction data for a Standalone Controller is lost then this will affect the state of orders which are currently running and that of orders whose execution status has not yet been reported back to the JOC Cockpit. When a Standalone Controller is started with a new journal then:
    • the JOC Cockpit will automatically re-assign the Controller and related Agents,
    • users will have to redeploy any related scheduling objects such as workflows from the JOC Cockpit's inventory,
    • users will have to resubmit any orders from the JOC Cockpit's Daily Plan.

Controller Cluster

  • The JS7 - Controller Cluster guarantees redundancy and consistency of transaction data which is synchronized between Active and Standby Controller instances on different machines.
  • If the Active Controller instance's journal is lost, for example due to disk failure, then the Standby Controller instance will pick up operation from a synchronized copy of the journal. If the failed Controller instance is started later on, it will be assigned the standby role and will synchronize its journal from the Active Controller Instance.

Log Data

Log files for the Controller (not: for workflows or jobs) are available in the Controller's JS7_CONTROLLER_DATA/logs directory.

Log files are not too relevant except for problem analysis, However, compliance reasons can require backups of log files.

Agent

Configuration Data

The Agent's configuration data is available in files in the JS7_AGENT_DATA/config directory hierarchy, for example:

Configuration data is created during installation and is optionally modified by users later on. This implies that repeated backups of configuration data are only required after changes have been made by users.

Transaction Data

Transaction data for Agents is available in the Agent's JS7_AGENT_DATA/state directory which holds the journal of JS7 - Deployment of Scheduling Objects operations and JS7 - Order State Transitions.

  • There is little point in backing up transaction data as it can change every millisecond.
  • Restoring from a backup that is, for example, 30 minutes old is of no use as in between times jobs will have been executed and orders will have proceeded. This will result in severe data loss and an inconsistent journal.

Standalone Agent

  • Use of a cluster file system for the Standalone Agent instance's journal is an option. However, this also brings performance penalties and requires user intervention to restart a failed Standalone Agent from a clean copy of its journal.
  • If transaction data for a Standalone Agent is lost then this will affect the state of orders currently running, until their execution status has been reported back to the Controller. When a Standalone Agent is started with a new journal then the Controller will automatically forward workflows and orders to bring the Agent's journal in sync with information from the Controller's journal.
  • Do not try to restore a version of the Agent's journal that is not in sync with the Controller. If an older version of an Agent's journal is restored then this will be inconsistent with latest changes to the Controller's journal and will prevent the Agent from being coupled. If you have to restore an Agent, for example after disk failure, then you have to accept that currently running orders are lost and you should start the Agent with a new journal. To this end you can remove the contents of the Agent's state directory.

Agent Cluster

  • The JS7 - Agent Cluster guarantees redundancy and consistency of transaction data which is synchronized between the Active and Standby Director Agent instances on different machines. If the Active Director Agent's journal is lost, for example due to disk failure, then the Standby Director Agent will pick up operation from a synchronized copy of the journal. If the failed Director Agent instance is started later on then it will be assigned the standby role and will synchronize its journal from the Active Director Agent.
  • Subagents do not use a journal as they are used for job execution only. Workflows and order state transitions are managed by the Director Agent only.

Log Data

Log files for the Agent (not: for workflows or jobs) are available from the Agent's JS7_AGENT_DATA/logs directory.

Log files are not too relevant except for problem analysis. However, compliance reasons can require backups of log files.