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

Compare with Current View Page History

« Previous Version 13 Next »

Running multiple instances of JobScheduler Universal Agent

  • Multiple instances of the JobScheduler Agent on the same computer can be operated, e.g. for different user accounts that jobs should be executed for.
  • Any number of Agent instances can be started from the same installation, however, each Agent has to use a different port to listening for requests from a JobScheduler Master.
  • Create an instance startscript for each JobScheduler Agent instance.
    • FEATURE AVAILABILITY STARTING FROM RELEASE 1.10.2
    • Find a template jobscheduler_agent_instance.(sh|cmd)-example for an instance script in the ./bin directory of the JobScheduler Agent installation.
    • Download the templates for Unix and for Windows for previous releases.
    • Copy the template to jobscheduler_agent_<port>.(sh|cmd) where <port> is the port that the Agent is listening to.
    • The instance script includes setting the environment variables and calling the Agent start script (./bin/jobscheduler_agent.(sh|cmd)).
    • Configure the instance script with a text editor and set the environment variables that are explained in the JobScheduler Universal Agent - Installation & Operation article.
  • You can start and stop etc. the JobScheduler Agent with the instance script and you will not have to use command line options such as -http-port-ip-address, -kill-script and -java-options as they are specified by environment variables from the instance script.
  • On Unix you can use the instance script as a service init script in /etc/init.d or corresponding locations for an automated start-up and shutdown.
  • On Windows the instance script is used to create a service for an automated start-up and shutdown.

Create and configure a JobScheduler Universal Agent instance on Unix

  • We assume that the JobScheduler Agent instance should listen to port 4445 for example.

    create instance script for an Agent with port 4445
    > cp ./bin/jobscheduler_agent_instance.sh-example ./bin/jobscheduler_agent_4445.sh
  • Edit the ./bin/jobscheduler_agent_4445.sh.
  • Find the environment variables for the JobScheduler Universal Agent.

    • All environment variables are commented out in the instance script, i.e. the default values are used.
    • If you want to set an environment variable then the line with the variable has to be uncommented.

      SCHEDULER_HOME

      This variable has to point to the installation path of the JobScheduler Universal Agent, e.g. /opt/sos-berlin.com/jobscheduler_agent.
      If the instance script is exclusively used in the current ./bin directory then this variable can remain unused..

      This setting is required if the instance script is used as a service init script in /ect/init.d to find the Agent installation!

      SCHEDULER_USER

      Specifies the user account that the JobScheduler Agent is operated for. This includes running jobs with the permissions of the specified user.
      Without setting this environment variable the user account that runs the start script is used.

      This setting is required if the instance script is used as a service init script in /ect/init.d to avoid that the Agent runs with the root user!

      SCHEDULER_HTTP_PORT

      The http port of the Agent. This has to be the same value as the suffix in the instance script basename. In this example

      SCHEDULER_HTTP_PORT=4445

      This option can be also used for indicating which network interfaces the JobScheduler Agent should listen to if you specify a hostname or ip address in addition.

      SCHEDULER_HTTP_PORT=localhost:4445
      SCHEDULER_HTTPS_PORT

      The https port of the Agent.

      SCHEDULER_HTTPS_PORT=40445

      This option can be also used for indicating which network interfaces the JobScheduler Agent should listen to if you specify a hostname or ip address in addition.

      SCHEDULER_HTTPS_PORT=123.456.789:40445
      SCHEDULER_DATA

      Set the directory where the JobScheduler Agent has the configuration, logs, etc.

      This directory must be unique for each instance of the JobScheduler Agent. The default is:

      SCHEDULER_HOME/var_SCHEDULER_HTTP_PORT

      Make sure that the JobScheduler Agent user has read/write permissions.

      SCHEDULER_LOG_DIR

      Set the directory where the JobScheduler Agent log files are created. The default location is SCHEDULER_HOME/logs.
      It is recommended to use the same log directory for all instances. According to the Linux Filesystem Hierarchy Standard (FHS) you can use for example

      SCHEDULER_LOG_DIR=/var/log/jobscheduler/agent

      Make sure that the SCHEDULER_USER has read and write permissions in SCHEDULER_LOG_DIR.
      If you use the same SCHEDULER_LOG_DIR for all instances then make sure that the SCHEDULER_USER of all instances has read and write permissions.

      SCHEDULER_PID_FILE_DIR

      Set the directory where the JobScheduler Agent pid file is created. The default location is SCHEDULER_LOG_DIR.

      Make sure that the SCHEDULER_USER has read and write permissions in SCHEDULER_PID_FILE_DIR.
      If you use the same SCHEDULER_PID_FILE_DIR for all instances then make sure that the SCHEDULER_USER of all instances has read and write permissions.

      SCHEDULER_WORK_DIR

      The default working directory of the JobScheduler Agent is SCHEDULER_HOME. You can specify a different working directory, e.g. $HOME.

    • According to the shell in use you can set the environment variables except SCHEDULER_HOMESCHEDULER_HTTP_PORT and SCHEDULER_USER in a ~/.profile or ~/.bashrc file too.
  • If you want to install a JobScheduler Agent service for an automated start-up and shutdown then copy this instance script to /ect/init.d or corresponding locations.

    create a service init script set automated start-up and shutdown
    > cp ./bin/jobscheduler_agent_4445.sh /etc/init.d/jobscheduler_agent_4445 
    > # on SuSe or CentOS
    > chkconfig jobscheduler_agent_4445
    > # on Ubuntu or Debian
    > update-rc.d jobscheduler_agent_4445 default

