Introduction
The JOC Cockpit can be installed on Linux and Windows systems without the use of a graphical installer by running the JOC Cockpit installer in headless mode. See the JS7 - JOC Cockpit - Installation Using the Graphical Installer for Linux and Windows article for instructions on the use of a graphical installer.
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. Starting from Release 2.5.0 the minimum Java version is Java 11. 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, support for operation of the JOC Cockpit is limited to Linux systems as described in the JS7 - Platforms article.
- The JOC Cockpit requires access to a database to store inventory and status information, as well as workflow related logs - see the JS7 - Database article.
- 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 the 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 the JOC Cockpit requires administrative privileges in the following situations:
- for Unix systems
- the JOC Cockpit installer cannot be executed from the root account but can be executed from a user account that makes use of
sudo
to acquire privileges:- to make the root account owner of the installation directory, for example, in
/opt
- to make the user account owner of the configuration directory, for example, in
/var
- to make the root account owner of the installation directory, for example, in
- administrative privileges are not required for installation with a user account that owns the installation and configuration directories.
- the JOC Cockpit installer cannot be executed from the root account but can be executed from a user account that makes use of
- for Windows systems
- the setup requires administrative privileges.
- for Unix systems
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 which can be used to run the installer.
js7_joc_linux.<release>.tar.gz
- A .tar.gz archive including the installer is available which can be used to run the installer.
- For Windows systems:
- A .zip archive including the installer is available which can be used to run the installer.
js7_joc_windows.<release>.zip
- A .zip archive including the installer is available which 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.
Installation Video
This video explains the installation.
Installation in Headless Mode
Installation
The installer is available for Windows and Unix systems.
- To run the installer in graphical mode see JS7 - JOC Cockpit - Installation Using the Graphical Installer for Linux and Windows.
- Installation in headless 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 that can be used in case that database objects should be created before installation, see the JS7 - Database article)mssql.sql
mysql.sql
oracle.sql
pgsql.sql
hibernate-examples
(directory for DBMS Hibernate connection sample files, see the JS7 - Database article)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 the JS7 - Database article.
- Specify connection information for the JOC Cockpit setup:
- you can specify general connection information during the installation procedure or
- you can prepare a Hibernate configuration file to store connection information.
- Pick up one of the Hibernate example files listed above which matches your DBMS and copy the file to the installer directory, e.g. with the name
hibernate.cfg.xml
. - Apply your changes to the Hibernate file as explained in the JS7 - Database article.
- Pick up one of the Hibernate example files listed above which matches your DBMS and copy the file to the installer directory, e.g. with the name
Installer Response File
- The JOC Cockpit makes use of the
joc_install.xml
file which includes installer options such as the installation directory, ports etc. - Customers with a commercial license should choose the relevant license option and specify the location of the license key file with the installer response file.
The
joc_i
nstall.xml
file is explained with the code listing below. The comments included are intended to be self-explanatory.
Download: joc_install.xml
Running the Installer
Headless installation is performed by opening a terminal or console window and navigating to the folder containing the setup.sh
or setup.cmd
file.
Performing headless installation of JOC Cockpit on Unix systems without root permissions:
Starting headless installation of the JOC Cockpit on Unix systems without root permissions# login as the user account (not as root) ./setup.sh -u joc_install.xml
- All files in the installation and configuration directories will be owned by the user account
Performing headless installation of JOC Cockpit on Unix systems from a user account that can acquire root permissions:
Starting headless installation of the JOC Cockpit on Unix systems with root permissions# login as the user account (not as root) ./setup.sh joc_install.xml
- The installer will use
sudo
to acquire root permissions. Execution of the above command by the root account is denied. - Files in the installation directory will be owned by the root account, files in the data directory will be owned by the user account as described below.
- The installer will use
Performing headless installation of JOC Cockpit on Windows systems requires administrative privileges:
Starting headless installation of the JOC Cockpit on Windows systems@rem login with an account that can acquire elevated privileges for administrative tasks setup.cmd joc_install.xml
Note: Do not omit specifying the joc_install.xml
response file as a command line argument when executing setup.sh
or setup.cmd
. If the response file is not specified, the graphical installer will be invoked as described in the JS7 Installation: How to install the JS7 JOC Cockpit on premises using the Graphical Installer article.
Directory Layout
By default the installation is added:
- for Unix to the:
- installation directory:
/opt/sos-berlin.com/js7/joc
- data directory:
/var/sos-berlin.com/js7/joc
- installation directory:
- for Windows to the:
- installation directory:
Program Files
\sos-berlin.com\js7\joc
- data directory:
ProgramData\sos-berlin.com\js7\joc
- installation directory:
The following listing shows the directory layout after installation of the JOC Cockpit:
/opt
(Unix installation directory),Program Files
(Windows installation directory)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 Jetty installer scripts)install_jetty_base.sh|.cmd
(used by 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 installer)
Uninstaller
(Uninstaller directory, the empty directory remains in place after uninstall)joc_install.xml
(installer response file, remains in place after uninstall)uninstaller.jar
(binary file of the uninstaller)uninstall.sh|cmd
(script to invoke uninstaller)
/var
(Unix data directory), ProgramData
(Windows data directory)sos-berlin.com
js7
joc
jetty_base
(configuration 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)archive
(directory for JOC Cockpit versions before applying patches, remains in place after uninstall)lib
(directory for Java libraries, remains in place after uninstall)logs
(directory for log files 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)
root
/home/<user-account>
(Unix home directory).jocrc
(user 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 only be added to the Program Files
\sos-berlin.com\js7\joc
directories.
If configuration files are found in 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 and Upgrade
Detailed instructions for updating and upgrading can be found in the JS7 - Update and Patch Management article.
Preparation
- Stop the JS7 JOC Cockpit instance.
Running the Update
- The update of the JS7 JOC Cockpit is performed from a similar download archive to that used for a fresh installation.
- Use the
joc_install.xml
file created during the installation. The default location of thejoc
_install.xml
file from a previous installation is:C:\Program Files\sos-berlin.com\js7\joc\
for Windows and
/opt/sos-berlin.com/js7/joc
for Unix systems.
- Perform the same steps to run the installer as explained above.
- The update will replace existing files and will update database objects as required.
- The update will not remove configuration files or settings in such files.
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 the JS7 - Logging article.
Deinstallation
The JOC Cockpit can be uninstalled using the uninstall.sh
and uninstall.cmd
scripts available from the following locations:
- 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 will remove the installation directory, data directory and sub-folders.
Windows Systems
Starting the uninstaller will display the following window:
Selecting the "Force the deletion of C:\Program Files\ ...." checkbox will cause the uninstall script to remove both the program and the configuration files and folders.
If the checkbox is not selected, configuration files will be left in both the JOC Cockpit installation folder 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 with the root
account.
- For details see the JS7 - systemd Service Files for automated Startup and Shutdown with Unix Systems article.
For Windows systems operation of the JOC Cockpit by a Windows Service is recommended as such services can be configured to start/stop automatically on server start-up 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 start-up.
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 the JS7 - JOC Cockpit Command Line Operation article.
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 operating 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 for the roles of primary cluster member and standby cluster members.
- Note the following information about initial cluster operation:
Further References
- Installation
- Operation
- Configuration
- Troubleshooting