Introduction
Taking a backup includes to consistently store the following data in a JS7 environment:
- Configuration Data
- This includes installation options and configuration items that are updated after installation, for example certificates and settings for HTTPS connections.
- 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.
- Inventory Data
- JS7 - Inventory of workflows, jobs and related objects managed with JOC Cockpit.
- Transaction Data
- JOC Cockpit
- JS7 - History of past order and task executions, of deployments and order submissions.
- JS7 - Daily Plan for future order starts.
- Controller and Agent
- JS7 - Order State Transitions that are persisted to allow restart capabilities.
- JOC Cockpit
JOC Cockpit
Configuration Data
The JOC Cockpit configuration data are stored to files in the JETTY_BASE/resources/joc
directory, for example:
joc
start.ini
(Jetty Servlet Container settings)joc.properties
(installer options, see JS7 - JOC Cockpit Configuration Items)log4j2.xml
(see JS7 - Log Files and Locations)*.p12
(keystore and truststore files, see JS7 - JOC Cockpit HTTPS Connections)lib
*.jar
(optional location for JDBC Driver .jar files and thejs7-license.jar
file, see JS7 - Database).
license
*.pem, *.crt
(license certificate files, see JS7 - How to apply a JS7 License Key)
patches
*.jar
(patched libraries, see JS7 - Patches for JOC Cockpit)
Configuration data are created during installation and optionally are modified by users later on. This suggests that backups of configuration data are required only in case of changes by users.
Log Data
JOC Cockpit log files are stored in the JETTY_BASE/logs
directory.
Except for problem analysis log files are not too relevant, However, compliance reasons could suggest to backup log files.
Inventory Data and Transaction Data
All objects managed with JOC Cockpit are stored in the JS7 - Database.
This includes data that are managed by the JOC Cockpit GUI:
- Inventory Data
- JS7 - Inventory of workflows, jobs and related objects to manage dependencies.
- JS7 - Settings that determine the working of JOC Cockpit.
- JS7 - Controllers and Agents that are managed by JOC Cockpit.
- JS7 - Identity Services that are managed by JOC Cockpit.
- JS7 - Profiles that hold user preferences.
- Transaction Data
- JS7 - History of past order and task executions, of deployments and submissions.
- JS7 - Daily Plan for future order starts.
Users should take backups of the JS7 database on a regular basis. The database backup tool is required to create consistent backups, for example in case of concurrent transactions if new items are added to the JS7 History while a backup is performed.
Controller
Configuration Data
The Controller's configuration data are available from files in the JS7_CONTROLLER_DATA/config
directory, for example
config
controller.conf
(see JS7 - Controller Configuration Items)log4j2.xml
(see JS7 - Log Files and Locations)lib
*.jar
(optional location for thejs7-license.jar
file, see JS7 - How to apply a JS7 License Key)
license
*.pem, *.crt
(license certificate files, see JS7 - How to apply a JS7 License Key)
patches
*.jar
(patched libraries, see JS7 - Patches for Controller)
private
private.conf
(see JS7 - Controller Configuration Items)*.p12
(keystore and truststore files, see JS7 - Controller HTTPS Connections)
Configuration data are created during installation and optionally are modified by users later on. This suggests that backups of configuration data are required only in case of changes by users.
Log Data
Log files of the Controller (not: of workflows or jobs) are available from the Controller's JS7_CONTROLLER_DATA/logs
directory.
Except for problem analysis the log files are not too relevant, However, compliance reasons could suggest to backup log files.
Transaction Data
Transaction data of Controller instances are available from the Controller's JS7_CONTROLLER_DATA/state
directory that holds a journal of JS7 - Deployment operations and JS7 - Order State Transitions. This applies to Standalone Controller instances and to Controller Cluster instances.
- It is pointless to backup transaction data as they can change every millisecond.
- Restoring from a backup that is for example 30 minutes back is of no use as in between jobs will have been executed and orders will have proceeded which includes severe data loss and results in an inconsistent journal.
Standalone Controller
- Use of a cluster file system for the Standalone Controller instance's journal is an option. However, this includes performance penalties and requires user intervention to restart a failed Standalone Controller instance from a clean copy of its journal.
- Should transaction data of a Standalone Controller be lost then this affects the state of orders that are currently running or for which the execution status has not yet been reported back to JOC Cockpit. When a Standalone Controller is started with a new journal then
- JOC Cockpit will automatically re-assign the Controller and related Agents,
- users have to redeploy any related scheduling objects such as workflows from the JOC Cockpit's inventory,
- users 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 that are synchronized between Active and Standby Controller instances on different machines.
- Should the Active Controller instance's journal be lost, for example due to disk failure, then the Standby Controller instance will pick up operation form a synchronized copy of the journal. If the failed Controller instance is started later on then it will be assigned the standby role and will synchronize its journal from the Active Controller Instance.
Agent
Configuration Data
The Agent's configuration data are available from files in the JS7_AGENT_DATA/config
directory, for example
config
agent.conf
(see JS7 - Agent Configuration Items)log4j2.xml
(see JS7 - Log Files and Locations)patches
*.jar
(patched libraries, see JS7 - Patches for Agent)
private
private.conf
(see JS7 - Agent Configuration Items)*.p12
(keystore and truststore files, see JS7 - Agent HTTPS Connections)
Configuration data are created during installation and optionally are modified by users later on. This suggests that backups of configuration data are required only in case of changes by users.
Log Data
Log files of the Agent (not: of workflows or jobs) are available from the Agent's JS7_AGENT_DATA/logs
directory.
Except for problem analysis the log files are not too relevant, However, compliance reasons could suggest to backup log files.
Transaction Data
Transaction data of Agents are available from the Agent's JS7_AGENT_DATA/state
directory that holds a journal of JS7 - Deployment operations and JS7 - Order State Transitions.
- It is pointless to backup transaction data as they can change every millisecond.
- Restoring from a backup that is for example 30 minutes back is of no use as in between jobs will have been executed and orders will have proceeded which includes severe data loss and results in an inconsistent journal.
Standalone Agent
- Use of a cluster file system for the Standalone Agent instance's journal is an option. However, this includes performance penalties and requires user intervention to restart a failed Standalone Agent from a clean copy of its journal.
- Should transaction data of a Standalone Agent be lost then this affects the state of currently running orders until their execution status is 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.
Agent Cluster
- The JS7 - Agent Cluster guarantees redundancy and consistency of transaction data that are synchronized between Active and Standby Director Agent instances on different machines. Should the Active Director Agent's journal be lost, for example due to disk failure, then the Standby Director Agent will pick up operation form 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 make use of a journal as they are used for job execution only. Workflows and order state transitions are managed by the Director Agent only.