Versions Compared

Key

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

Table of Contents
Anchor
Installation_RequirementsInstallation_Requirements

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 starting from in version 1.8 or newer is required. Starting from Release 2.5.0 the minimum Java version is Java 11. For details see see the Which Java versions is JobScheduler available for?
  • JOC Cockpit requires access to a database to store inventory information, status information and workflow related logs, see JS7 - Database.
  • 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
      • administrative privileges are not required for installation with a user account that owns the installation and configuration directories.
    • for Windows systems
      • the setup requires administrative privileges.
    Installation of JOC Cockpit requires administrative permissions:
    • On Windows systems:
      • The setup asks for administrative permissions.
    • On Unix systems:
      • Root permissions are required when the JOC Cockpit is to be installed with the Jetty servlet container. If the Jetty is operated as a demon, i.e. the Jetty Servlet Container and JOC Cockpit are to be started automatically after a reboot of the machine.
      • 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.   

Download

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

Installation Video

This video explains the installation.

Widget Connector
urlhttps://www.youtube.com/watch?v=Q6Ib9YRAGxg&ab_channel=JobScheduler

Installation in Headless Mode

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 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.

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_install.xml file is explained with the code listing below. The comments included are intended to be self-explanatory.
    Download: joc_install.xml

    Code Block
    languagexml
    titleConfiguration of the joc_install.xml file
    linenumberstrue
    collapsetrue
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!-- 
    XML configuration file for JOC Cockpit setup
    
    The JS7 JOC Cockpit is available with a dual license model:
    - GNU GPL v3.0 License, see https://www.gnu.org/licenses/gpl-3.0.en.html
    - JS7 Commercial License, see license.txt
    
    The setup asks you for the desired license model,
    see below <entry key="licenseOption" .../>
    
    If you run the installer and do not specify a commercial license key
    then at the same time you accept the terms of the
    license agreement under the GNU GPL v3.0 License.
    -->
    <AutomatedInstallation langpack="eng">
        <com.izforge.izpack.panels.UserInputPanel id="home">
            <userInput/>
        
  • The JOC Cockpit makes use of the joc_install.xml file that includes the parameters such as installation path, ports etc.
    • For a fresh installation, the installer response file is included with the downloaded archive.
  • The joc_install.xml file is explained with the code listing below. The comments included are intended to be self-explanatory.
    Download: joc_install.xml

    Code Block
    languagexml
    titleConfiguration of the joc_install.xml file
    linenumberstrue
    collapsetrue
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!-- 
    XML configuration file for JOC Cockpit setup
    
    The JS7 JOC Cockpit is available with a dual license model:
    - GNU GPL v3.0 License, see https://www.gnu.org/licenses/gpl-3.0.en.html
    - JS7 Commercial License, see license.txt
    
    The setup asks you for the desired license model,
    see below <entry key="licenceOptions" .../>
    
    If you run the installer and do not specify a commercial license key
    then at the same time you accept the terms of the
    license agreement under the GNU GPL v3.0 License.
    -->
    <AutomatedInstallation langpack="eng">
        <com.izforge.izpack.panels.UserInputPanel id="home">
            <userInput/>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.HTMLLicencePanel id="gpl_licence"/>
        <com.izforge.izpack.panels.TargetPanel id="target">
            
            <!-- SELECT THE INSTALLATION PATH
                 The path must be absolute! 
                 For example:
                 /opt/sos-berlin.com/js7/joc on Unix
                 C:\Program Files\sos-berlin.com\js7\joc on Windows -->
            <installpath>[:choose absolute installation path of JOC Cockpit:]</installpath>
            
        </com.izforge.izpack.panels.TargetPanel>UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="jettylicenses">
            <userInput>
                
                <!-- JOCSelect Cockpitthe requireslicense amodel servlet(GPL containeror such as Jetty. Commercial) -->
                <entry key="licenseOption" value="GPL"/>
       If a servlet container is already installed then you can
     use it. 
             <!-- If you select GPL as license model Otherwisethan athe Jetty'licenseFile' willmust be installed if withJettyInstall=yesempty.
                     YouOtherwise please needenter rootthe permissionspath to installthe JOClicense Cockpitfile withif Jetty. -->
    available.
                     It is also possible to add the license <entry key="withJettyInstall" value="yes"/file later. -->
                <entry key="jettyPortlicenseFile" value="4446"/>
                <!--
     Specify the name of the Windows Service or</userInput>
     Unix Daemon (default: joc). </com.izforge.izpack.panels.UserInputPanel>
             <com.izforge.izpack.panels.HTMLLicencePanel id="gpl_license"/>
        <com.izforge.izpack.panels.HTMLLicencePanel id="commercial_license"/>
       Required only for multiple instances of JOC Cockpit on the same server.  <com.izforge.izpack.panels.TargetPanel id="target">
            
            <!-- SELECT THE INSTALLATION PATH
         The name has to be unique per server. ThisThe entrypath ismust deactivatedbe byabsolute! a
     comment because it
              For example:
            MUST NOT BE MODIFIED DURING RE-INSTALLATION! -->/opt/sos-berlin.com/js7/joc on Unix
                <!-- C:\Program Files\sos-berlin.com\js7\joc on Windows -->
            <installpath>[:choose absolute installation path <entry key="jettyServiceName" value="joc"/>of JOC Cockpit:]</installpath>
            
        --></com.izforge.izpack.panels.TargetPanel>
        <com.izforge.izpack.panels.UserInputPanel id="jetty">
           <!-- Required for Windows only -->
       <userInput>
              <entry key="jettyStopPort" value="40446"/>
                <!-- Available for Unix only (root permissions required) -->JOC Cockpit requires a servlet container such as Jetty. 
                <entry key="withJocInstallAsDaemon" value="yes"/>
         If a servlet container is already installed then you can use it. 
                   <!-- Enter  Otherwise a userJetty accountwill forbe runninginstalled JOC Cockpit (default=current user)if withJettyInstall=yes.
                     ForYou Unix onlyneed (root permissions required)!!! to install JOC Cockpit with Jetty. -->
                <entry key="runningUserwithJettyInstall" value="yes"/>
                <entry key="jettyPort" value="4446"/>
                <!-- PathSpecify tothe Jettyname baseof directorythe 
    Windows Service or Unix Daemon (default: joc).
               For example:
         Required only for multiple instances of JOC Cockpit on the   /home/[user]/sos-berlin.com/js7/joc on Unix
    same server. 
                      C:\ProgramData\sos-berlin.com\js7\joc on Windows -->
                <entry key="jettyBaseDir" value=""/>The name has to be unique per server. This entry is deactivated by a comment because it
                <!-- Choose 'yes' or 'no' whetherMUST theNOT JOCBE Cockpit'sMODIFIED Jetty should be (re)started after installation DURING RE-INSTALLATION! -->
                <entry key="launchJetty" value="yes"/>
    <!--
                <entry key="jettyServiceName" value="joc"/>
                <!-- Java options for Jetty -->
                <!-- InitialRequired memoryfor pool (-Xms) in MB Windows only -->
                <entry key="jettyOptionXmsjettyStopPort" value="12840446"/>
                <!-- MaximumAvailable for memoryUnix poolonly (-Xmx)root inpermissions MBrequired) -->
                <entry key="jettyOptionXmxwithJocInstallAsDaemon" value="512yes"/>
                <!-- ThreadEnter stacka size (-Xss) in KBuser account for running JOC Cockpit (default=current user).
                     For Unix only (root permissions required)!!! -->
                <entry key="jettyOptionXssrunningUser" value="4000"/>
                <!-- FurtherPath Javato options -->
      Jetty base directory 
              <entry key="jettyOptions" value=""/>
          For example:
         
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
    /home/[user]/sos-berlin.com/js7/joc on Unix
               <com.izforge.izpack.panels.UserInputPanel id="joc">
         C:\ProgramData\sos-berlin.com\js7\joc on Windows <userInput>-->
                <entry key="jettyBaseDir" value=""/>
                <!-- JOCChoose Cockpit'yes' canor be installed in a cluster. Please type a unique title to identify'no' whether the cluster node, 
                     e.g. 'Primary' or 'Secondary' (default = hostname). Max. length is 30 characters. JOC Cockpit's Jetty should be (re)started after installation -->
                <entry key="jocTitlelaunchJetty" value="yes"/>
                
                <!-- Choose 'yes' if JOC Cockpit is operated as a standby instance in a cluster Java options for Jetty -->
                <!-- Initial memory pool (-Xms) in MB -->
                <entry key="isStandbyjettyOptionXms" value="no128"/>
                
    <!-- Maximum memory pool (-Xmx) in MB      <!-->
     Security Level for the deployment signing mechanism: possible values are 'LOW', 'MEDIUM' and 'HIGH': <entry key="jettyOptionXmx" value="512"/>
                <!-- Thread stack size (-Xss) in KB HIGH:-->
                <entry key="jettyOptionXss" value="4000"/>
            RSA/ECDSA  certificates are stored for verification per user,<!-- Further Java options -->
                <entry key="jettyOptions" value=""/>
          signing is performed externally outside of JOC Cockpit.
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
         MEDIUM:<com.izforge.izpack.panels.UserInputPanel id="joc">
            <userInput>
                RSA/ECDSA
      private keys and certificates are stored for signing per user,
                        signing is performed automatically with the user's private key.
     <!-- JOC Cockpit can be installed in a cluster. Please type a unique title to identify the cluster node, 
                     e.g. 'Primary' or 'Secondary' (default = hostname). Max. LOW:
    length is 30 characters. -->
                <entry key="jocTitle" value=""/>
      a single RSA/ECDSA private key and certificate are stored with the
     root account,
              <!-- Choose 'yes' if JOC Cockpit is operated as a signingstandby isinstance performedin automatically with the root account's private key for all users. a cluster -->
                <entry key="securityLevelisStandby" value="LOWno"/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="database">
            <userInput>!-- Security Level for the deployment signing mechanism: possible values are 'LOW', 'MEDIUM' and 'HIGH':
                <!-- Reporting Database Configuration -->  HIGH:
                
            RSA/ECDSA certificates are stored <!-- Database connection settings can be specified with subsequent entries such as
    for verification per user,
                        signing is performed externally outside databaseHost,of databasePort,JOC Cockpit...
     or by a Hibernate configuration file.
               MEDIUM:
          or you choose the embedded H2 database (for evaluation only) without further configuration.
      RSA/ECDSA private keys and certificates are stored for signing per user,
           Possible  values are 'withoutHibernateFile', 'withHibernateFile' and 'h2'. -->
         signing is performed automatically with the user's <entryprivate key="databaseConfigurationMethod" value="withoutHibernateFile"/>.
                     LOW:
                <!-- Choose the database management system. 
      a single RSA/ECDSA private key and certificate are stored with the root account,
       Supported values are 'mysql' for MySQL, 'oracle' for Oracle, 
            signing is performed automatically with the root account's private 'mssql'key for Microsoft SQL Server, 'pgsql' for PostgreSQL.
                     Used only if databaseConfigurationMethod=withoutHibernateFile all users. -->
                <entry key="databaseDbmssecurityLevel" value="mysqlLOW"/>
                
            </userInput>
        <!-- Path to a Hibernate configuration file if databaseConfigurationMethod=withHibernateFile -->
    /com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="database">
            <userInput>
                <!-- Reporting <entry key="hibernateConfFile" value=""/Database Configuration -->
                
                <!-- YouDatabase canconnection choosesettings between 'byInstaller', 'byJoc' or 'off' to create the database objects.can be specified with subsequent entries such as
                     DatadatabaseHost, of an already existing installation remain unchanged. databasePort, ... or by a Hibernate configuration file.
                     Thisor entryyou shouldchoose bethe 'off'embedded onlyH2 whendatabase you(for areevaluation certainonly) thatwithout allfurther objectsconfiguration.
     have already been created.
                 Possible values are 'withoutHibernateFile', 'byJocwithHibernateFile' creates or updates database object the next time JOC Cockpit is started. 'byInstaller' is recommended.and 'h2'. -->
                <entry key="databaseConfigurationMethod" value="withoutHibernateFile"/>
                     If
     databaseConfigurationMethod=h2 then the objects will be created when JOC Cockpit starts and 
         <!-- Choose the database management system. 
                this value will be ignored -->
    Supported values are 'mysql' for MySQL, 'oracle' for Oracle, 
       <entry key="databaseCreateTables" value="byInstaller"/>
                
    'mssql' for Microsoft SQL Server, 'pgsql'   </userInput>for PostgreSQL.
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="dbconnection">
            <userInput>
    Used only if databaseConfigurationMethod=withoutHibernateFile -->
             <!-- Database configuration if<entry databaseConfigurationMethodkey=withoutHibernateFile --"databaseDbms" value="mysql"/>
                     
                <!-- EnterPath theto hostnamea orHibernate ipconfiguration addressfile of the database host.
    if databaseConfigurationMethod=withHibernateFile -->
                <entry key="hibernateConfFile" value=""/>
          This entry can also be used to
     configure the URL(s) for Oracle RAC databases.
         <!-- You can choose between 'byInstaller', 'byJoc' or 'off' to create the Fordatabase example:objects.
                     <entry key="databaseHost" value="(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)
    Data of an already existing installation remain unchanged. 
                     This entry should  (ADDRESS=(PROTOCOL=TCP)(HOST=tst-db1.myco.com)(PORT=1604))be 'off' only when you are certain that all objects have already been created.
                     'byJoc' creates  (ADDRESS=(PROTOCOL=TCP)(HOST=tst-db2.myco.com)(PORT=1604)))
              or updates database object the next time JOC Cockpit is started. 'byInstaller' is recommended.
              (CONNECT_DATA=(SERVICE_NAME=mydb1.myco.com)(SERVER=DEDICATED)))"/>
           If databaseConfigurationMethod=h2 then the objects will be created when JOC TheCockpit "databaseSchema"starts and "databasePort" entries should be left empty.
                     this value will be ignored -->
                <entry key="databaseHostdatabaseCreateTables" value="byInstaller"/>
                
            </userInput>
        <!-- Enter the port number for the database instance. Default ports are for MySQL 3306, /com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="dbconnection">
            <userInput>
                <!-- Database configuration   Oracle 1521, Microsoft SQL Server 1433, PostgreSQL 5432.if databaseConfigurationMethod=withoutHibernateFile -->
                <entry key="databasePort" value=""/>
                
                <!-- Enter the databasehostname schema -->
         or ip address of the database host.
           <entry key="databaseSchema" value=""/>
            This entry can also 
    be used to configure the URL(s) for Oracle RAC databases.
             <!--  Enter the user account for database access -->
    For example:
                     <entry key="databaseUserdatabaseHost" value=""/>(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)
                
            (ADDRESS=(PROTOCOL=TCP)(HOST=tst-db1.myco.com)(PORT=1604))
        <!-- Enter the password for database access -->              (ADDRESS=(PROTOCOL=TCP)(HOST=tst-db2.myco.com)(PORT=1604)))
                <entry key="databasePassword" value=""        (CONNECT_DATA=(SERVICE_NAME=mydb1.myco.com)(SERVER=DEDICATED)))"/>
                
         The "databaseSchema"  </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="jdbc"and "databasePort" entries should be left empty. -->
                <entry key="databaseHost" value=""/>
            <userInput>    
                <!-- DatabaseEnter configurationthe ifport databaseConfigurationMethodnumber !=for h2 -->
            the database instance. Default ports are for MySQL 3306, 
        
                <!-- YouOracle can1521, specifyMicrosoft anSQL externalServer JDBC Driver1433, inPostgreSQL this case set internalConnector=no
    5432. -->
                <entry key="databasePort" value=""/>
         For license reasons MySQL and Microsoft SQL Server
     JDBC drivers are not included. 
          <!-- Enter the database schema -->
          Alternatively you can use the MariaDB JDBC Driver for MySQL that is included. 
    <entry key="databaseSchema" value=""/>
                
              For Microsoft SQL Server you have to specify an external JDBC Driver. 
    <!-- Enter the user account for database access -->
                <entry key="databaseUser" value=""/>
         An Oracle ojdbc8 JDBC driver is included. -->
                <!-- Enter the password for database access -->
                <!-- You can choose between 'yes' or 'no' for using the internal JDBC Driver --><entry key="databasePassword" value=""/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
       <entry key="internalConnector" value="yes"/ <com.izforge.izpack.panels.UserInputPanel id="jdbc">
                     <userInput>
                <!-- SelectDatabase theconfiguration pathif todatabaseConfigurationMethod the JDBC Driver file (*.jar) != h2 -->
                <entry key="connector" value=""/>
    
                <!-- You can specify 
    an external JDBC Driver, in this case  </userInput>set internalConnector=no
        </com.izforge.izpack.panels.UserInputPanel>
         <com.izforge.izpack.panels.UserInputPanel id="end">
           For <userInput/>
    license reasons MySQL  </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.InstallPanel id="install"/>
        <com.izforge.izpack.panels.ProcessPanel id="process"/>
        <com.izforge.izpack.panels.FinishPanel id="finish"/>
    </AutomatedInstallation>
    

