Versions Compared

Key

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

...

Initial Operation is performed after installation of the JS7 Controller, Agent and the JOC Cockpit.

Operation Use of a Controller Cluster is subject to the agreements of the JS7 - License.

  • Use of Standalone Controllers:
  • Use of Controller Clusters:
    • available to commercial license holders,

For a Controller Cluster, initial operation includes:

  • applying the license key and licensed binary code.
  • registering the Controller Cluster and Agents.

...

Controller Cluster Checks

...

Both Controller instances in a cluster have to be installed with the same Controller ID, which is a unique identifier for the Controller Cluster. Users can adjust modify the Controller Instance Start Script that holds the environment variable: containing the JS7_CONTROLLER_ID=<controller-id> environment variable.

Changing the Controller ID requires reinstallation of the Controller instances by carrying out the following steps for each instance:

  • Stop the Controller service:
    • Unix, Windows: Stop the Controller instance from the command line , see as described in the JS7 - Controller - Command Line Operation article.
    • Windows: Stop the Controller instance from the Windows service panel. 
  • Remove the Controller journal files:
    • The journal files have to be removed from the configuration directory with the state sub-directory. This means that any orders, which have been submitted for workflows will be removed and that workflows will have to be redeployed:
      • Unix: rm -f /var/sos-berlin.com/js7/controller/state/*
      • Windows: del C:\ProgramData\sos-berlin.com\js7\controller\state\*
    • Note that a different location for the configuration directory can be specified during installation.
  • Modify the Controller ID:
  • Restart the Controller instance.

...

The Secondary Controller has to use the following configuration from its JS7_CONTROLLER_DATA/config/controller.conf file , - see JS7 - Controller Configuration Items: for more information.

    js7.journal.cluster.node.is-backup=yes

...

  • Stop the Controller service:
    • Unix, Windows: Stop the Controller instance from the command line , see as described in the JS7 - Controller - Command Line Operation article.
    • Windows: Stop the Controller instance from the Windows service panel. 
  • Remove Controller journal files:
    • The journal files have to be removed from the configuration directory with the state sub-directory. Any orders that have been submitted for workflows will be removed and workflows have to be redeployed:
      • Unix: rm -f /var/sos-berlin.com/js7/controller/state/*
      • Windows: del C:\ProgramData\sos-berlin.com\js7\controller\state\*
    • A different location for the configuration directory can be specified during installation.
  • Modify the the config/controller.conf file to reflect the js7.journal.cluster.node.is-backup=yes setting.
  • Restart the Controller instance.

...

Customers holding a commercial license receive a license key from SOS and can download the binary code that allows clustering of JS7 components, products - see the JS7 - Download article for more information.

The steps required are summarized below, for details see see the JS7 - How to apply a JS7 License Key article.

Anchor
license_key_on_premises
license_key_on_premises
Handling for Installation on premises

...

  • The license key can be added during installation of a Controller instance and a JOC Cockpit instance.
  • The license key can be added later on by storing saving the license certificate file to in the following locations:
    • Unix: Controller configuration directory with license sub-directory.
      • Default location: /var/sos-berlin.com/js7/controller/config/license
      • A different location for the configuration directory can be specified during installation.
    • Windows: Controller Configuration Directory with license sub-directory.
      • Default location:C:\ProgramData\sos-berlin.com\js7\controller\<controller-id>\config\license
        • where <controller-id> is the unique identifier for the Controller that is specified during installation.
      • A different location for the configuration directory can be specified during installation.

...

  • Binary code for clustering is available from the js7-license.jar file, which can be obtained from JS7 - Download.
  • By downloading the binary code for clustering users consent with the license terms for a commercial license of JS7.
  • The js7-license.jar file has to be stored to the following location:
    • Unix: Controller installation directory with lib/user_lib sub-directory:
      • Default location: /opt/sos-berlin.com/js7/controller/lib/user_lib
      • If the user_lib sub-directory does not exist then users should create the sub-directory.
      • A different location for the installation directory can be specified during installation.
    • Windows: Controller installation Directory with lib\user_lib sub-directory:
      • Default location:C:\Program Files\sos-berlin.com\js7\controller\lib\user_lib
      • If the user_lib sub-directory does not exist then users should create the sub-directory.
      • A different location for the installation directory can be specified during installation.

Anchor
license_key_docker
license_key_docker
Handling for

...

Container Installation

Basically the same locations for license key and licensed binary code apply as explained for Unix operating systems in previous chapterssections of this article.

Note: No access to the container's file system is available before the container is running, which makes it impossible to add or replace licensed binary code before the Controller is has been started.

Adding a License Key

  • The license key is added by storing the license certificate file to in the following location:
    • /var/sos-berlin.com/js7/controller/config/license
    • The directory  /var/sos-berlin.com/js7/controller directory is typically mounted from a Docker var volume when running the container, for details see see the JS7 - Controller Installation for Docker Containersarticle.

Adding Licensed Binary Code

  • Binary code for clustering is available from the js7-license.jar file, which can be obtained from from the JS7 - Download page.
  • By downloading the binary code for clustering, users consent with the license terms for a commercial license of JS7.
  • The js7-license.jar file has to be stored in the following location:
    • /var/sos-berlin.com/js7/controller/config/lib
    • The directory /var/sos-berlin.com/js7/controller typically directory is typically mounted from a Docker var volume when running the container: for details see JS7 - Controller Installation for Docker Containers.
    • If the sub-directory config/lib  sub-directory does not exist then you can create it before storing the saving the js7-license.jar file.

On start-up the Controller checks the above directory for the existence of the js7-license.jar file. If the file is found then:

  • the file will be copied to /opt/sos-berlin.com/js7/controller/lib/user_lib
  • any existing version of the file in this directory will be overwritten.

...

Users can navigate with their browser to the JOC Cockpit URL and enter the User Account and Password. Typically the URL will include the hostname and port that JOC Cockpit has been installed forwith:

  • For example, http://myhost:4446. Check that the JOC Cockpit port is accessible. This might require additional firewall rules to allow access to the port from the computer that the user's browser is operated foron.

  • After initial installation of the JOC Cockpit the default user account root and password root are available.

...

Register Controller and Agents

After successful login logging in to the JOC Cockpit a dialog window for registering a Controller is displayed. Users will find the same dialog later on via the Manage Controllers/Agents view.

Users have a choice to register of registering a Standalone Controller (within scope of the Open Source License) or a Controller Cluster for high-availability (within scope of the JS7 Commercial License, see JS7 - License).

...

A Controller Cluster implements high-availability for automated fail-over should a server node operating the Controller instance become unavailable.

A Controller Cluster requires an arbitrator to act as Cluster Watch. This role can be assigned JOC Cockpit or an Agent.

Controller Registration using JOC Cockpit as Cluster Watch

Starting from release 2.5.3 and 2.6.0 JOC Cockpit is always used as Cluster Watch, no additional options are offered:

Image Added


Controller Registration using a Cluster Watch Agent

Starting from release 2.5.3 and 2.6.0 JOC Cockpit is always used as Cluster Watch, no additional options are offered:
 

Image AddedImage Removed


This dialog allows the Primary Controller instance, the Secondary Controller instance and an Agent Cluster Watcher Watch to be specified.

Explanation

  • Title: The title added for each Controller instance is displayed with in the JS7 - Dashboard view.
  • URL for JOC Cockpit: Primary and Secondary Controller instances are accessed by this URL from the JOC Cockpit using this URL.
    • The URL includes the protocol, hostname and port that the relevant Controller instance is operated forwith.
    • By default the HTTP protocol is used. The HTTPS protocol can be used if TLS/SSL certificates are in place, see see the JS7 - Controller HTTPS Connections article.
  • URL for Secondary / URL for Primary: The Primary Controller establishes a connection to the Secondary Controller and vice versa.
    • Input to this field is not required if the URL for a Controller instance is the same across the network.
    • Input to this field is required should Proxy Services be involved that make use of specific URLs.
  • Cluster Watcher: An Watch: Either JOC Cockpit or an Agent is required for operation of a Controller Cluster. The Agent is
    • If JOC Cockpit is assigned the Cluster Watch role then JOC Cockpit will contact both Controller Cluster members.
    • If an Agent is used then it will be contacted by both Controller Cluster members to verify the cluster status
    should a direct connection between Controller Cluster members not be available
    • .
      • Agent ID: The Agent is assigned a unique identifier. Uniqueness is applied for all Agents registered with the same Controller. The Agent ID cannot be modified during the lifetime of an Agent. Changes to the Agent ID require the Agent to be removed and re-added with JOC Cockpit.
      • Agent Name: The name of an Agent is used for example when assigning the Agent to jobs. Similarly to the Agent ID the Agent Name has to be unique but can be changed later on.
      • Agent URL: The protocol HTTP or HTTPS, host name or IP address and port by which the Agent is accessible to the Controller.

Note: The following connections should be accessible and might require additional firewall rules to allow access to the relevant ports:

  • JOC Cockpit connection
    • to the Primary Controller's host and port.
    • to the Secondary Controller's host and port.
  • Primary Controller connection
    • to the Secondary Controller's host and port.
    • to the Cluster Watcher any Agent's host and port.
  • Secondary Controller connection
    • to the Primary Controller's host and port.
    • to the Cluster Watcher any Agent's host and port.

For more information about network connections see JS7 - System Architecture.

...

After the connection between JOC Cockpit and the Controller is established users can add Agents.
The  icon in the JOC Cockpit main menu offers to select allows the Manage Controllers/Agents view to be selected:


To add a Standalone Agent users can start from the Controller's action menu which can be used to which add the Agent should be added:


This brings forward opens the following popup window:

Image RemovedImage Added


Explanation:

  • Agent ID: A unique identifier of the Agent. Uniqueness is applied for all Agents registered with the same Controller. This identifier cannot be changed later on.
  • Agent Name: The name of an Agent is used, for example, when assigning the Agent to jobs. Similarly to the Agent ID ,the Agent Name has to be unique but can be changed later on.
  • Title: An individual description that which can be searched for.
  • Alias Names: The same Agent is available from a different name. This can be helpful if distinct Agent Names should be assigned the jobs, for example if more Agents are used in a production environment that map to a smaller number of Agents in a non-production environment.
  • Process Limit: Agents can execute an unlimited number of parallel processes. Users can limit parallel processes to prevent exhausting a server's resources and to make orders wait until the next process will be available.
  • URL: The protocol HTTP or HTTPS protocol, host name or IP address and port by with which the Agent is accessible to can be accessed from the Controller.

Further References

...