Introduction

  • First of all, users don't need to read all the parts of this article. For most situations, it is sufficient to check the prerequisites, download the software and run the installer which will guide you.
  • In this article users will find the details about the available installer options, updates and rollbacks for interested parties.
  • The JOC Cockpit can be installed on Linux and Windows systems using a graphical installer. For headless installation see the JS7 - JOC Cockpit - Headless Installation on Linux and Windows article.

Prerequisites

The following requirements have to be met before the JOC Cockpit can be installed and operated:

  • A Java Runtime Environment in version 1.8 or newer is required. For details see the Which Java versions is JobScheduler available for? article:
  • It is necessary that a time service is operated on the server that hosts JOC Cockpit in order to synchronize the system clock's time.
  • Technically the JOC Cockpit can be operated in any Unix environment. However, the JS7 - Platforms limit support for JOC Cockpit operation to Linux.
  • The JOC Cockpit requires access to a database to store inventory and status information and workflow related logs. See the JS7 - Database article for further information.
    • A schema has to be created in the database prior to installation.
    • A user account has to be created that is granted full privileges for the schema.
    • If you intend to use different accounts and privilege sets for setup and for operation of JOC Cockpit then consider switching Hibernate configuration files after setup (see below) to use an account with limited privileges to select, insert, update, delete and execute permissions for schema objects.
  • Installation of JOC Cockpit requires administrative privileges in the following situations:
    • for Unix systems:
      • Root permissions are required if JOC Cockpit is to be installed including the Jetty servlet container.
      • To install JOC Cockpit without root permissions the setup script should be executed with the -u argument, otherwise the sudo prompt will ask for the root password.
    • for Windows systems:
      • The setup requires administrative permissions.
  • An X-Server is required if the installer is executed on Unix systems in graphical mode. If an X-Server is not installed, then consider using JS7 - JOC Cockpit - Headless Installation on Linux and Windows.

Download

  • Download the JOC Cockpit installer archive for your target environment from the JS7 - Download page.
    • For Unix systems:
      • A .tar.gz archive including the installer is available that can be used to run the installer.
        • js7_joc_linux.<release>.tar.gz
    • For Windows systems:
      • A .zip archive including the installer is available that can be used to run the installer.
        • js7_joc_windows.<release>.zip
  • The .tar.gz/.zip archives can be used to install JOC Cockpit with the graphical installer or to carry out headless installation on both 32 bit and 64 bit operating systems.

Installation Video

This video explains how to create parallel jobs in a workflow that can be nested and joined.

Graphical Installer

Installation

The installer is available for Windows and Unix systems.

Installer Archive

Extract the JOC Cockpit archive to a suitable directory such as /home/<user-account> on Unix systems or C:\user\<user-accounton Windows systems.

The extracted installer directory layout looks like this:

  • db (not required for installation: directory for DBMS SQL scripts which can be used in case database objects are to be created before installation, see the JS7 - Database article)
    • mssql.sql
    • mysql.sql
    • oracle.sql
    • pgsql.sql
  • hibernate-examples (directory for DBMS connection sample files, for details see JS7 - Database)
    • hibernate-integrated-security-mssql.cfg.xml
    • hibernate-maria-mysql.cfg.xml
    • hibernate-oracle12c.cfg.xml
    • hibernate-postgres.cfg.xml
  • install-joc.txt (installation notes)
  • joc.<release>.jar (installer library for a given release)
  • joc_install.xml (installer response file)
  • license.gpl (copy of  GPLv3 (General Public License) )
  • license.html, license.txt (copy of JS7 JobScheduler Commercial License Agreement)
  • setup.sh, setup.cmd (installer script for Unix, Windows)

Database Connection

The database connection has to be ready prior to installation:

  • Create a schema and user account in your preferred database. For supported DBMS versions see JS7 - Database.
  • Specify connection information for the JOC Cockpit setup:
    • general connection information can be specified during the installation procedure or
    • a Hibernate configuration file can be prepared to store connection information.
      • Select one of the Hibernate example files described in the JS7 - Database article and copy it to the installer directory, for example with the name hibernate.cfg.xml.
      • Apply your changes to the file as explained from the JS7 - Database article.