Create and configure a JobScheduler Universal Agent instance on Windows

An installer is available for Windows that you can download here. The following steps explain how to manually create an instance.

  • We assume that the JobScheduler Agent instance should listen to port 4445 for example.

    create instance script for an Agent with port 4445
    > copy .\bin\jobscheduler_agent_instance.cmd-example .\bin\jobscheduler_agent_4445.cmd
  • Edit the .\bin\jobscheduler_agent_4445.cmd.
  • Find the  environment variables of the JobScheduler Universal Agent.

    • All environment variables are commented out in the instance script, i.e. the default values are used.
    • If you want to set an environment variable then the line with the variable has to be uncommented.

      SCHEDULER_HOME

      This variable has to point to the installation path of the JobScheduler Universal Agent (e.g. C:\Program Files\sos-berlin.com\jobscheduler_agent).
      This variable is only required if this instance script is moved outside the folder where the start script .\bin\jobscheduler_agent.cmd is located.
      There is no reason on Windows to move this script to a different folder so this variable can normally remain unused.

      SCHEDULER_HTTP_PORT

      The port of the Agent. It has to be the same value as the suffix in the instance script basename. In this example

      set /a SCHEDULER_HTTP_PORT=4445

      This option can be also used for indicating which network interfaces the JobScheduler Agent should listen to if you specify a hostname or ip address in addition.

      set /a SCHEDULER_HTTP_PORT=localhost:4445
      SCHEDULER_HTTPS_PORT

      The https port of the Agent.

      set /a SCHEDULER_HTTPS_PORT=40445

      This option can be also used for indicating which network interfaces the JobScheduler Agent should listen to if you specify a hostname or ip address in addition.

      set /a SCHEDULER_HTTPS_PORT=123.456.789:40445
      SCHEDULER_DATA

      Set the directory where the JobScheduler Agent has the configuration, logs, etc.

      This directory must be unique for each instance of the JobScheduler Agent. The default is:

      SCHEDULER_HOME/var_SCHEDULER_HTTP_PORT

      Make sure that the JobScheduler Agent user has read/write permissions.

      SCHEDULER_LOG_DIR

      Set the directory where the JobScheduler Agent log files are created. The default location is SCHEDULER_HOME/logs.
      It is recommended to use the same log directory for all instances.
      If the installation path of the JobScheduler Agent is located in C:\Program Files then due to the required permissions it is recommended to set this variable to a different folder, e.g.

      set SCHEDULER_LOG_DIR=C:\ProgramData\sos-berlin.com\jobscheduler\agent\logs

      The JobScheduler Agent is installed as a service. Make sure that the service account has read and write permissions in SCHEDULER_LOG_DIR.
      If you use the same SCHEDULER_LOG_DIR for all instances then make sure that all service accounts have read and write permissions.

      SCHEDULER_PID_FILE_DIR

      Set the directory where the JobScheduler Agent pid file is created. The default location is SCHEDULER_LOG_DIR.

      The JobScheduler Agent is installed as a service. Make sure that the service account has read and write permissions in SCHEDULER_PID_FILE_DIR.
      If you use the same SCHEDULER_PID_FILE_DIR for all instances then make sure that all service accounts have read and write permissions.

      SCHEDULER_WORK_DIR

      The default working directory of the JobScheduler Agent is SCHEDULER_HOME. You can set a different working directory, e.g. %USERPROFILE%.

    • create the service with the instance script

      > .\bin\jobscheduler_agent_4445.cmd install-service
    • The service runs now with the local system account. Specify a different user account for the service if required.
      • Open the Windows service panel for the service name SOS JobScheduler Agent -port=4445 and navigate to the tab "Log On", choose "This account" and add the account with the syntax DOMAIN\USER and the corresponding password.

 

  • No labels