Versions Compared

Key

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

...

Start Script

Usage

Running the start script Controller Start Script without parameters shows displays the usage clause:

Code Block
languagetext
titleUsage for Unix
Usage: controller.sh command [options]
  command:
    start         [options]
    start_docker  [options]
    stop          [options]
    abort         [options]
    restart       [options]
    status        [options]
    kill          [options]
  options:
    --id=<JS7 Controller Id>                          | default: controller
    --http-port=<[hostname or ip address:]number>     | default: 4444
    --https-port=<[hostname or ip address:]number>    | default:
    --data-directory=<location of data directory>     | default: /var/sos-berlin.com/js7/controller/var
    --config-directory=<location of dataconfig directory> | default: /var/sos-berlin.com/js7/controller/var/config
    --java-options=<java options>                     | default: -Dfile.encoding=UTF-8  -Xmx500m -Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j2.asyncLoggerWaitStrategy=Block; see also https://kb.sos-berlin.com/x/aIC9
see also https://kb.sos-berlin.com/x/CKrAAw for more information.
Code Block
languagetext
titleUsage for Unix
Usage: controller.cmd command [options]
  command:
    start           [options]
    stop            [options]
    abort           [options]
    restart         [options]
    status          [options]
    kill            [options]
    install-service [options]
    remove-service  [options]
    start-service   [options]
  options:
    --id=<JS7 Controller ID>                                    | default: controller
    --http-port=<[hostname or ip address:]number>               | default: 7444
    --https-port=<[hostname or ip address:]number>              | default:
    --data-directory=<location of data directory>               | default: C:\ProgramData\sos-berlin.com\js7\controller\controller
    --config-directory=<location of dataconfig directory>             | default: C:\ProgramData\sos-berlin.com\js7\controller\controller\config
    --java-options=<java options>                               | default: -Dfile.encoding=UTF-8  -Xmx500m -Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j2.asyncLoggerWaitStrategy=Block; see also https://kb.sos-berlin.com/x/aIC9
see also https://kb.sos-berlin.com/x/CKrAAw for more information.

Command Line Options

  • --id=<JS7 Controller ID>
    • is a unique identifier for an instance of a Controller within a network
  • --http-port=<[hostname or ip address:]number>
    •  is specifies the HTTP port that the Controller is listening to in order to receive requests from JOC Cockpit and Agent.
      • controller.cmd|sh

        command

        --http-port=####

      • where #### is the numeric port.
      • This option can be also used for indicating to indicate which network interfaces interface the JS7 Controller should listen to if in addition you specify a hostname or IP address in additionaddress for example with --http-port=myhost:4444.
    • Without this option Without this option being used the port defaults to 4444 and the Controller listens to all available network interfaces.
    • Should you want to specify a port then the following precedence applies:
      • First precedence: command line option
      • Second precedence: environment variable JS7_CONTROLLER_HTTP_PORT (see below)
      • Third precedence: use of default value
  • --https-port=<[hostname or ip address:]number>
    •  is specifies the HTTPS port that the Controller is listening to in order to receive requests from a Controller:
      • agent.cmd|sh command -https-port=####
      • where #### is the numeric port.
      • This option can be also used for indicating to indicate which network interfaces interface the Controller should listen to if in addition you specify a hostname or IP address in additionaddress for example with --https-port=myhost:4444.
    • Should you want to specify a port then the following precedence applies:
      • First precedence: command line option
      • Second precedence: environment variable JS7_CONTROLLER_HTTPS_PORT (see below)
      • Third precedence: use of default value
  • --data-directory=<number><location of data directory>
    • specifies the location
    • Location of the data directory.
    • It This location has to be unique over all JS7 Controller instances
    • Should you want to specify a data directory then the following precedence applies:
      • First precedence: command line option
      • Second precedence: environment variable JS7_CONTROLLER_DATA (see below)
      • Third precedence: use of default value (JS7_CONTROLLER_HOME\var_JS7_CONTROLLER_HTTP_PORT)
  • -java-options=<java options>config-directory=<location of config directory>
    • specifies the location of the config directory.
    • This location has to be unique for any Controller instances
    • Should you want to specify a config directory
    • With Java 1.8 the initial memory allocation has changed, for details see How to manage the Java heap space.

    • This option can be used to apply Java options for the Controller, e.g. the memory settings.

    • Without this option being used the Java options default to '-Xms500m'.

    • Should you want to specify the Java options then the following precedence applies:
      • First precedence: command line option
      • Second precedence: environment variable JAVA_OPTIONS JS7_CONTROLLER_CONFIG_DIR (see below)
      • Third precedence: use of default value (=JS7_CONTROLLER_DATA/config)
  • --config-directoryjava-options=<java options>
    • With Java 1.8 the initial memory allocation has changed, for details see How to manage the Java heap space.

    • This option can be used to apply Java options for the Controller, e.g. for memory settings.

    • Without this option being used the Java options default to '-Xms500m'.

    • configuration files are stored.
    • It has to be unique over all JS7 Controller instances

    • Should you want to

      specify a data directory

      specify the Java options then the following precedence applies:

      • First precedence: command line option
      • Second precedence: environment variable JS7_CONTROLLER_CONFIG_DIR JAVA_OPTIONS (see below)
      • Third precedence: use of default value (JS7_CONTROLLER_DATA\config) 

Environment Startup Script

...

Usage

...

: environment

...