Running the Installer

Graphical installation is started by running the setup.sh or setup.cmd file from the extracted archive.

Language Selection

  • Select the language to be used for the setup: English, Japanese and German are available.




Step 1 - Welcome Screen



Step 2 - License Options

Step 3 - License Agreement

  • The License Agreement displayed in step 2 of the installation has to be accepted before installation can take place.



Step 4 - Target Directory for Installation

  • The path to the installation directory for the JOC Cockpit program files is specified in this step.
  • The default installation directories for the JOC Cockpit are:

    • /opt/sos-berlin.com/js7/joc on Unix systems and

    • C:\Program Files\sos-berlin.com\js7\joc on Windows systems.
  • Users can use this window to specify an individual installation directory for JOC Cockpit.




Step 5 - Jetty Installation & Configuration

  • The JOC Cockpit ships with the Jetty Servlet Container. Step 5 allows the specification of whether or not the Servlet Container is to be installed and if so, its configuration - i.e. the ports to be used, installation directory, memory pool, etc.
  • While the Jetty Servlet Container included with the JOC Cockpit is installed in the installation directory that is specified in the previous step - the Jetty configuration files are installed in the jetty_base directory. The Jetty Base input field in the installer window can be used to specify the jetty_base directory. 
    • The default path to the jetty_base directory on Unix systems points to the user's home directory:
      • e.g. /home/<user-account>/sos-berlin.com/js7/joc
    • By default log files are stored in:
      • /var/log/sos-berlin.com/js7/logs on Unix systems.

    • The default path to the jetty_base directory and log files on Windows systems is: 
      • C:\ProgramData\sos-berlin.com\js7\joc



  • Note that if the Jetty included with JOC Cockpit is not to be installed and either an alternative Jetty installation or another Servlet Container product is to be used then relevant configuration files such as joc.properties will still be written to the file system. These files can then be moved to a suitable location for the Servlet Container as required. See the Configuration with Alternative Web Servers section below for more information.

Step 6 - JOC Configuration

  • The JOC Cockpit can be installed for cluster operation. if JOC Cockpit is installed for clustering, then it is required to provide a title to the JOC Cockpit. By default the title is JOC Cockpit.



  • The Security Level for the signing mechanism has to be specified at the time of JOC Cockpit installation. A Security Level is required for digital signing of scheduling objects such as workflows during deployment. See the see JS7 - Security Architecture article for more information. The JOC Cockpit provides the following Security Levels:
    • Low: This mechanism is easy to use as it does not require any user interaction for the signing operation to be performed. 
    • Medium: This mechanism is similar to the low Security Level except for the fact that the private key stored with the current user's profile is used for the signing of scheduling objects.
    • High: This mechanism is the most elaborate Security Level and requires any scheduling objects to be exported and to be signed individually outside of JOC Cockpit.

Step 7 - Database Management System

  • Choose the DBMS to be used by the JOC Cockpit for the database.

  • The database connection settings either can be specified directly or can be provided by a Hibernate configuration file. Settings require the DBMS to be specified, otherwise the Hibernate configuration file path can be specified after checking the option with hibernate configuration file.



  • The DBMS is specified in the upper selection from this window. It is recommended that the the DB tables are created or updated during installation option is selected.

Step 8 - Database Connection Configuration

  • Specify the configuration for the database connection.



  • The database connection settings should be evident from the above screenshot.

  • The database configuration for the JOC Cockpit is written to an XML file during installation and is stored in the jetty_base/resources/joc folder. The default name of the database configuration file is hibernate.cfg.xml. This file can be modified later on if required. Any text editor can be used. The JOC Cockpit service has to be restarted to apply changes made to the Hibernate configuration file.

  • The name and location of the Hibernate configuration file is specified with the joc.properties file which can be found in the jetty_base/resources/joc folder.

Step 9 - JDBC Driver for the Database Connection

  • Specify whether one of the JDBC Drivers included with the installer should be used for the database connection or if an external JDBC Driver should be used.
    The information displayed with this window depends on the DBMS that you selected:
    • If you specify a MySQL® DBMS then you will find a checkbox to specify if you want to use the MariaDB® JDBC Driver included with JS7. 
    • If you do not want to use the MariaDB® JDBC Driver version included with JS7 then you have to select an individual JDBC Driver (*.jar) that you downloaded from the DBMS vendor prior to installation of JOC Cockpit..



  • Configuring the JDBC Driver URL for Oracle® RAC databases

    The JDBC Driver URL for Oracle® RAC databases can be added to the Host input field of the database connection window. For example:

    jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON) 
    (ADDRESS=(PROTOCOL=TCP)(HOST=tst-db1.example.com)(PORT=1604)) 
    (ADDRESS=(PROTOCOL=TCP)(HOST=tst-db2.example.com)(PORT=1604))) 
    (CONNECT_DATA=(SERVICE_NAME=mydb1.example.com)(SERVER=DEDICATED)))

    Note that, the Schema and Port input fields should be left empty.

Step 10 - Performing the Installation

  • This step displays a progress bar for the first part of the installation procedure.

  • Changes to the configuration cannot be applied once this step has been started.



Step 11 - Applying the Configuration

  • This step displays the progress of the second part of the installation procedure that includes setting permissions and installing the JOC Cockpit Unix daemon or Windows Service.



  • The information displayed with this step is written to the installation log file that can be found in the jetty_base/logs folder.

Step 12 - Completion

  • The last step of the installation displays summary information about the installation (success/error) and paths to relevant files.



  • Note that if a problem occurs during installation a warning message will be displayed and a link to the installation log file will be provided.

  • A failed installation can be repeated at any time, uninstallation is not required.

Operation

  • Navigate to the Initial Operation section of this article for information about opening the JOC Cockpit  user interface.

Directory Layout

If the Jetty servlet container included with JOC Cockpit is installed then the following files will be added by default:

  • for Unix systems, files will be added to the /var/sos-berlin.com/js7/joc and /opt/sos-berlin.com/js7/joc directories,
  • for Windows systems, files will be added to the ProgramData\sos-berlin.com\js7\joc and Program Files\sos-berlin.com\js7\joc directories.

The following listing describes the directory layout after installation of JOC Cockpit:

  • /opt (Unix) Program Files (Windows)
    • sos-berlin.com
      • js7
        • joc (installation directory)
          • .jocinstallinformation (installation response file, remains in place after uninstall)
          • jetty_base (symbolic link to data directory)
          • license.gpl (copy of  GPLv3 (General Public License) used for the Open Source JS7 - License)
          • license.html (HTML format of license terms for the commercial JS7 - License)
          • license.txt (plain text format of license terms for the commercial JS7 - License)
          • sbom.json (JS7 - Software Bill of Materials)
          • ThirdParty.txt (lists the the 3rd party components and licenses used by JS7)
          • db (directory for DBMS *.sql scripts to populate the database)
            • h2
            • mssql
            • mysql
            • oracle
            • pgsql
          • install (directory with installer scripts)
          • jetty (directory for Jetty binary files and scripts)
          • lib (directory for user specific configurations)
          • service (directory for operation as a Windows Service)
          • Uninstaller (uninstaller directory, the empty directory remains in place after uninstall)
            • joc_install.xml (installer response file, remains in place after uninstall)
            • uninstaller.jar (used by uninstaller)
            • uninstall.sh|cmd (used by uninstaller)
  • /var (Unix) ProgramData (Windows)
    • sos-berlin.com
      • js7
        • joc
          • jetty_base (data directory)
            • joc_home (symbolic link to installation directory)
            • start.ini (Jetty servlet container configuration file, remains in place after uninstall. This file is migrated to the start.d folder starting from Release 2.5.0.)
            • lib (directory for Java libraries, remains in place after uninstall)
            • logs (directory for log files, remains in place after uninstall)
            • resources (directory for configuration files, remains in place after uninstall)
              • joc (directory for configuration files, remains in place after uninstall)
                • hibernate.cfg.xml (Hibernate configuration file for database access, remains in place after uninstall if modified)
                • joc.properties (JOC Cockpit configuration file, remains in place after uninstall)
                • log4j2.xml (log configuration file, remains in place after uninstall if modified, see JS7 - Logging)
                • shiro.ini.active (Shiro configuration file if the JS7 - Shiro Identity Service is used. This file reports the currently active configuration, remains in place after uninstall)
                • shiro.ini-example (Shiro example configuration file if the JS7 - Shiro Identity Service is used)
                • lib (optional directory for JDBC Drivers and licensed binary code)
                • license (optional directory for license certificate files, remains in place after uninstall)
                • xsd (directory for XSD schema files, remains in place after uninstall)
            • start.d (starting from Releases 2.5 (in progress) that introduces Jetty 11 this directory holds *.ini files for settings previously available with start.ini)
            • temp (directory for temporary files, remains in place after uninstall)
            • webapps (directory for JOC Cockpit installation)
              • joc (directory for JOC Cockpit GUI files and patches)
  • /home/<user-account> (Unix home directory)
    • .jocrc (optional profile script applied on start-up of JOC Cockpit)