Running the Installer

Headless installation is performed by opening a terminal or command window and navigating to the folder containing the setup.sh|cmd file.

  • Performing headless installation of JOC Cockpit on Unix systems with root permissions

    Code Block
    languagetext
    titleStarting headless installation of the JOC Cockpit on Unix systems with root permissions
    /home/<user-account>/joc.[release]> ./setup.sh joc_install.xml
  • Performing headless installation of JOC Cockpit on Unix systems without root permissions

    Code Block
    languagetext
    titleStarting headless installation of the JOC Cockpit on Unix systems without root permissions
    /home/<user-account>/joc.[release]> ./setup.sh -u joc_install.xml
  • Performing headless installation of JOC Cockpit on Windows systems

    Code Block
    languagetext
    titleStarting headless installation of the JOC Cockpit on Windows systems
    C:\users\<user-account>\joc.[release]> setup.cmd joc_install.xml

Directory Layout

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

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

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

  • /var (Unix) ProgramData (Windows)
    • sos-berlin.com
      • js7
        • joc
          • jetty_base
            • archive (directory with files, remains after uninstall)
            • lib (directory with files, remains after uninstall)
            • logs (directory with files, remains after uninstall)
            • patches (directory with files, remains after uninstall)
            • resources (remains after uninstall and (empty) after full uninstall)
              • joc (directory with files, remains after uninstall)
                • license (directory with files, remains after uninstall)
                • xsd (directory with files, remains after uninstall)
                • hibernate.cfg.xml (remains after uninstall if modified)
                • joc.properties (remains after uninstall)
                • log4j2.xml (remains after uninstall if modified)
                • shiro.ini.active (remains after uninstall)
                • shiro.ini-example (only added if shiro.ini file is found)
          • temp (directory with files, remains after uninstall)
          • webapps
          • start.ini (file, remains after uninstall)
  • /opt (Unix) Program Files (Windows)
    • sos-berlin.com
      • js7
        • joc
          • install (directory with files)
            • install_jetty_base.cmd
            • update_jetty_base.cmd
          • jetty (directory with files)
          • jetty_base (symlink)
          • service
          • Uninstaller (directory, the empty remains after uninstall and full uninstall)
            • uninstall.sh|cmd
            • uninstaller.jar
          • .jocinstallinformation (file, remains after uninstall)
          • joc_install.xml (file, remains after uninstall)

