You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Installing the JS7 JOC Cockpit

  • The JOC Cockpit can be installed on Unix and Windows systems without the use of a GUI installer i.e. running the JOC Cockpit installer in headless mode.

Preparation

  • Ensure that the Installation Requirements have been met.
  • Unpack the JOC Cockpit archive to a suitable directory such as /tmp on Linux systems or C:\temp on Windows.

Administrative Permissions

  • On Windows systems:
    • The setup asks for elevated permissions.
  • On Linux systems:
    • Root permissions are required when the JOC Cockpit is to be installed together with Jetty if the Jetty server is to run 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 start script should be called with the -u argument, otherwise the sudo prompt will ask for a password.   

Installation in Headless Mode

  • 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

    Configuration of the joc_install.xml file
    <?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 licence.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
    licence 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>
        <com.izforge.izpack.panels.UserInputPanel id="jetty">
            <userInput>
                
                <!-- JOC Cockpit requires a servlet container such as Jetty. 
                     If a servlet container is already installed then you can use it. 
                     Otherwise a Jetty will be installed if withJettyInstall=yes.
                     You need root permissions to install JOC Cockpit with Jetty. -->
                <entry key="withJettyInstall" value="yes"/>
                <entry key="jettyPort" value="4446"/>
                <!-- Specify the name of the Windows Service or Unix Daemon (default: joc).
                     Required only for multiple instances of JOC Cockpit on the same server. 
                     The name has to be unique per server. This entry is deactivated by a comment because it
                     MUST NOT BE MODIFIED DURING RE-INSTALLATION! -->
                <!--
                <entry key="jettyServiceName" value="joc"/>
                -->
                <!-- Required for Windows only -->
                <entry key="jettyStopPort" value="40446"/>
                <!-- Available for Unix only (root permissions required) -->
                <entry key="withJocInstallAsDaemon" value="yes"/>
                <!-- Enter a user account for running JOC Cockpit (default=current user).
                     For Unix only (root permissions required)!!! -->
                <entry key="runningUser" value=""/>
                <!-- Path to Jetty base directory 
                     For example:
                     /home/[user]/sos-berlin.com/js7/joc on Unix
                     C:\ProgramData\sos-berlin.com\js7\joc on Windows -->
                <entry key="jettyBaseDir" value=""/>
                <!-- Choose 'yes' or 'no' whether the JOC Cockpit's Jetty should be (re)started after installation -->
                <entry key="launchJetty" value="yes"/>
                
                <!-- Java options for Jetty -->
                <!-- Initial memory pool (-Xms) in MB -->
                <entry key="jettyOptionXms" value="128"/>
                <!-- Maximum memory pool (-Xmx) in MB -->
                <entry key="jettyOptionXmx" value="512"/>
                <!-- Thread stack size (-Xss) in KB -->
                <entry key="jettyOptionXss" value="4000"/>
                <!-- Further Java options -->
                <entry key="jettyOptions" value=""/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="joc">
            <userInput>
                
                <!-- 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. length is 30 characters. -->
                <entry key="jocTitle" value=""/>
                
                <!-- Choose 'yes' if JOC Cockpit is operated as a standby instance in a cluster -->
                <entry key="isStandby" value="no"/>
                
                <!-- Security Level for the deployment signing mechanism: possible values are 'LOW', 'MEDIUM' and 'HIGH':
                     HIGH:
                        RSA/ECDSA certificates are stored for verification per user,
                        signing is performed externally outside of JOC Cockpit.
                     MEDIUM:
                        RSA/ECDSA private keys and certificates are stored for signing per user,
                        signing is performed automatically with the user's private key.
                     LOW:
                        a single RSA/ECDSA private key and certificate are stored with the root account,
                        signing is performed automatically with the root account's private key for all users. -->
                <entry key="securityLevel" value="LOW"/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="database">
            <userInput>
                <!-- Reporting Database Configuration -->
                
                <!-- Database connection settings can be specified with subsequent entries such as
                     databaseHost, databasePort, ... or by a Hibernate configuration file.
                     or you choose the embedded H2 database (for evaluation only) without further configuration.
                     Possible values are 'withoutHibernateFile', 'withHibernateFile' and 'h2'. -->
                <entry key="databaseConfigurationMethod" value="withoutHibernateFile"/>
                     
                <!-- Choose the database management system. 
                     Supported values are 'mysql' for MySQL, 'oracle' for Oracle, 
                     'mssql' for Microsoft SQL Server, 'pgsql' for PostgreSQL.
                     Used only if databaseConfigurationMethod=withoutHibernateFile -->
                <entry key="databaseDbms" value="mysql"/>
                
                <!-- Path to a Hibernate configuration file if databaseConfigurationMethod=withHibernateFile -->
                <entry key="hibernateConfFile" value=""/>
                
                <!-- You can choose between 'byInstaller', 'byJoc' or 'off' to create the database objects.
                     Data of an already existing installation remain unchanged. 
                     This entry should be 'off' only when you are certain that all objects have already been created.
                     'byJoc' creates or updates database object the next time JOC Cockpit is started. 'byInstaller' is recommended.
                     If databaseConfigurationMethod=h2 then the objects will be created when JOC Cockpit starts and 
                     this value will be ignored -->
                <entry key="databaseCreateTables" value="byInstaller"/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="dbconnection">
            <userInput>
                <!-- Database configuration if databaseConfigurationMethod=withoutHibernateFile -->
                     
                <!-- Enter the hostname or ip address of the database host.
                     This entry can also be used to configure the URL(s) for Oracle RAC databases.
                     For example:
                     <entry key="databaseHost" value="(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)
                        (ADDRESS=(PROTOCOL=TCP)(HOST=tst-db1.myco.com)(PORT=1604))
                        (ADDRESS=(PROTOCOL=TCP)(HOST=tst-db2.myco.com)(PORT=1604)))
                        (CONNECT_DATA=(SERVICE_NAME=mydb1.myco.com)(SERVER=DEDICATED)))"/>
                     The "databaseSchema" and "databasePort" entries should be left empty. -->
                <entry key="databaseHost" value=""/>
                
                <!-- Enter the port number for the database instance. Default ports are for MySQL 3306, 
                     Oracle 1521, Microsoft SQL Server 1433, PostgreSQL 5432. -->
                <entry key="databasePort" value=""/>
                
                <!-- Enter the database schema -->
                <entry key="databaseSchema" value=""/>
                
                <!-- Enter the user account for database access -->
                <entry key="databaseUser" value=""/>
                
                <!-- Enter the password for database access -->
                <entry key="databasePassword" value=""/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="jdbc">
            <userInput>
                <!-- Database configuration if databaseConfigurationMethod != h2 -->
                
                <!-- You can specify an external JDBC Driver, in this case set internalConnector=no
                     For license reasons MySQL 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 started by opening a terminal or command window in the folder containing the setup.* file and by typing:
    • Starting headless installation of the JOC Cockpit on Linux systems with root permissions

      Starting headless installation of the JOC Cockpit on Linux systems with root permissions
      /tmp/joc.[release]> ./setup.sh joc_install.xml
    • Starting headless installation of the JOC Cockpit on Linux systems without root permissions

      Starting headless installation of the JOC Cockpit on Linux systems without root permissions
      /tmp/joc.[release]> ./setup.sh -u joc_install.xml
    • Starting headless installation of the JOC Cockpit on Windows systems

      Starting headless installation of the JOC Cockpit on Windows systems
      C:\temp\joc.[release]> setup.cmd joc_install.xml

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 installation can be operated.

  • Call the JOC Cockpit login form in a web browser and enter the User Name and Password.

    After a first installation of the JOC Cockpit the default User Name and Password of root:root and Shiro Authentication will be active if changes have not been made to the shiro.ini configuration file. Note that the root user is assigned all role in the default configuration, which has all permissions available.

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

  • Note that the web service may take a minute to start and display the login form on some systems as explained below.