_variables.sh, environment_variables.cmd

Usage

The JS7 Controller includes an Environment variable script which is used to set the values to the environment variables. The variables when set uses the value as at the startup of the Controller. environment startup script that can be used to specify startup parameters.

  • The default location of the environment_variables.cmd|sh file is:

...

  • JAVA_HOME
    • points to the location of the Java Runtime Environment (JRE).
    • Without setting this environment variable Java will be used from the location specified by the system path.
    • Please consider that JAVA_HOME does not point to the location of a JDK but to a JRE directory where the bin/java executable resides.
  • JAVA_OPTIONS
    • sets Java options, e.g. the Java memory settings for the Controller.
    • Without setting this environment variable the Java options default to '-Xms500m'.
  • JS7_CONTROLLER_CONFIG_DIR
    • configuration files are stored.
    • It The location has to be unique over for all JS7 Controller instances on the same server.
  • JS7_CONTROLLER_DATA
    • points to the directory where the JS7 Controller has finds its data directory.
    • Without setting this environment variable the default value is JS7_CONTROLLER_HOME\var_JS7_CONTROLLER_HTTP_PORT
  • JS7_CONTROLLER_HTTP_PORT
    • sets the HTTP port that the JS7 Controller is listening to.
    • indicates which network interfaces interface the JS7 Controller should listen to if a host or IP address is specified.
    • if only a port number is specified then the JS7 Controller listens to all available network interfaces via HTTP.
    • Without setting this environment variable the port defaults to 4444.
  • JS7_CONTROLLER_HTTPS_PORT
    • sets the HTTPS port that the JobScheduler Agent JS7 Controller is listening to.
    • indicates which network interfaces interface the JS7 Controller should listen to if a host or IP address is specified.
    • if only a port number is specified then the JS7 Controller listens to all available network interfaces via HTTPS.
    • Without setting this environment variable the HTTPS protocol doesn't useis not used.
  • JS7_CONTROLLER_LOGS
    • sets the directory where the JS7 Controller log file is created.
    • This setting defaults to the directory logs in the JS7 Controller installation Controller data directory.
    • For Windows systems for which the JS7 Controller is installed in the program directory that is pointed to by the %ProgramFiles% environment variable, it is recommended not to use the default setting. Instead specify a different path via the JS7_CONTROLLER_LOGS environment variable, e.g. some location in the data directory that is pointed to by the %ProgramData% environment variable.
  • JS7_CONTROLLER_PID_FILE_DIR
    • sets the directory where the JS7 Controller pid PID file is created.
    • This setting defaults to the directory that is specified with the JS7_CONTROLLER_LOGS environment variable or the log directory default value.

Running the Controller

  • SOS does not recommend running the JS7 Controller as root (for Unix) or as Administrator (for Windows)to run the JS7 Controller as root (for Unix) or as Administrator (for Windows) for a simple reason: there is no need to do so.
  • The Controller does not execute any jobs as this task is performed by Agents. Therefore any user account can be used to operate the Controller.

Starting the Controller

Code Block
languagebash
controller.cmd|sh start [options]

...

The Controller process is terminated aborted immediately.


Code Block
languagebash
controller.cmd|sh kill [options]

...

The following information applies to batch headless installation on for Windows systems. For installation with a GUI and user dialog see JS7 - Controller - Use of Windows Graphical Installer.

The Controller is operable as a Windows Service. The start script Start Script of the Controller allows installingto install/removing remove the Windows Service.

Installing the Windows Service

Code Block
languagebash
controller.cmd install-service [--http-port=<number>] [-ip-address=<hostname or ip address>]

This command installs the Controller's Windows Service. After the installation, you find the Windows Service with the name SOS JS7 Controller -id=<Controller ID> in the Services Manager Console. The Windows service Service uses the "local system" account.

Warning

During the service installation, it tries to copy the executable file for the Windows Service to the .\service directory. This operation could fail with the error "Access denied" if you have extracted the JS7 Controller to e.g. C:\Program Files\. In this case, you can change the permissions of the .\service directory or open the command prompt with elevated administrator rights and execute the above command once more.

...

Code Block
languagebash
controller.cmd start-service [--http-port=<number>]

This command starts the Windows Service with the name SOS JS7 Controller -id=<Controller ID>.

Info

The stop command contains performs more than a simple stop-service command: the stop command checks whether the Controller was started through by the CLI or as a Windows Service and stops the Controller accordingly. Therefore there is no stop-service command.

...

Code Block
languagebash
controller.cmd remove-service [--http-port=<number>]

This command removes the Windows Service. After executing this command you will should not find the Windows Service with the name SOS JS7 Controller -id=<Controller ID> in the Services Manager Console any longer.

Configuring the Windows Service

After the installation of the Windows Service, you will find the .\service\js7_controller_<Controller ID>w.exe file. Start this program to configure the Windows Service.

For example, goto the "Startup" tab
to modify the start parameterparameters


Debugging

  • The Controller log level can be increased using the Controller's Apache ProcRun Demon Service Manager demon/service.
  • On Windows systems, this is installed in the Controller service Folder and will have a name such as js7_controller_<Controller ID>w.exe  where Controller ID is the unique ID for the Controller 
  • Start the ProcRun Manager, select the Logging tab in the Manager interface and set the level to Debug
  • The location of the log files has already been described above. 
  • (Do not forget to set the debug level back to Info once finished.)

...