Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: 'Batch Installation' moved

...

The installer can be started as a dialog or in batch mode. Note that an X-Server is required if the installer is to be run on Linux systems as a dialog. If an X-Server is not installed, then batch installation should be used.

...

  • On Windows systems:
    • The setup will ask for Elevated Permissions
  • On Unix systems:
    • Root permissions are required when the JOC Cockpit is to be installed together with Jetty.
      • To install the JOC Cockpit without root permissions, the start script should be called with a -u argument, otherwise the sudo prompt will ask for a password.   

Start Installation

Dialog installation

Dialog installation is started by clicking on the setup.sh or setup.cmd files in the unpacked download archive.

Batch installation

Configuration

The joc_install.xml file has to be configured with parameters such as the installation path, database connections, etc..

  • Language Selection

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


  • Step 1 - Welcome Screen
    Image Added

 

  • Step 2 - Licensing Agreement

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

      Image Added

  • Step 3 - Target Path for the Installation

    • The path to the installation directory for the JOC Cockpit program files - referred to later in this page as the joc_installation_directory - is set in this step.
    • The default installation paths for the JOC Cockpit are:

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

      • C:\Program Files\sos-berlin.com\joc on Windows.
    • Users can use the Step 3 installation form shown below to specify their own installation path for the JOC Cockpit if required. 

      Image Added

  • Step 4 - Jetty Installation & Configuration

    • The JOC Cockpit requires a Java-capable web server and comes with a Jetty server. Step 4 allows system administrators to specify whether this web server is to be installed and if so, to specify its configuration - i.e. the port(s) it uses, installation path, memory pool, etc..
    • The Install JOC ... including Jetty checkbox specifies whether the Jetty web server should be installed.
    • While the Jetty web server delivered with the JOC Cockpit is installed in the joc_installation_directory - the Jetty configuration files are installed alongside the JOC Cockpit log and configuration files in the jetty_base directory. The Jetty Base field in the form shown in the screenshot can be used to set the jetty_base directory.
      The default paths to the jetty_base directory are:
      • /home/[user]/sos-berlin.com/joc on Linux systems and

      • C:\ProgramData\sos-berlin.com\joc on Windows.

      Image Added

    • Note that if If the Jetty delivered with the JOC Cockpit is not to be installed and either an alternative Jetty installation or another web server is to be used, then relevant configuration files for such a server such as the shiro.ini and joc.properties files will still be written to the file system. These files can then be moved by the system administrator to the suitable location for their web server as required. See the Configuration with Alternative Web Servers section below for more information.
    • The Java options for Jetty are stored:
      • on Linux systems in the directory:
        • /etc/default/joc . 
      • on Windows systems in the Registry under:
        • HKLM\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\sos_joc\Parameters\Java
      • Java Memory options can also be configured by opening the sos_jocw.exe which can be found in the joc_home\service directory.
        • Image Added

  • Step 5 - Specify the Reporting DBMS

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

    • Image Added


  • Step 6 - Configure the Reporting Database Connection

    • Specify the parameters for the connection to the Reporting Database. 

    • Image Added

    • It will be probably be obvious from the names given to the parameters in the screenshot above that the values are for a database to be used by the JobScheduler. In this case the Reporting Database Tables will be integrated in the JobScheduler Database. This will be described in the next step.

    • The database configuration for the JOC Cockpit is written to an XML file during installation and saved in the jetty_base/resources/joc folder.
      The default name of the database configuration file is:

      • reporting.hibernate.cfg.xml

      This file can be modified at a later date if required using a text editor. The JOC Cockpit service will then have to be restarted before changes made to this file are implemented.

    • The name and location of the database configuration file itself is specified in the joc.properties file, which can also be found in the jetty_base/resources/joc folder.
       

  • Step 7 - Specify the Database Connection Used by the JobScheduler

    • Specify whether a separate connection it to be specified for the JobScheduler Database 

    • Image Added
    • If the JobScheduler(s) and JOC Cockpit share the same database then clicking Next will cause the Installation to proceed to Step 10. This step starts the installation process itself and changes to the configuration are no longer possible.  
    • If the JobScheduler(s) and JOC Cockpit use separate databases then the checkbox in the form should be deselected. In this case, clicking Next will cause the Installation to proceed to the specification of the DBMS and the connection parameters for the JobScheduler database, which are described next.
       
  • Step 8 - Specify the JobScheduler DBMS

    • This form is identical to those already shown for the Reporting Database in Steps 5 above.
       
  • Step 9 - Configure the JobScheduler Database Connection

    • Specify the parameters for the connection to the JobScheduler Database.

      • The DBMS type can be found in the database configuration for job history section of the $JOBSCHEDULER_DATA/factory.ini file of one of the JobSchedulers to be operated from the JOC Cockpit, where $JOBSCHEDULER_DATA is defined in the JobScheduler - Installation Guide (Section 1.2).
    • The database configuration for the JOC Cockpit is written to an XML file during installation and saved in the jetty_base/resources/joc folder.
      The default name of the database configuration file is:
      • jobscheduler.hibernate.cfg.xml
    • This file can be modified at a later date if required using a text editor. A JOC Cockpit user will then have to log in again before changes made to this file are implemented.

    • The name and location of the database configuration file itself is specified in the joc.properties file, which can also be found in the jetty_base/resources/joc folder.


    • Image Added

  • Step 10 - Processing the Installation

    • This step shows the progress of the first part of the installation procedure.

    • Changes to the installation configuration can no longer be made once this step has started.
      Instead configuration files such as those in the jetty_base/resources/joc folder can modified manually and then the JOC Cockpit restarted.
      Image Added

  • Step 11 - External Processes

    • This step shows the progress of the second part of the installation procedure.

    • Image Added

    • The information shown in this step will be written to the installation log file, which can be found in the jetty_base/logs folder

  • Step 12 - Completion

    • The last step of the installation shows a summary of the installation (success/error) and paths to relevant information.

      Image Added

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