Updating

Empty the Browser Cache after updating the JOC Cockpit

You should use Ctrl & F5 as well as empty the browser cache before starting the JOC Cockpit after an update.

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 saved in the folders:

Windows systems

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


Ticking the "Force the deletion of C:\Program Files\ ...." checkbox will cause the uninstall script to remove both the program and 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 web server installation folder (if installed with the JOC Cockpit).

On Linux systems

Make a Backup!

The uninstall script on Linux systems will not open a dialog box. Instead, an uninstall script will start the Uninstaller and remove both the program and configuration files and folders. 

These files contain the configuration information from the last JOC Cockpit and Jetty web server installations.

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

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.

File Structure

The following listings should make clear the changes that occur in the JOC Cockpit file structure during installation and de-installation.

Windows Systems

Default File Structure if Jetty is Installed

If the Jetty web server provided with the JOC Cockpit is installed then files will be added by default in the ProgramData\sos-berlin.com\joc and Program Files\sos-berlin.com\joc directories.

  • ProgramData
    • 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)


  • Program Files
    • 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.cmd
            • uninstaller.jar
          • .jocinstallinformation (file, remains after uninstall)
          • joc_install.xml (file, remains after uninstall)
Default File Structure if Jetty is not Installed

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

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

  • Program Files
    • sos-berlin.com
      • js7
        • joc
          • install
            • install_jetty_base.cmd
            • shortcut.vbs
            • joc_install_tables.cmd
            • update_jetty_base.cmd
          • logs
            • Install_ ... .log (files will remain after uninstall)
          • resources
            • joc
              • hibernate.cfg.xml (remains after uninstall if modified)
              • joc.properties (remains after uninstall)
              • joc.properties-example (only added if joc.properties file is found at installation start)
              • log4j2.xml (remains after uninstall if modified)
              • shiro.ini (remains after uninstall)
              • shiro.ini-example (only added if shiro.ini file is found at installation start)
          • service
            • amd64 (directory)
            • manager (directory)
            • x86 (directory)
            • install_jetty_windows_service.cmd
            • LICENSE.txt
            • NOTICE.txt
            • RELEASE-NOTES.txt
            • set_java_home_for_jetty_windows_service.cmd
            • start_jetty_windows_service.cmd
            • uninstall_jetty_windows_service.cmd
          • Uninstaller (the empty directory remains after uninstall)
            • js7.ico
            • uninstall.cmd
            • uninstaller.jar
          • webapps
            • joc.war
          • .jocinstallinformation (file, remains after uninstall)
          • joc_install.xml (file, remains after uninstall)

Clustering and Redundancy

With each instance running on its own server, multiple instances of the JOC Cockpit can either be installed as an active cluster or redundantly. In both cases, installation of the JOC Cockpit instances follows the standard procedure described above. The configuration of the JOC Cockpit instances then follows the instructions provided in the Authentication and Authorization - Configuration article. 

 The JOC Cockpit - Clustering article provides more general information about installing and configuring multiple instances of the JOC Cockpit.

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

Further Resources

Installation with Other Application Servers:


  • No labels