doc/src/docbook/appendix/jobagent.properties.xml

Code
Comments
Other
Rev Date Author Line
3334 14 May 07 nicklas 1 <?xml version="1.0" encoding="UTF-8"?>
3334 14 May 07 nicklas 2 <!DOCTYPE appendix PUBLIC 
3334 14 May 07 nicklas 3     "-//Dawid Weiss//DTD DocBook V3.1-Based Extension for XML and graphics inclusion//EN" 
3334 14 May 07 nicklas 4     "../../../../lib/docbook/preprocess/dweiss-docbook-extensions.dtd">
3334 14 May 07 nicklas 5 <!--
3334 14 May 07 nicklas 6   $Id$
3334 14 May 07 nicklas 7   
4889 06 Apr 09 nicklas 8   Copyright (C) 2007 Jari Häkkinen, Peter Johansson, Nicklas Nordborg, Martin Svensson
3334 14 May 07 nicklas 9   
3334 14 May 07 nicklas 10   This file is part of BASE - BioArray Software Environment.
3334 14 May 07 nicklas 11   Available at http://base.thep.lu.se/
3334 14 May 07 nicklas 12   
3334 14 May 07 nicklas 13   BASE is free software; you can redistribute it and/or
3334 14 May 07 nicklas 14   modify it under the terms of the GNU General Public License
4477 05 Sep 08 jari 15   as published by the Free Software Foundation; either version 3
3334 14 May 07 nicklas 16   of the License, or (at your option) any later version.
3334 14 May 07 nicklas 17   
3334 14 May 07 nicklas 18   BASE is distributed in the hope that it will be useful,
3334 14 May 07 nicklas 19   but WITHOUT ANY WARRANTY; without even the implied warranty of
3334 14 May 07 nicklas 20   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3334 14 May 07 nicklas 21   GNU General Public License for more details.
3334 14 May 07 nicklas 22   
3334 14 May 07 nicklas 23   You should have received a copy of the GNU General Public License
4509 11 Sep 08 jari 24   along with BASE. If not, see <http://www.gnu.org/licenses/>.
3334 14 May 07 nicklas 25 -->
3334 14 May 07 nicklas 26
3334 14 May 07 nicklas 27 <appendix id="appendix.jobagent.properties">
5782 04 Oct 11 nicklas 28   <?dbhtml filename="jobagent.properties.html" ?>
3334 14 May 07 nicklas 29   <title>jobagent.properties reference</title>
3334 14 May 07 nicklas 30   
3334 14 May 07 nicklas 31   <para>
3363 22 May 07 nicklas 32     The <filename>jobagent.properties</filename> file is the main configuration file
3363 22 May 07 nicklas 33     for job agents. It is located in the <filename>&lt;basedir&gt;/www/WEB-INF/classes</filename>
3363 22 May 07 nicklas 34     directory.
3334 14 May 07 nicklas 35   </para>
3334 14 May 07 nicklas 36
3363 22 May 07 nicklas 37   <simplesect id="appendix.jobagent.properties.base">
3363 22 May 07 nicklas 38     <title>BASE settings</title>
3363 22 May 07 nicklas 39     
3363 22 May 07 nicklas 40     <para>
3363 22 May 07 nicklas 41       This section describes the configuration parameters that 
3363 22 May 07 nicklas 42       are used by the job agent to get access to the BASE server.
3363 22 May 07 nicklas 43     </para>
3363 22 May 07 nicklas 44     
3363 22 May 07 nicklas 45     <variablelist>
3363 22 May 07 nicklas 46     <varlistentry>
3363 22 May 07 nicklas 47       <term><property>agent.user</property></term>
3363 22 May 07 nicklas 48       <listitem>
3363 22 May 07 nicklas 49         <para>
3411 30 May 07 jari 50           Required. The BASE user account used by the job agent to log on 
3363 22 May 07 nicklas 51           to the BASE server. The user account must have sufficient privileges 
3363 22 May 07 nicklas 52           to access jobs and job agents. The <emphasis>Job agent</emphasis>
3363 22 May 07 nicklas 53           role is a predefined role with all permissions a job agent needs.
3411 30 May 07 jari 54           There is also a predefined user account with the user name 
3363 22 May 07 nicklas 55           <emphasis>jobagent</emphasis>. This account is disabled by default and
3363 22 May 07 nicklas 56           has to be enabled and given a password before it can be used.
3363 22 May 07 nicklas 57         </para>
3363 22 May 07 nicklas 58       </listitem>
3363 22 May 07 nicklas 59     </varlistentry>
3363 22 May 07 nicklas 60
3363 22 May 07 nicklas 61     <varlistentry>
3363 22 May 07 nicklas 62       <term><property>agent.password</property></term>
3363 22 May 07 nicklas 63       <listitem>
3363 22 May 07 nicklas 64         <para>
3411 30 May 07 jari 65           Required. The password for the job agent user account.
3363 22 May 07 nicklas 66         </para>
3363 22 May 07 nicklas 67       </listitem>
3363 22 May 07 nicklas 68     </varlistentry>
3363 22 May 07 nicklas 69
3363 22 May 07 nicklas 70     <varlistentry>
3363 22 May 07 nicklas 71       <term><property>agent.id</property></term>
3363 22 May 07 nicklas 72       <listitem>
3363 22 May 07 nicklas 73         <para>
3363 22 May 07 nicklas 74           Required. A unique ID that identifies this job agent among other 
3365 23 May 07 martin 75           job agents. If multiple job agents are installed each job agent 
3363 22 May 07 nicklas 76           should have it's own unique ID.
3363 22 May 07 nicklas 77         </para>
3363 22 May 07 nicklas 78       </listitem>
3363 22 May 07 nicklas 79     </varlistentry>
3363 22 May 07 nicklas 80     
3363 22 May 07 nicklas 81     <varlistentry>
3363 22 May 07 nicklas 82       <term><property>agent.name</property></term>
3363 22 May 07 nicklas 83       <listitem>
3363 22 May 07 nicklas 84         <para>
3363 22 May 07 nicklas 85           Optional. The name of the job agent. If not specified the ID is used. 
3363 22 May 07 nicklas 86           The name is only used when registering the job agent with the BASE 
3363 22 May 07 nicklas 87           server.
3363 22 May 07 nicklas 88         </para>
3363 22 May 07 nicklas 89       </listitem>
3363 22 May 07 nicklas 90     </varlistentry>
3363 22 May 07 nicklas 91     
3363 22 May 07 nicklas 92     <varlistentry>
3363 22 May 07 nicklas 93       <term><property>agent.description</property></term>
3363 22 May 07 nicklas 94       <listitem>
3363 22 May 07 nicklas 95         <para>
3363 22 May 07 nicklas 96           Optional. A description of the job agent. This is only used when 
3363 22 May 07 nicklas 97           registering the job agent.
3363 22 May 07 nicklas 98         </para>
3363 22 May 07 nicklas 99       </listitem>
3363 22 May 07 nicklas 100     </varlistentry>
3363 22 May 07 nicklas 101     </variablelist>
3363 22 May 07 nicklas 102     
3363 22 May 07 nicklas 103   </simplesect>
3363 22 May 07 nicklas 104
3363 22 May 07 nicklas 105   <simplesect id="appendix.jobagent.properties.jobagent">
3363 22 May 07 nicklas 106     <title>Job agent server settings</title>
3363 22 May 07 nicklas 107     
3363 22 May 07 nicklas 108     <para>
3363 22 May 07 nicklas 109       This section describes the configuration parameters that 
3363 22 May 07 nicklas 110       affect the job agent server itself.
3363 22 May 07 nicklas 111     </para>
3363 22 May 07 nicklas 112     
3363 22 May 07 nicklas 113     <variablelist>
3363 22 May 07 nicklas 114     <varlistentry>
3363 22 May 07 nicklas 115       <term><property>agent.port</property></term>
3363 22 May 07 nicklas 116       <listitem>
3363 22 May 07 nicklas 117         <para>
3363 22 May 07 nicklas 118           Optional. The port the job agent listens to for control requests. 
3363 22 May 07 nicklas 119           Control requests are used for starting, stopping, pausing and getting 
3363 22 May 07 nicklas 120           status information from the job agent. It is also used by the 
3363 22 May 07 nicklas 121           <command>jobagent.sh</command> script to control 
3363 22 May 07 nicklas 122           the local job agent. The default value is 47822.
3363 22 May 07 nicklas 123         </para>
3363 22 May 07 nicklas 124       </listitem>
3363 22 May 07 nicklas 125     </varlistentry>
3363 22 May 07 nicklas 126     
3363 22 May 07 nicklas 127     <varlistentry>
3363 22 May 07 nicklas 128       <term><property>agent.remotecontrol</property></term>
3363 22 May 07 nicklas 129       <listitem>
3363 22 May 07 nicklas 130         <para>
3411 30 May 07 jari 131           Optional. A comma-separated list of IP addresses or names of 
3363 22 May 07 nicklas 132           computers that are allowed to send control requests to the job 
3363 22 May 07 nicklas 133           agent. If no value is specified, only the local host is allowed 
3363 22 May 07 nicklas 134           to connect. It is recommended that the web server is added to 
3363 22 May 07 nicklas 135           the list if the job agent is not running on the same server as
3363 22 May 07 nicklas 136           the web server.
3363 22 May 07 nicklas 137         </para>
3363 22 May 07 nicklas 138       </listitem>
3363 22 May 07 nicklas 139     </varlistentry>
3363 22 May 07 nicklas 140     
3363 22 May 07 nicklas 141     <varlistentry>
3363 22 May 07 nicklas 142       <term><property>agent.allowremote.stop</property></term>
3363 22 May 07 nicklas 143       <listitem>
3363 22 May 07 nicklas 144         <para>
3363 22 May 07 nicklas 145           Optional. If the <command>stop</command> command should be 
3363 22 May 07 nicklas 146           accepted from remote hosts specified in the <property>agent.remotecontrol</property> setting. 
3363 22 May 07 nicklas 147           If <constant>false</constant>, which is the default value,
3363 22 May 07 nicklas 148           only the local host is allowed to stop the job agent.
3363 22 May 07 nicklas 149         </para>
3363 22 May 07 nicklas 150         
3363 22 May 07 nicklas 151         <note>
3363 22 May 07 nicklas 152           <para>
3487 13 Jun 07 peter 153           Once the job agent has been stopped it cannot be started
3363 22 May 07 nicklas 154           by remote control. You must use the <command>jobagent.sh</command>
3363 22 May 07 nicklas 155           script for this.
3363 22 May 07 nicklas 156           </para>
3363 22 May 07 nicklas 157         </note>
3363 22 May 07 nicklas 158         
3363 22 May 07 nicklas 159       </listitem>
3363 22 May 07 nicklas 160     </varlistentry>
3363 22 May 07 nicklas 161     
3363 22 May 07 nicklas 162     <varlistentry>
3365 23 May 07 martin 163       <term><property>agent.allowremote.pause</property></term>
3363 22 May 07 nicklas 164       <listitem>
3363 22 May 07 nicklas 165         <para>
3365 23 May 07 martin 166           Optional. If the <command>pause</command> command should be 
3363 22 May 07 nicklas 167           accepted from remote hosts specified in the <property>agent.remotecontrol</property> setting. 
3363 22 May 07 nicklas 168           If <constant>false</constant>, only the local host is allowed to 
3365 23 May 07 martin 169           pause the job agent. The default value is <constant>true</constant>.
3363 22 May 07 nicklas 170         </para>
3363 22 May 07 nicklas 171       </listitem>
3363 22 May 07 nicklas 172     </varlistentry>
3365 23 May 07 martin 173     
3363 22 May 07 nicklas 174     <varlistentry>
3365 23 May 07 martin 175       <term><property>agent.allowremote.start</property></term>
3363 22 May 07 nicklas 176       <listitem>
3363 22 May 07 nicklas 177         <para>
3411 30 May 07 jari 178           Optional, valid only when job agent is paused. If
3411 30 May 07 jari 179           the <command>start</command> command should be accepted from
3411 30 May 07 jari 180           remote hosts specified in
3411 30 May 07 jari 181           the <property>agent.remotecontrol</property> setting.
3411 30 May 07 jari 182           If <constant>false</constant>, only the local host is
3411 30 May 07 jari 183           allowed to start the job agent when it is paused. The
3411 30 May 07 jari 184           default value is <constant>true</constant>.
3363 22 May 07 nicklas 185         </para>
3363 22 May 07 nicklas 186       </listitem>
3363 22 May 07 nicklas 187     </varlistentry>
3363 22 May 07 nicklas 188     </variablelist>
3363 22 May 07 nicklas 189
3363 22 May 07 nicklas 190   </simplesect>
3363 22 May 07 nicklas 191
5446 15 Oct 10 nicklas 192   <simplesect id="appendix.jobagent.properties.request">
5446 15 Oct 10 nicklas 193     <title>Custom request handlers</title>
5446 15 Oct 10 nicklas 194
5446 15 Oct 10 nicklas 195     <variablelist>
5446 15 Oct 10 nicklas 196     <varlistentry>
5446 15 Oct 10 nicklas 197       <term><property>agent.request-handler.*</property></term>
5446 15 Oct 10 nicklas 198       <listitem>
5446 15 Oct 10 nicklas 199         <para>
5446 15 Oct 10 nicklas 200           Optional. One or more entries for custom remote control handlers.
5446 15 Oct 10 nicklas 201           The * should be replaced with the name of the protocol and the
5446 15 Oct 10 nicklas 202           value should be the name of a class implementing the
5446 15 Oct 10 nicklas 203           <interfacename docapi="net.sf.basedb.clients.jobagent.handlers">CustomRequestHandler</interfacename>
5446 15 Oct 10 nicklas 204           interface. Requests can then be sent to the agent's remote control port on
5446 15 Oct 10 nicklas 205           the form: <code>foo://custom-data....</code>.
5446 15 Oct 10 nicklas 206         </para>
5446 15 Oct 10 nicklas 207       </listitem>
5446 15 Oct 10 nicklas 208     </varlistentry>
5446 15 Oct 10 nicklas 209     </variablelist>
5446 15 Oct 10 nicklas 210     
5446 15 Oct 10 nicklas 211   </simplesect>
5446 15 Oct 10 nicklas 212
3363 22 May 07 nicklas 213   <simplesect id="appendix.jobagent.properties.execution">
3363 22 May 07 nicklas 214     <title>Job execution settings</title>
3363 22 May 07 nicklas 215     
3363 22 May 07 nicklas 216     <para>
3363 22 May 07 nicklas 217       This section describes the configuration parameters that 
3363 22 May 07 nicklas 218       affect the execution of jobs.
3363 22 May 07 nicklas 219     </para>
3363 22 May 07 nicklas 220     
3363 22 May 07 nicklas 221     <variablelist>
3363 22 May 07 nicklas 222     <varlistentry>
3363 22 May 07 nicklas 223       <term><property>agent.executor.class</property></term>
3363 22 May 07 nicklas 224       <listitem>
3363 22 May 07 nicklas 225         <para>
3363 22 May 07 nicklas 226           The name of the Java class that handles the actual execution of jobs. 
3363 22 May 07 nicklas 227           The default implementation for a job agent ships three 
3363 22 May 07 nicklas 228           implementations:
3363 22 May 07 nicklas 229           
3363 22 May 07 nicklas 230           <itemizedlist>
3413 30 May 07 martin 231           <listitem>            
3363 22 May 07 nicklas 232             <para>
3944 09 Nov 07 martin 233             <classname docapi="net.sf.basedb.clients.jobagent.executors">
3944 09 Nov 07 martin 234               net.sf.basedb.clients.jobagent.executors.ProcessJobExecutor
3944 09 Nov 07 martin 235             </classname>:
3363 22 May 07 nicklas 236             Executes the job in an 
3363 22 May 07 nicklas 237             external process. This is the recommended executor and is the default
3411 30 May 07 jari 238             choice if no value has been specified. With this executor, a 
3487 13 Jun 07 peter 239             misbehaving plugin does not affect the job agent or other jobs.
3363 22 May 07 nicklas 240             The drawback is that since a new virtual machine has to be started,
3411 30 May 07 jari 241             more memory is required and the start up time can be long.
3363 22 May 07 nicklas 242             </para>
3363 22 May 07 nicklas 243           </listitem>
3363 22 May 07 nicklas 244           
3363 22 May 07 nicklas 245           <listitem>
3363 22 May 07 nicklas 246             <para>
3944 09 Nov 07 martin 247             <classname docapi="net.sf.basedb.clients.jobagent.executors">
3944 09 Nov 07 martin 248               net.sf.basedb.clients.jobagent.executors.ThreadJobExecutor
3944 09 Nov 07 martin 249             </classname>:      
3363 22 May 07 nicklas 250             Executes the job in a separate thread. This is only recommended 
3363 22 May 07 nicklas 251             for plugins that are  trusted and safe. A misbehaving plugin can affect the job agent 
3411 30 May 07 jari 252             and other jobs, but the start up time is short and less memory 
3363 22 May 07 nicklas 253             is used.
3363 22 May 07 nicklas 254             </para>
3363 22 May 07 nicklas 255           </listitem>
3363 22 May 07 nicklas 256           
3363 22 May 07 nicklas 257           <listitem>
3363 22 May 07 nicklas 258             <para>
3944 09 Nov 07 martin 259             <classname docapi="net.sf.basedb.clients.jobagent.executors">net.sf.basedb.clients.jobagent.executors.DummyJobExecutor</classname>:      
3487 13 Jun 07 peter 260             Does not execute the job. It only marks the job as being executed, 
3363 22 May 07 nicklas 261             and after waiting some time, as finished successfully. 
3363 22 May 07 nicklas 262             Use it for debugging the job agent. 
3363 22 May 07 nicklas 263             </para>
3363 22 May 07 nicklas 264           </listitem>
3363 22 May 07 nicklas 265           </itemizedlist>
3363 22 May 07 nicklas 266
3365 23 May 07 martin 267           It is possible to create your own implementation of a job executor. 
3363 22 May 07 nicklas 268           Create a class that implements the 
3944 09 Nov 07 martin 269           <interfacename docapi="net.sf.basedb.clients.jobagent">net.sf.basedb.clients.jobagent.JobExecutor</interfacename>
3363 22 May 07 nicklas 270           interface.          
3363 22 May 07 nicklas 271         </para>
3363 22 May 07 nicklas 272       </listitem>
3363 22 May 07 nicklas 273     </varlistentry>
3363 22 May 07 nicklas 274     
3363 22 May 07 nicklas 275     <varlistentry>
3363 22 May 07 nicklas 276       <term><property>agent.executor.process.java</property></term>
3363 22 May 07 nicklas 277       <listitem>
3363 22 May 07 nicklas 278         <para>
3363 22 May 07 nicklas 279           Optional. The path to the Java executable used by the 
3944 09 Nov 07 martin 280           <classname docapi="net.sf.basedb.clients.jobagent.executors">
3944 09 Nov 07 martin 281             ProcessJobExecutor
3944 09 Nov 07 martin 282           </classname>. If not specified the 
3363 22 May 07 nicklas 283           <envar>JAVA_HOME</envar> environment variable will be checked. 
3363 22 May 07 nicklas 284           As a last resort <command>java</command> is used without path 
3363 22 May 07 nicklas 285           information to let the operating system find the default 
3363 22 May 07 nicklas 286           installation.
3363 22 May 07 nicklas 287         </para>
3363 22 May 07 nicklas 288       </listitem>
3363 22 May 07 nicklas 289     </varlistentry>
3363 22 May 07 nicklas 290
3363 22 May 07 nicklas 291     <varlistentry>
3363 22 May 07 nicklas 292       <term><property>agent.executor.process.options</property></term>
3363 22 May 07 nicklas 293       <listitem>
3363 22 May 07 nicklas 294         <para>
3363 22 May 07 nicklas 295           Optional. Additional command line options to the Java executable. 
3363 22 May 07 nicklas 296           Do not add memory options (<option>-Mx</option> or 
3363 22 May 07 nicklas 297           <option>-Ms</option>), it will be added automatically by the 
3363 22 May 07 nicklas 298           executor. This setting is used by the 
3944 09 Nov 07 martin 299           <classname docapi="net.sf.basedb.clients.jobagent.executors">ProcessJobExecutor</classname> only.
3363 22 May 07 nicklas 300         </para>
3363 22 May 07 nicklas 301       </listitem>
3363 22 May 07 nicklas 302     </varlistentry>
3363 22 May 07 nicklas 303     
3363 22 May 07 nicklas 304     <varlistentry>
3363 22 May 07 nicklas 305       <term><property>agent.executor.dummy.wait</property></term>
3363 22 May 07 nicklas 306       <listitem>
3363 22 May 07 nicklas 307         <para>
3944 09 Nov 07 martin 308           Optional. Number of seconds the <classname docapi="net.sf.basedb.clients.jobagent.executors">DummyJobExecutor</classname> should 
3363 22 May 07 nicklas 309           wait before returning from the "job execution". The executor first sets 
3363 22 May 07 nicklas 310           the progress to 50% then waits the specified number of seconds before 
3363 22 May 07 nicklas 311           setting the job to completed. If no value is specified it returns immediately.
3363 22 May 07 nicklas 312         </para>
3363 22 May 07 nicklas 313       </listitem>
3363 22 May 07 nicklas 314     </varlistentry>
3363 22 May 07 nicklas 315
3363 22 May 07 nicklas 316     <varlistentry>
3363 22 May 07 nicklas 317       <term><property>agent.checkinterval</property></term>
3363 22 May 07 nicklas 318       <listitem>
3363 22 May 07 nicklas 319         <para>
3411 30 May 07 jari 320           Optional. Number of seconds between querying the database 
3363 22 May 07 nicklas 321           for jobs that are waiting for execution. The default value
3363 22 May 07 nicklas 322           is 30 seconds.
3363 22 May 07 nicklas 323         </para>
3363 22 May 07 nicklas 324       </listitem>
3363 22 May 07 nicklas 325     </varlistentry>
3363 22 May 07 nicklas 326     
3363 22 May 07 nicklas 327     </variablelist>
3363 22 May 07 nicklas 328   </simplesect>
3363 22 May 07 nicklas 329   
3363 22 May 07 nicklas 330   <simplesect id="appendix.jobagent.properties.slots">
3363 22 May 07 nicklas 331     <title>Slots and priorities</title>
3363 22 May 07 nicklas 332     
3363 22 May 07 nicklas 333     <para>
3487 13 Jun 07 peter 334       The job agent does not execute an arbitrary number of jobs simultaneously.
5448 19 Oct 10 nicklas 335       This would sooner or later break the server. A <emphasis>slot manager</emphasis>
5448 19 Oct 10 nicklas 336       is used to assign jobs to a pre-configured number of slots. 
3363 22 May 07 nicklas 337     </para>
5448 19 Oct 10 nicklas 338         
5448 19 Oct 10 nicklas 339     <variablelist>
5448 19 Oct 10 nicklas 340     <varlistentry>
5448 19 Oct 10 nicklas 341       <term><property>agent.slotmanager.class</property></term>
5448 19 Oct 10 nicklas 342       <listitem>
5448 19 Oct 10 nicklas 343         <para>
5448 19 Oct 10 nicklas 344           The name of the Java class that handles slot assignment to
5448 19 Oct 10 nicklas 345           jobs. The standard job agent ships with three different
5448 19 Oct 10 nicklas 346           implementations:
5448 19 Oct 10 nicklas 347           
5448 19 Oct 10 nicklas 348           <itemizedlist>
5448 19 Oct 10 nicklas 349           <listitem>            
5448 19 Oct 10 nicklas 350             <para>
5448 19 Oct 10 nicklas 351             <classname docapi="net.sf.basedb.clients.jobagent.slotmanager">
5448 19 Oct 10 nicklas 352               net.sf.basedb.clients.jobagent.slotmanager.InternalSlotManager
5448 19 Oct 10 nicklas 353             </classname>: This is the default slot manager. It uses a simple system with four different slots.
5448 19 Oct 10 nicklas 354               Each slot is reserved for jobs that are estimated to be finished in a certain amount of time.
5448 19 Oct 10 nicklas 355               The exception is that a quick job may use a slot with longer expected time
5448 19 Oct 10 nicklas 356               since that will not block the slot very long. See the table below for default
5448 19 Oct 10 nicklas 357               settings.
5448 19 Oct 10 nicklas 358             </para>
5448 19 Oct 10 nicklas 359           </listitem>
5448 19 Oct 10 nicklas 360           
5448 19 Oct 10 nicklas 361           <listitem>
5448 19 Oct 10 nicklas 362             <para>
5448 19 Oct 10 nicklas 363             <classname docapi="net.sf.basedb.clients.jobagent.slotmanager">
5448 19 Oct 10 nicklas 364               net.sf.basedb.clients.jobagent.slotmanager.MasterSlotManager
5448 19 Oct 10 nicklas 365             </classname>: This is an extension to the internal slot manager
5448 19 Oct 10 nicklas 366               that also accepts requests for slot assignments from other 
5448 19 Oct 10 nicklas 367               job agents. The other job agent(s) should be using the 
5448 19 Oct 10 nicklas 368               <classname docapi="net.sf.basedb.clients.jobagent.slotmanager">RemoteSlotManager</classname>.
5448 19 Oct 10 nicklas 369               This makes it possible for a number of job agents to share a
5448 19 Oct 10 nicklas 370               common pool of slots to avoid bottlenecks, for example, at the
5448 19 Oct 10 nicklas 371               database level.
5448 19 Oct 10 nicklas 372             </para>
5448 19 Oct 10 nicklas 373             
5448 19 Oct 10 nicklas 374           </listitem>
5448 19 Oct 10 nicklas 375           
5448 19 Oct 10 nicklas 376           <listitem>
5448 19 Oct 10 nicklas 377             <para>
5448 19 Oct 10 nicklas 378             <classname docapi="net.sf.basedb.clients.jobagent.slotmanager">
5448 19 Oct 10 nicklas 379               net.sf.basedb.clients.jobagent.slotmanager.RemoteSlotManager
5448 19 Oct 10 nicklas 380             </classname>: The remote slot manager connects with another job agent
5448 19 Oct 10 nicklas 381             (running with a 
5448 19 Oct 10 nicklas 382             <classname docapi="net.sf.basedb.clients.jobagent.slotmanager">MasterSlotManager</classname>)
5448 19 Oct 10 nicklas 383             and asks it for a slot. When this slot manager is used you need to
5448 19 Oct 10 nicklas 384             specify the ip-address/name and port of the job agent running the
5448 19 Oct 10 nicklas 385             master slot manager.
5448 19 Oct 10 nicklas 386             </para>
5448 19 Oct 10 nicklas 387           </listitem>
5448 19 Oct 10 nicklas 388           </itemizedlist>
5448 19 Oct 10 nicklas 389
5448 19 Oct 10 nicklas 390           It is possible to create your own implementation of a slot manager. 
5448 19 Oct 10 nicklas 391           Create a class that implements the 
5448 19 Oct 10 nicklas 392           <interfacename docapi="net.sf.basedb.clients.jobagent.slotmanager">net.sf.basedb.clients.jobagent.slotmanager.SlotManager</interfacename>
5448 19 Oct 10 nicklas 393           interface.
5448 19 Oct 10 nicklas 394         </para>
5448 19 Oct 10 nicklas 395       </listitem>
5448 19 Oct 10 nicklas 396     </varlistentry>
3363 22 May 07 nicklas 397     
5448 19 Oct 10 nicklas 398     <varlistentry>
5448 19 Oct 10 nicklas 399       <term><property>agent.slotmanager.remote.server</property></term>
5448 19 Oct 10 nicklas 400       <listitem>
5448 19 Oct 10 nicklas 401         <para>
5448 19 Oct 10 nicklas 402           The ip-adress or name of a job agent running as the master slot manager.
5448 19 Oct 10 nicklas 403           This setting is needed by the <classname 
5448 19 Oct 10 nicklas 404           docapi="net.sf.basedb.clients.jobagent.slotmanager">RemoteSlotManager</classname>.
5448 19 Oct 10 nicklas 405         </para>
5448 19 Oct 10 nicklas 406       </listitem>
5448 19 Oct 10 nicklas 407     </varlistentry>
5448 19 Oct 10 nicklas 408     
5448 19 Oct 10 nicklas 409     <varlistentry>
5448 19 Oct 10 nicklas 410       <term><property>agent.slotmanager.remote.port</property></term>
5448 19 Oct 10 nicklas 411       <listitem>
5448 19 Oct 10 nicklas 412         <para>
5448 19 Oct 10 nicklas 413           The remote control port number of the job agent running as the 
5448 19 Oct 10 nicklas 414           master slot manager. Make sure that the master job agent is accepting connection
5448 19 Oct 10 nicklas 415           from this job agent. This setting is needed by the <classname 
5448 19 Oct 10 nicklas 416           docapi="net.sf.basedb.clients.jobagent.slotmanager">RemoteSlotManager</classname>.
5448 19 Oct 10 nicklas 417         </para>
5448 19 Oct 10 nicklas 418       </listitem>
5448 19 Oct 10 nicklas 419     </varlistentry>
5448 19 Oct 10 nicklas 420     </variablelist>
5448 19 Oct 10 nicklas 421
5448 19 Oct 10 nicklas 422
3363 22 May 07 nicklas 423     <para>
5448 19 Oct 10 nicklas 424       This table lists slot settings for the internal and master 
5448 19 Oct 10 nicklas 425       slot managers. The remote slot manager will get slots from
5448 19 Oct 10 nicklas 426       another job agent. 
5448 19 Oct 10 nicklas 427       A thread priority is associated with each slot. 
5448 19 Oct 10 nicklas 428       The priority is a value between 1 and 10 as defined by the 
4195 25 Mar 08 nicklas 429       <ulink url="http://java.sun.com/javase/6/docs/api/java/lang/Thread.html"
5448 19 Oct 10 nicklas 430         ><classname>java.lang.Thread</classname></ulink> class. The
5448 19 Oct 10 nicklas 431       priorities are not handled by the slot managers, but by the job
5448 19 Oct 10 nicklas 432       agent core and apply to all job agents, no matter which slot manager
5448 19 Oct 10 nicklas 433       that is selected.
3363 22 May 07 nicklas 434     </para>
3363 22 May 07 nicklas 435       
5448 19 Oct 10 nicklas 436       <informaltable frame="all" align="center">
5448 19 Oct 10 nicklas 437       <tgroup cols="3">
5448 19 Oct 10 nicklas 438         <colspec colname="property" />
5448 19 Oct 10 nicklas 439         <colspec colname="default" align="center"/>
5448 19 Oct 10 nicklas 440         <colspec colname="time" />
5448 19 Oct 10 nicklas 441         <thead>
5448 19 Oct 10 nicklas 442           <row>
5448 19 Oct 10 nicklas 443             <entry>Property</entry>
5448 19 Oct 10 nicklas 444             <entry>Default value</entry>
5448 19 Oct 10 nicklas 445             <entry>Estimated execution time</entry>
5448 19 Oct 10 nicklas 446           </row>
5448 19 Oct 10 nicklas 447         </thead>
5448 19 Oct 10 nicklas 448         
5448 19 Oct 10 nicklas 449         <tbody>
5448 19 Oct 10 nicklas 450           <row>
5448 19 Oct 10 nicklas 451             <entry>agent.shortest.slots</entry>
5448 19 Oct 10 nicklas 452             <entry>1</entry>
5448 19 Oct 10 nicklas 453             <entry morerows="1">&lt; 1 minute</entry>
5448 19 Oct 10 nicklas 454           </row>
5448 19 Oct 10 nicklas 455           <row>
5448 19 Oct 10 nicklas 456             <entry>agent.shortest.priority</entry>
5448 19 Oct 10 nicklas 457             <entry>4</entry>
5448 19 Oct 10 nicklas 458           </row>
5448 19 Oct 10 nicklas 459           <row>
5448 19 Oct 10 nicklas 460             <entry>agent.short.slots</entry>
5448 19 Oct 10 nicklas 461             <entry>1</entry>
5448 19 Oct 10 nicklas 462             <entry morerows="1">&lt; 10 minutes</entry>
5448 19 Oct 10 nicklas 463           </row>
5448 19 Oct 10 nicklas 464           <row>
5448 19 Oct 10 nicklas 465             <entry>agent.short.priority</entry>
5448 19 Oct 10 nicklas 466             <entry>4</entry>
5448 19 Oct 10 nicklas 467           </row>
5448 19 Oct 10 nicklas 468           <row>
5448 19 Oct 10 nicklas 469             <entry>agent.medium.slots</entry>
5448 19 Oct 10 nicklas 470             <entry>2</entry>
5448 19 Oct 10 nicklas 471             <entry morerows="1">&lt; 1 hour</entry>
5448 19 Oct 10 nicklas 472           </row>
5448 19 Oct 10 nicklas 473           <row>
5448 19 Oct 10 nicklas 474             <entry>agent.medium.priority</entry>
5448 19 Oct 10 nicklas 475             <entry>3</entry>
5448 19 Oct 10 nicklas 476           </row>
5448 19 Oct 10 nicklas 477           <row>
5448 19 Oct 10 nicklas 478             <entry>agent.long.slots</entry>
5448 19 Oct 10 nicklas 479             <entry>2</entry>
5448 19 Oct 10 nicklas 480             <entry morerows="1">&gt; 1 hour</entry>
5448 19 Oct 10 nicklas 481           </row>
5448 19 Oct 10 nicklas 482           <row>
5448 19 Oct 10 nicklas 483             <entry>agent.long.priority</entry>
5448 19 Oct 10 nicklas 484             <entry>3</entry>
5448 19 Oct 10 nicklas 485           </row>
5448 19 Oct 10 nicklas 486         </tbody>
5448 19 Oct 10 nicklas 487       </tgroup>
5448 19 Oct 10 nicklas 488       </informaltable>
3363 22 May 07 nicklas 489
3363 22 May 07 nicklas 490   </simplesect>
3363 22 May 07 nicklas 491
3363 22 May 07 nicklas 492
3334 14 May 07 nicklas 493 </appendix>
3334 14 May 07 nicklas 494