Batch installation

Configuration

The joc_install.xml file has to be configured with parameters such as the installation path, database connections, etc. before installation can start.

The joc_install.xml file is shown in the code listing below. The extensive comments are intended to be self-explanatory. 

  • Code Block
    languagexml
    titleConfiguration of the joc_install.xml file
    collapsetrue
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!-- 
    XML configuration file for JOC
    If you call the installer with this XML file then 
    you accept at the same time the terms of the 
    licence agreement under GNU GPL 2.0 License 
    (see http://www.gnu.org/licenses/gpl-2.0.html)
    -->
    <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"
    Code Block
    languagexml
    titleConfiguration of the joc_install.xml file
    collapsetrue
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!-- 
    XML configuration file for JOC
    If you call the installer with this XML file then 
    you accept at the same time the terms of the 
    licence agreement under GNU GPL 2.0 License 
    (see http://www.gnu.org/licenses/gpl-2.0.html)
    -->
    <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
                 It must be absolute! -->
            <installpath>[:choose absolute installation path of JOC:]</installpath>
            
        </com.izforge.izpack.panels.TargetPanel>
        <com.izforge.izpack.panels.UserInputPanel id="jetty">
    		<userInput>
    						
    			<!-- JOC requires a servlet container such as Jetty. 
    				 If a servlet container already installed then you can use it. 
    				 Otherwise a Jetty will be installed in addition if withJettyInstall=yes.
    				 You need root permissions to install JOC with Jetty. -->
    			<entry key="withJettyInstall" value="yes"/>
    			<entry key="jettyPort" value="4446"/>
                <!-- Only necessary for Windows -->
    			<entry key="jettyStopPort" value="40446"/>
                <!-- Only necessary for Unix -->
                <entry key="withJocInstallAsDaemon" value="yes"/>
                <!-- Path to Jetty base directory -->
                <entry key="jettyBaseDir" value=""/>
                
                <!-- 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="reportingDatabase">
            <userInput>
                <!-- Reporting Database Configuration -->
                     
                <!-- Choose the database management system. Supported values are 'mysql' for MySQL,
                     'oracle' for Oracle, 'mssql' for MS SQL Server, 'pgsql' for PostgreSQL. -->
                <entry key="reporting.databaseDbms" value="mysql"/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="reportingDbconnection">
            <userInput>
                <!-- Reporting Database Configuration -->
                     
                <!-- Enter the name or ip address of the database host -->
                <entry key="reporting.databaseHost" value=""/>
                
                <!-- EnterSELECT theTHE portINSTALLATION numberPATH
     for the database instance. Default ports are for MySQL 3306, 
      It must be absolute! -->
            <installpath>[:choose absolute installation Oraclepath 1521, MS SQL Server 1433, postgreSQL 5432. -->
                <entry key="reporting.databasePort" value=""/>
                
                <!-- Enter the schema -->
                <entry key="reporting.databaseSchema" value=""/>
                of JOC:]</installpath>
            
        </com.izforge.izpack.panels.TargetPanel>
        <com.izforge.izpack.panels.UserInputPanel id="jetty">
    		<userInput>
    						
    			<!-- JOC requires a servlet container such as Jetty. 
    				 If a servlet container already installed then you can use it. 
    				 Otherwise a Jetty will be installed in addition if withJettyInstall=yes.
    				 You need root permissions to install JOC with Jetty. -->
    			<entry key="withJettyInstall" value="yes"/>
    			<entry key="jettyPort" value="4446"/>
                <!-- Enter the user nameOnly necessary for databaseWindows access -->
    			<entry key="jettyStopPort" value="40446"/>
                <!-- Only necessary <entry key="reporting.databaseUser" value=""/for Unix -->
                <entry key="withJocInstallAsDaemon" value="yes"/>
                <!-- EnterPath theto passwordJetty forbase database accessdirectory -->
                <entry key="reporting.databasePasswordjettyBaseDir" value=""/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="database"!-- Java options for Jetty. -->
            <userInput>
        <!-- Initial memory      <!-- JobScheduler Database Configuration pool (-Xms) in MB -->
                <entry key="jettyOptionXms" value="128"/>
                <!-- Set 'yes' if the Reporting and the JobScheduler database are the same.
    Maximum memory pool (-Xmx) in MB -->
                <entry key="jettyOptionXmx" value="512"/>
             If 'yes' then further JobScheduler database variables are ignored.  <!-- Thread stack size (-Xss) in KB -->
                <entry key="sameDbConnectionjettyOptionXss" value="yes4000"/>
                <!-- Further Java options  -->
                <!-- Choose the database management system. Supported values are 'mysql' for MySQL,
    <entry key="jettyOptions" value=""/>
    				
    		</userInput>
    	</com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="reportingDatabase">
            <userInput>
              'oracle' for Oracle, 'mssql' for MS SQL Server, 'pgsql' for PostgreSQL,
     <!-- Reporting Database Configuration -->
                     
        'db2'  for DB2 and 'sybase' for Sybase. <!-->
     Choose the database management system. Supported values are 'mysql'   <entry key="databaseDbms" value=""/>for MySQL,
                
         'oracle' for Oracle, 'mssql' for MS SQL Server, 'pgsql' for PostgreSQL. -->
                <entry key="reporting.databaseDbms" value="mysql"/>
                
            </userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="dbconnectionreportingDbconnection">
            <userInput>
                <!-- JobSchedulerReporting Database Configuration -->
                     
                <!-- Enter the name or ip address of the database host -->
                <entry key="reporting.databaseHost" value=""/>
                
                <!-- Enter the port number for the database instance. Default ports are for MySQL 3306, 
                     Oracle 1521, MS SQL Server 1433, postgreSQL 5432, DB2 50000, Sybase 5000. -->
                <entry key="reporting.databasePort" value=""/>
                
                <!-- Enter the schema -->
                <entry key="reporting.databaseSchema" value=""/>
                
                <!-- Enter the user name for database access -->
                <entry key="reporting.databaseUser" value=""/>
                
                <!-- Enter the password for database access -->
                <entry key="reporting.databasePassword" value=""/>
                
            </userInput>
        <!-- You have to provide the MySQL, MS SQL Server, Sybase or DB2 JDBC driver respectively if you selected 
    /com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="database">
            <userInput>
                <!-- JobScheduler Database Configuration -->
           corresponding DBMS type. For license reasons
     MySQL, Sybase and MS SQL Server JDBC Drivers are 
      <!-- Set 'yes' if the Reporting and the JobScheduler database are     not provided. Alternatively you can use the mariadb JDBC Driver for MySQL and 
    the same.
                     If 'yes' then further JobScheduler database variables are ignored. -->
       the jTDS JDBC Driver for MS SQL Server and Sybase which is provided. --<entry key="sameDbConnection" value="yes"/>
                     
                <!-- Choose the Youdatabase canmanagement choosesystem. betweenSupported 'yes'values orare 'nomysql' for using the jTDS JDBC Driver
       MySQL,
                     'oracle' for Oracle, 'mssql' for MS SQL Server, 'pgsql' for PostgreSQL,
                  This  entry affects'db2' onlyfor MSDB2 SQLand Server'sybase' orfor Sybase. -->
                <entry key="connectorJTDSdatabaseDbms" value="yes"/>
                
            </userInput>
        <!-- You can choose between 'yes' or 'no' for using the mariadb JDBC Driver/com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="dbconnection">
            <userInput>
                <!-- JobScheduler Database Configuration -->
                     
                <!-- Enter the name or ip Thisaddress entryof affectsthe onlydatabase MySQLhost -->
                <entry key="connectorMariadatabaseHost" value="yes"/>
                
             </userInput>
       <!--  </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="jdbc">
            <userInput>Enter the port number for the database instance. Default ports are for MySQL 3306, 
                <!-- JobScheduler Database Configuration -->
     Oracle 1521, MS SQL Server 1433, postgreSQL 5432, DB2 50000, Sybase 5000. -->
         
           <entry key="databasePort" value=""/>
       <!-- Configuration for JDBC Driver         
                <!-- Enter the schema -->
      This entry is only necessary if you selected a DBMS type such as MySQL, 
    <entry key="databaseSchema" value=""/>
                
           MS SQL Server, Sybase ot DB2 in<!-- Enter the user name previousfor <userInput>database element.access -->
                <entry key="databaseUser" value=""/>
       
             
       <!-- You have        <!-- Enter the password for database access -->
                <entry key="databasePassword" value=""/>
                
                <!-- You have to provide the MySQL, MS SQL Server, Sybase or DB2 JDBC driver respectively if you selected 
                     corresponding DBMS type. For license reasons MySQL, Sybase and MS SQL Server JDBC Drivers are 
                     not provided. SpecifyAlternatively theyou JDBCcan Driveruse source (e.g. mysql-connector-java-*.jarthe mariadb JDBC Driver for MySQL, 
                     sqljdbc.jar for MS SQL Server, jconn3.jar for Sybase). Alternatively you can use the mariadb  and 
                     JDBC Driver for MySQL and the jTDS JDBC Driver for MS SQL Server and Sybase which is provided. -->
                     
                <!-- SelectYou thecan pathchoose tobetween JDBC'yes' Driver or 'no' for using the jTDS JDBC Driver
                     This entry affects only MS SQL Server or Sybase -->
                <entry key="connectorconnectorJTDS" value="yes"/>
                
                <!-- OnlyYou forcan DB2:choose Selectbetween the'yes' pathor to'no' DB2for licenseusing filethe formariadb JDBC Driver -->
                <entry key="connectorLicense" value=""/>
       This entry affects only MySQL -->
        
             </userInput>
    <entry key="connectorMaria" value="yes"/>
           </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.UserInputPanel id="end">
            <userInput</>userInput>
        </com.izforge.izpack.panels.UserInputPanel>
        <com.izforge.izpack.panels.InstallPanelUserInputPanel id="installjdbc"/>
        <com.izforge.izpack.panels.ProcessPanel id="process"/>
        <userInput>
            <com.izforge.izpack.panels.FinishPanel id="finish"/>
    </AutomatedInstallation>
    
    

Batch installation is started by opening a terminal or command window in the folder containing the setup.* file and typing:

  • Code Block
    languagetext
    titleStarting batch installation of the JOC Cockpit on Linux systems with root permissions
    /tmp/joc.[release]> ./setup.sh joc_install.xml
    Code Block
    languagetext
    titleStarting batch installation of the JOC Cockpit on Linux systems without root permissions
    /tmp/joc.[release]> ./setup.sh -u joc_install.xml
  • Code Block
    languagetext
    titleStarting batch installation of the JOC Cockpit on Windows systems
    C:\temp\joc.[release]> setup.cmd joc_install.xml

The installation dialog is described in the following sections.

Installation Dialog

Language Selection

...

Step 1 - Welcome Screen
Image Removed

 

Step 2 - Licensing Agreement

The License Agreement shown in Step 2 of the installation has to be accepted before installation can take place.

...

Step 3 - Target Path for the Installation

...

The default installation paths for the JOC Cockpit are:

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

  • C:\Program Files\sos-berlin.com\joc on Windows.

...

Step 4 - Jetty Installation & Configuration

...

  • /home/[user]/sos-berlin.com/joc on Linux systems and

  • C:\ProgramData\sos-berlin.com\joc on Windows.

Image Removed

...

  • /etc/default/joc . 

...

  • HKLM\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\sos_joc\Parameters\Java
  •     <!-- JobScheduler Database Configuration -->
                     
                <!-- Configuration for JDBC Driver 
                     This entry is only necessary if you selected a DBMS type such as MySQL, 
                     MS SQL Server, Sybase ot DB2 in the previous <userInput> element. -->
                     
                <!-- You have to provide the MySQL, MS SQL Server, Sybase or DB2 JDBC driver respectively if you selected 
                     corresponding DBMS type. For license reasons MySQL and MS SQL Server JDBC Drivers are 
                     not provided. Specify the JDBC Driver source (e.g. mysql-connector-java-*.jar for MySQL, 
                     sqljdbc.jar for MS SQL Server, jconn3.jar for Sybase). Alternatively you can use the mariadb 
                     JDBC Driver for MySQL and the jTDS JDBC Driver for MS SQL Server and Sybase which is provided. -->
                     
                <!-- Select the path to JDBC Driver -->
                <entry key="connector" value=""/>
                
                <!-- Only for DB2: Select the path to DB2 license file for JDBC Driver -->
                <entry key="connectorLicense" 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>
    
    

Batch installation is started by opening a terminal or command window in the folder containing the setup.* file and typing:

  • Code Block
    languagetext
    titleStarting batch installation of the JOC Cockpit on Linux systems with root permissions
    /tmp/joc.[release]> ./setup.sh joc_install.xml
    Code Block
    languagetext
    titleStarting batch installation of the JOC Cockpit on Linux systems without root permissions
    /tmp/joc.[release]> ./setup.sh -u joc_install.xml
  • Code Block
    languagetext
    titleStarting batch installation of the JOC Cockpit on Windows systems
    C:\temp\joc.[release]> setup.cmd joc_install.xml

The installation dialog is described in the following sections

...

Step 5 - Specify the Reporting DBMS

...

Choose the DBMS to be used by the JOC Cockpit for the Reporting Database.

...

Step 6 - Configure the Reporting Database Connection

  • Specify the parameters for the connection to the Reporting Database. 

  • Image Removed

  • It will be probably be obvious from the names given to the parameters in the screenshot above that the values are for a database to be used by the JobScheduler. In this case the Reporting Database Tables will be integrated in the JobScheduler Database. This will be described in the next step.

  • The database configuration for the JOC Cockpit is written to an XML file during installation and saved in the jetty_base/resources/joc folder.
    The default name of the database configuration file is:

    • reporting.hibernate.cfg.xml

    This file can be modified at a later date if required using a text editor. The JOC Cockpit service will then have to be restarted before changes made to this file are implemented.

  • The name and location of the database configuration file itself is specified in the joc.properties file, which can also be found in the jetty_base/resources/joc folder.
     

...

Step 7 - Specify the Database Connection Used by the JobScheduler

  • Specify whether a separate connection it to be specified for the JobScheduler Database 

  • Image Removed
  • If the JobScheduler(s) and JOC Cockpit share the same database then clicking Next will cause the Installation to proceed to Step 10. This step starts the installation process itself and changes to the configuration are no longer possible.  
  • If the JobScheduler(s) and JOC Cockpit use separate databases then the checkbox in the form should be deselected. In this case, clicking Next will cause the Installation to proceed to the specification of the DBMS and the connection parameters for the JobScheduler database, which are described next.
     

...

Step 8 - Specify the JobScheduler DBMS

  • This form is identical to those already shown for the Reporting Database in Steps 5 above.
     

Step 9 - Configure the JobScheduler Database Connection

...

Specify the parameters for the connection to the JobScheduler Database.

  • The DBMS type can be found in the database configuration for job history section of the $JOBSCHEDULER_DATA/factory.ini file of one of the JobSchedulers to be operated from the JOC Cockpit, where $JOBSCHEDULER_DATA is defined in the JobScheduler - Installation Guide (Section 1.2).

...

  • jobscheduler.hibernate.cfg.xml

...

This file can be modified at a later date if required using a text editor. A JOC Cockpit user will then have to log in again before changes made to this file are implemented.

...

The name and location of the database configuration file itself is specified in the joc.properties file, which can also be found in the jetty_base/resources/joc folder.

...

Step 10 - Processing the Installation

...

This step shows the progress of the first part of the installation procedure.

...

Step 11 - External Processes

  • This step shows the progress of the second part of the installation procedure.

  • Image Removed

  • The information shown in this step will be written to the installation log file, which can be found in the jetty_base/logs folder

Step 12 - Completion

...

The last step of the installation shows a summary of the installation (success/error) and paths to relevant information.

Image Removed

...

.

Initial Operation with the JOC Cockpit Login Form

...