Directory Layout if the Jetty Servlet Container is not Installed

If the Jetty servlet container included with JOC Cockpit is not installed and if no previous configuration files are found in the Program Files\sos-berlin.com\js7\joc directory then by default files will be added to the Program Files\sos-berlin.com\js7\joc directories only.

If configuration files are found in the Program Files\sos-berlin.com\js7\joc directory then files will be added to the ProgramData\sos-berlin.com\js7joc and Program Files\sos-berlin.com\js7\joc directories as explained above.

Update

Preparation

  • Stop the JS7 JOC Cockpit instance.

Running the installer

The update using the graphical installer can be performed by running the installer setup.sh|.cmd file after the extracted .tar.gz/.zip archive has been extracted and by providing the same parameters such as installation directory, ports etc.

Installation Log Files

The JOC Cockpit configuration and installation log information is written to a new log file each time an installation or update is carried out. These log files can be found in the logs sub-directory of the jetty_base directory.

  • Installation log files use names according to the pattern Install_V<release>_<date-time>_....log where <release> is the release number and <date-time> refers to the point in time of installation.
  • For further information about logging see JS7 - Logging.

Deinstallation

The JOC Cockpit can be uninstalled using the uninstall.cmd and uninstall.sh scripts available from the following location:

  • For Unix systems:
    • /opt/sos-berlin.com/js7/joc/Uninstaller
  • For Windows systems:
    • C:\Program Files\sos-berlin.com\js7\joc\Uninstaller

Unix Systems

The uninstall script on Unix systems runs in headless mode. The uninstall script will start the Uninstaller and remove both the installation directory, data directory and respective sub-folders. 

Windows Systems

Starting the uninstaller will open the following window on Windows systems:



Selecting the "Force the deletion of C:\Program Files\ ...." checkbox will cause the uninstaller to remove both program files and configuration files and folders.

If the checkbox is not selected then configuration files will be left in both the JOC Cockpit installation directory and the Jetty servlet container installation folder (if installed with the JOC Cockpit).

Automated Start-up and Shutdown

For Unix systems a start-up and shutdown configuration can be used that is executed by systemd running for the root account.

For Windows systems operation of JOC Cockpit by a Windows Service is recommended as such services can be configured to start/stop automatically on server startup and shutdown.

  • Consider assigning a service account to the JOC Cockpit service with the Windows Service Panel.
  • Consider allowing the JOC Cockpit service to be automatically started on server startup.

Initial Operation

Having completed the installation or update of the JS7 JOC Cockpit you can start the JOC Cockpit either manually or from its Unix daemon/Windows Service, see JS7 - JOC Cockpit Command Line Operation.

Should users face problems starting the JOC Cockpit then please refer to the JS7 - Troubleshooting - JOC Cockpit section.

A number of JOC Cockpit instances can be operated as a passive cluster with the first JOC Cockpit instance started acting as the primary cluster member and any additional JOC Cockpit instances acting as standby cluster members. The role of the primary cluster member is decided by the order by which JOC Cockpit instances are started.

  • Note that operation of a JOC Cockpit cluster for high availability requires a commercial license, see JS7 - License.
  • The installation of JOC Cockpit Cluster instances follows the standard operating procedures explained above - there is no difference in installation with regard to the roles of the active cluster member and any standby cluster members. 
  • Consider the following information about initial cluster operation:

Further References