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 thesudo
prompt will ask for the root password.
- for Windows systems:
- The setup requires administrative permissions.
- for Unix systems:
- 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
- A .tar.gz archive including the installer is available that can be used to run the installer.
- For Windows systems:
- A .zip archive including the installer is available that can be used to run the installer.
js7_joc_windows.<release>.zip
- A .zip archive including the installer is available that can be used to run the installer.
- For Unix systems:
- 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.
- To run the installer in headless mode see JS7 - JOC Cockpit - Headless Installation on Linux and Windows.
- Installation in graphical mode is described below.
Installer Archive
Extract the JOC Cockpit archive to a suitable directory such as /home/<user-account>
on Unix systems or C:\user\<user-account>
on 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.
- 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
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
- The License Options window displays licenses available for JOC Cockpit:
- The Open Source License GPLv3 (General Public License) is available.
- The SOS Commercial License can be used by adding a license certificate file that you receive from SOS after purchase of a license. For details see JS7 - How to apply a JS7 License Key.
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 andC:\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
- e.g.
- 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
- The default path to the jetty_base directory on Unix systems points to the user's home directory:
- 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 thejetty_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
andProgram 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)install_jetty_base.sh|.cmd
(used by the installer)install_jetty_service.sh
(used by installer for Unix)joc_install_tables.sh|.cmd
(creates or updates database objects, used for JS7 - Rescue in case of lost access to JOC Cockpit)joc_manage_identity_service.sh|.cmd
(see JS7 - Shiro Identity Service Migration)uninstall_jetty_service.sh
(used by installer for Unix)update_jetty_base.sh|.cmd
(used by installer)
jetty
(directory for Jetty binary files and scripts)bin
anonymize-logs.sh|.cmd
(used to anonymize log files, see JS7 - Log Anonymization)jetty.sh
(start script for JOC Cockpit Unix daemon)joc.service
(sample file for use with JS7 - systemd Service Files for automated Startup and Shutdown with Unix Systems)
lib
(directory for user specific configurations)log4j2.xml
(used for based console logging to stdout, see JS7 - Logging)patches
(used for JS7 - Patches for JOC Cockpit, the directory is cleaned up when running the installer)user_lib (
used for individual .jar files such as JDBC Drivers, see JS7 - Database)
service
(directory for operation as a Windows Service)install_jetty_windows_service.cmd
(used by installer)js7_joc.exe, js7_jocw.exe
(used for start-up and configuration of the service, see JS7 - How To - Apply Java Options)set_java_home_for_jetty_windows_service.cmd
(see JS7 - JOC Cockpit Windows Service does not start)start_jetty_windows_service.cmd
(used by installer)uninstall_jetty_windows_service.cmd
(used by uninstaller)
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 thestart.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 withstart.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)WEB-INF
classes
(directory for resource files and JS7 - Patches for JOC Cockpit)lib
(Java binary files)
/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
- Installation
- Operation
- Configuration
- Troubleshooting