Directory Layout if the Jetty Servlet Container is not Installed

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

...

  • and Microsoft SQL Server JDBC drivers are not included. 
                     Alternatively you can use the MariaDB JDBC Driver for MySQL that is included. 
                     For Microsoft SQL Server you have to specify an external JDBC Driver. 
                     An Oracle ojdbc8 JDBC driver is included. -->
                     
                <!-- You can choose between 'yes' or 'no' for using the internal JDBC Driver -->
                <entry key="internalConnector" value="yes"/>
                     
                <!-- Select the path to the JDBC Driver file (*.jar) -->
                <entry key="connector" value=""/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="end">
            <userInput/>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.InstallPanel id="install"/>
        <com.izforge.izpack.panels.ProcessPanel id="process"/>
        <com.izforge.izpack.panels.FinishPanel id="finish"/>
    </AutomatedInstallation>
    

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:

    Code Block
    languagetext
    titleStarting 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:

    Code Block
    languagetext
    titleStarting 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.
  • Performing headless installation of JOC Cockpit on Windows systems requires administrative privileges:

    Code Block
    languagetext
    titleStarting 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
  • for Windows to the:
    • installation directory:  Program Files\sos-berlin.com\js7\joc

...

    • data directory: ProgramData\sos-berlin.com

...

    • \js7\joc

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)
              • 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 (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 the start.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 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)
                  • 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 the joc_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

      Initial Operation with the JOC Cockpit Login Form

      Note that a working Servlet Container - either the Jetty provided with the JOC Cockpit or some other product - is required before the JOC Cockpit can be operated.

      ...

      Navigate to the JOC Cockpit login form in a browser and enter the User Account and Password.

      After initial installation of JOC Cockpit the default User Account and Password of root:root will be available if no changes have been made to the shiro.ini configuration file.

      ...

      Note that the root user is assigned the all role in the default configuration which includes all available permissions.

      See the Authentication and Authorization - Configuration article for information about the configuration of other user profiles and authentication methods.

      ...

      Updating

      • Empty the Browser cache after update of the JOC Cockpit.

      Installation Log Files

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

      • Installation log files are named 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.

      Deinstallation

      The JOC Cockpit can be uninstalled using the uninstall.cmd and uninstall.sh 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

      Windows systems

      ...

      If the checkbox is not selected, configuration files will be left in both the JOC Cockpit installation folder and the Jetty web server installation folder (if installed with the JOC Cockpit).

      Unix systems

      The uninstall script on Unix systems runs in headless mode. The uninstall script will start the Uninstaller and remove both the program files, configuration files and respective folders. 

      Configuration with Alternative Web Servers

      The JOC Cockpit installation procedure contains the option of installing and using the Jetty Web Server that is included in the JOC Cockpit installation archive. This option was configured in Step 4 of the installation procedure described above. An alternative web server that is capable of handling Java web applications, such as Tomcat or another web server, can also be used.

      If the Jetty provided with the JOC Cockpit is not to be installed, the installation program will look and see if a jetty_base shortcut from a previous installation is to be found in the jetty_home directory. Particularly relevant for system administrators would be the shiro.ini file (containing authentication and authorization information) and the joc.properties file (containing database configuration information).

      • If configuration files are found then these will not be overwritten or removed.
      • Default configuration files will be written to the file system in the joc_home directory.
      • System administrators can then move the configuration files to the appropriate application directory as required.

      See also links in the References section below.

      Location of the resources/joc folder with a fresh installation

      With a fresh installation, the installer will not find an existing Jetty and will save the resources directory by default as follows:

      Location of the resources/joc folder after an installation on top of a JOC Cockpit installation with Jetty 

      If the JOC Cockpit is being installed without the included Jetty but on top of an installation that has included the JOC Cockpit Jetty then the resources\joc the folder will not be moved from its location. This means that the "new" resources the folder will be found after the new installation as follows (if the original installation was carried out in the default directory):

      • on Linux systems:
        • /opt/sos-berlin.com/js7/joc/resources/jocUninstaller
      • on For Windows systems:
        • C:\Program Files\sos-berlin.com\js7\joc\resources\joc

      In this situation the shiro.ini and joc.properties file from the earlier installation will not be overwritten.

      The "old" hibernate.cfg.xml the database configuration file will be read during the installation and the settings suggested as default values. The file itself will be deleted and a new one saved in the joc_home directory.

      An update of the JOC Cockpit will neither overwrite the new or old configuration files. However new versions of the joc.properties and shiro.ini files named joc.properties-example and shiro.ini-example will be written to the resources\joc folder, alongside the originals.

      Cluster Operation

      Please consider that operating a JOC Cockpit cluster for high availability requires a commercial license, see JS7 - Licensing.

      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 only in which instances are started.

      The installation of the JOC Cockpit instances follows the standard operating procedures described above, there is no difference in installation consider the roles of primary cluster member and standby cluster members. 

      Configuration

      The JOC Cockpit includes certain configuration items which can be used to configure JOC Cockpit. Details about how to configure JOC Cockpit the article JS7 - JOC Cockpit Configuration Items can be followed. 

      Automated Start-up and Shutdown

      For Unix systems, the start-up and shutdown configurations apply that are executed by root, e.g. in /etc/init.d or corresponding locations and by use of systemd.

      • The JOC Cockpit will start for the user account that is specified during installation. The JOC Cockpit start script jetty.sh|cmd will switch to this account independently from the fact that the start script is executed e.g.  by the root account.
      • For use with systemd find a sample service file from ./bin/joc.service-example file.

      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.

      Further References

        • 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:

      Image Added

      Selecting the "Force the deletion of C:\Program Files\ ...." checkbox will cause the uninstall script to remove boththe 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 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.

      Info
      • 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 with other application servers: