﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="scheduler.xsl" type="text/xsl"?>

<!--$Id: command_line.xml 4235 2006-04-04 09:58:06Z jz $-->

<command_line	program  ="scheduler"
							title    ="Command Line Options" 
							base_dir ="" 
              author   = "$Author: ur $"
              date     = "$Date: 2009-02-25 13:52:05 +0100 (Mi, 25 Feb 2009) $">

    <command_options name="run" title="Starting the Job Scheduler">
<!--<command_options name="run" title="Start des Job Schedulers">-->
        <description>
            <p>
                The <code>scheduler</code> file name must be completely and absolutely specified 
                and be given an "<code>.exe</code>" ending on Windows systems.
                This is because the Job Scheduler requires the complete file name in order to be able to start either a 
                job or itself.
            <!--Der Programmdateiname <code>scheduler</code> muss absolut und vollständig angegeben werden.
                Für Windows muss die Endung "<code>.exe</code>" angegeben werden, da der Job Scheduler den vollständigen Dateinamen benötigt, um einen Job oder sich selbst neu zu starten.-->
            </p>
        </description>

		<command_option name="config" setting="config">
			<description>
				<p>
                    The "<code>-config=</code>" prefix before file names can be omitted.
                <!--"<code>-config=</code>" vor dem Dateinamen kann weggelassen werden.-->
				</p>
                <p>
                    This option specifies the configuration file or configuration directory.
                    Should a configuration directory be specified, 
                    then the Job Scheduler will expect to find the configuration file in the configuration directory,
                    under the name <code>scheduler.xml</code>.
                <!--Die Option gibt die Konfigurationsdatei oder das Konfigurationsverzeichnis an.
                    Im letzteren Fall erwartet der Scheduler die Konfigurationsdatei im
                    Konfigurationsverzeichnis unter dem Namen <code>scheduler.xml</code>.-->
                </p>
			</description>
		</command_option>

    <command_option name="log" setting="scheduler_log"/>
    
		<command_option name="log-dir" setting="log_dir"/>

<!--<command_option name="V" title="Show version number">-->
<!--<command_option name="V" title="Versionsnummer zeigen">-->
	<!--<description>
				<p>
                    Causes the Job Scheduler to display the version number and date on starting.-->
                <!--Lässt den Scheduler beim Start Versionsnummer und Versionsdatum ausgeben.-->
		<!--</p>
			</description>
		</command_option>-->

		<command_option name="id" setting="option_id"/>

    <command_option name="cd" setting="directory"/>

<!--<command_option name="cd" type="Directory" title="Working directory">-->
<!--<command_option name="cd" type="verzeichnis" title="Arbeitsverzeichnis">-->
	<!--<description>
				<scheduler_keyword keyword="Working Directory"/>-->
		<!--<scheduler_keyword keyword="Arbeitsverzeichnis"/>-->
		<!--<scheduler_keyword keyword="Directory"/>-->
		<!--<scheduler_keyword keyword="Verzeichnis"/>-->
		<!--<p>
                    Changes the working directory.-->
                <!--Ändert das Arbeitsverzeichnis.-->
		<!--</p>
			</description>
		</command_option>-->

		<command_option name="pid-file" type="File Name" title="File name for process ID">
<!--<command_option name="pid-file" type="dateiname" title="Dateiname für Prozess-ID">-->
			<description>
				<p>
                    On Unix systems: 
                    the Job Scheduler writes its process ID (PID) in this file.
                    This file is deleted by the Job Scheduler on stopping.
                <!--Für Unix: 
                    In diese Datei schreibt der Job Scheduler seine PID.
                    Beim Beenden löscht der Job Scheduler die Datei.-->
				</p>
			</description>
		</command_option>

		<command_option name="log-level" setting="log_level"/>

		<command_option name="param" setting="param"/>

		<command_option name="include-path" setting="include_path"/>

		<command_option name="port" setting="port">
            <description>
                <p>
                    See also <scheduler_option name="tcp-port"/>
                    and <scheduler_option name="udp-port"/>.
                <!--Siehe auch <scheduler_option name="tcp-port"/> und
                    und <scheduler_option name="udp-port"/>.-->
                </p>
                <p>
                   Note that if a port is blocked, the Job Scheduler will attempt to access it for two minutes before terminating itself.
               <!--Wenn der Port blockiert ist, versucht der Job Scheduler zwei Minute lang, ihn zu belegen, bevor er aufgibt.-->
                </p>
            </description>
        </command_option>
        
    <command_option name="tcp-port" setting="tcp_port">
            <description>
                <p>
                    See also <scheduler_option name="port"/>.
                <!--Siehe auch <scheduler_option name="port"/>.-->
                </p>
            </description>
        </command_option>
        
    <command_option name="udp-port" setting="udp_port">
            <description>
                <p>
                    See also <scheduler_option name="port"/>.
                <!--Siehe auch <scheduler_option name="port"/>.-->
                </p>
            </description>
        </command_option>

    <command_option name="ip-address"   setting="ip_address"/>

    <command_option name="reuse-port" title="Reuse of the TCP and UDP ports">
<!--<command_option name="reuse-port" title="TCP- und UDP-Port wiederverwenden">-->
			<description>
                <p>
                    This option should only be used in exceptional situations, 
                    as it switches off the test 
                    whether or not a port has been set free by the operating system.
                <!--Die Option soll nur in Ausnahmefällen benutzt werden, sie schaltet
                    die Prüfung ab, ob ein Port vom Betriebssystem freigegeben ist.
-->
                </p>
								<p>
                    Calls <code>setsockopt(socket,SOL_SOCKET,SO_REUSEADDR,true)</code>.
                <!--Ruft <code>setsockopt(socket,SOL_SOCKET,SO_REUSEADDR,true)</code>.-->
								</p>
                <p>
								    This option should only be used <span style="text-decoration: underline">in an emergency</span>,
								    should a port be permanently blocked by the operating system 
								    although it is no longer used by an application.
								    This can happen with Windows XP, when an application is terminated by a debugger and
								    UNIX can take up to a minute to release a port.
		    				<!--Die Option sollte <span style="text-decoration: underline">nur im Notfall</span> benutzt werden,
		    						falls das Betriebssystem den Port dauerhaft sperrt,
		    						obwohl keine Anwendung ihn mehr belegt.
		    						Das kann unter Windows XP passieren, wenn die Anwendung mit einem Debugger abgebrochen wird.
		    						Unix kann ggf. fast eine Minute benötigen, um einen Port freizugeben..-->
                </p>
                <p>
								    In some situations the Job Scheduler cannot be reached with <code>-reuse-port</code> via TCP or UDP, 
								    when the port is being used by other applications. The use of <code>-reuse-port</code> is not recommended.
								<!--U.U. ist der Job Scheduler mit <code>-reuse-port</code> über TCP oder UDP nicht erreichbar,
								    weil statt dessen der Port einer anderen Anwendung angesprochen wird.-->
                </p>
			</description>
		</command_option>


<!--<command_option name="show-dtd" title="Writes the DTD">-->
			<!--<command_option name="show-dtd" title="schreibt die DTD nach stdout">-->
	<!--<description>
								<p>
                    The XML commands and the XML configuration must comply with the Job Scheduler DTD.-->
                <!--Der Scheduler hat eine DTD, 
                    der die XML-Kommandos und die XML-Konfiguration entsprechen müssen.-->
						<!--</p>
								<p>
                    See the <a href="xml/scheduler.xsd" type="text/plain" charset="utf-8">Job Scheduler XML Schema</a>.-->
                <!--Siehe <a href="xml/scheduler.xsd" type="text/plain" charset="utf-8">XML-Schema des Schedulers</a>.-->
						<!--</p>
                <p>
                    Example: -->
                <!--Beispiel: -->
            <!--</p>
                
                <pre><code>scheduler -show-xml-schema | less</code></pre>
			</description>
		</command_option>-->


		<command_option name="cmd" type="xmlcommand" title="Immediately executed commands"> 
<!--<command_option name="cmd" type="xmlkommando" title="Sofort auszuführendes Kommando">-->
			<description>
				<p>
                    The Job Scheduler executes xml commands such as <scheduler_element name="start_job"/> immediately on starting.
                <!--Der Job Scheduler führt beim Start das XML-Kommando aus.
                    Das kann z.B. ein <scheduler_element name="start_job"/> sein.-->
				</p>
			</description>
		</command_option>


<!--<command_option name="send-cmd" type="xmlcommand" title="Commands for another Job Scheduler">-->
<!--<command_option name="send-cmd" type="xmlkommando" title="Anderem Scheduler zu schickendes Kommando">-->
	<!--<description>
				<p>
                    This option does not start the scheduler - instead it sends an XML command to 
                    another Job Scheduler with the same option <code>-tcp-port=</code> 
                    Both schedulers must be installed on the same computer.
                    An example XML command would be 
                    <scheduler_element name="terminate"/> : <code>-send-cmd="&lt;terminate/>"</code>-->
					<!--Mit dieser Option startet der Scheduler nicht, 
                    sondern schickt einem anderen Scheduler mit gleicher Option <code>-tcp-port=</code>
                    auf demselben Rechner das XML-Kommando.
                    Das kann z.B. ein <scheduler_element name="terminate"/> sein: <code>-send-cmd="&lt;terminate/>"</code>-->
		<!--</p>
			</description>
		</command_option>-->


		<command_option name="ini" type="file name" title="Alternative factory.ini file">
<!--<command_option name="ini" type="dateiname" title="Anderer Pfad/ Name für Datei factory.ini">-->
			<description>
				<p>
            Specifies the Path/ Name for an alternative <a href="factory_ini.xml">
						<code>factory.ini</code>
					</a> file.
        <!--Wählt eine andere Datei für die Datei <a href="factory_ini.xml"><code>factory.ini</code></a> aus.-->
				</p>
				<p>
                    When references in this documentation are made to the <code>factory.ini</code> file, 
                    it should be clear that the value given in this option is meant.
                <!--In dieser Dokumentation ist dann mit der Datei <code>factory.ini</code> die hier eingestellte gemeint.-->
				</p>
				<p>
                    See also <scheduler_method class="Spooler" property="ini_path"/>
					<!--Siehe auch <scheduler_method class="Spooler" property="ini_path"/>-->
				</p>
			</description>
		</command_option>


		<command_option name="sos.ini" type="file name" title="Alternative sos.ini file">
<!--<command_option name="sos.ini" type="dateiname" title="Anderer Pfad/ Name für Datei sos.ini">-->
			<description>
				<p>
                    Specifies the Path/ Name for an alternative <a href="sos_ini.xml">
										<code>sos.ini</code>
										</a> global configuration file.
                    Note that this file contains the Job Scheduler license key.
                <!--Wählt eine andere Datei für globale Konfiguration <a href="sos_ini.xml"><code>sos.ini</code></a> aus.
                    Diese Datei enthält u.a. den Lizenzschlüssel.-->
				</p>
			</description>
		</command_option>


		<command_option name="program-file" type="file name" title="Job Scheduler file name">
			<!--<command_option name="program-file" type="dateiname" title="Dateiname des Schedulers">-->
			<description>
				<p>
                    This option is used when the Job Scheduler is called from a Java class file 
                    (for example, when debugging) and jobs are to be started in their own processes.
                <!--Beim Aufruf des Job Schedulers aus einer Java-Klasse heraus (zum Debuggen)
                    geben Sie hier den Programmdateinamen an, 
                    wenn der Job Scheduler Jobs in eigenen Prozessen starten können soll.-->
				</p>
			</description>
		</command_option>


		<command_option name="service" title="Start as a daemon">
<!--<command_option name="service" title="Als Daemon starten">-->
			<description>
				<p>
                    The Job Scheduler runs in the background on Unix systems , 
                    which means that output cannot be written to the terminal.
                <!--Unter Unix versetzt sich der Job Scheduler in den Hintergrund und trennt sich vom Terminal.-->
				</p>
        <p>
                    Under Unix the Job Scheduler stdin, stdout und stderr und
                    directs the output to the <code>scheduler.out</code> file,
                    which must remain writable.
                <!--Unter Unix schließt der Scheduler stdin, stdout und stderr und
                    leitet die Ausgaben in die Datei <code>scheduler.out</code>,
                    die beschreibbar sein muss.-->
        </p>
			</description>
		</command_option>


<!-- funktioniert nicht 2005-01-22
        <command_option name="renew-service" type="name" title="Windows-Dienst entfernen und erneut installieren">
            <description>
                <scheduler_keyword keyword="Service"/>
                <scheduler_keyword keyword="Dienst"/>
                <p>
                    <code>-renew-service=</code><i>name</i> ist dasselbe wie
                    <code>-renew-service -service-name=</code><i>name</i>.
                </p>
            </description>
        </command_option>
-->

        <command_option name="validate-xml" title="Validate XML Ddocuments against an embedded schema">
    <!--<command_option name="validate-xml" title="XML-Dokumente gegen eingebettetes Schema validieren">-->
            <description>
                <p>
                    <code>-validate-xml-</code> switches the validation off 
                    (should the schema have errors).
                <!--<code>-validate-xml-</code> schaltet die Validierung ab 
                    (für den Fall, dass das Schema fehlerhaft ist).-->
                </p>
                <p>
                    See <scheduler_option name="show-xml-schema"/>.
                <!--Siehe <scheduler_option name="show-xml-schema"/>.-->
                </p>
            </description>
        </command_option>


        <command_option name="env" multiple="yes" type="name=value" title="Set Environment Variables">
    <!--<command_option name="env" multiple="yes" type="name=value" title="Umgebungsvariable setzen">-->
            <description>
                <p>
                    <code>-env=NAME=VALUE</code> sets the NAME environment variable.
                <!--<code>-env=NAME=VALUE</code> setzt die Umgebungsvariable NAME.-->
                </p>
            </description>
            <messages>
                <message level="error" code="SCHEDULER-318"/>
            </messages>
        </command_option>


        <command_option name="exclusive" title="Starts the Job Scheduler for Exclusive Service">
    <!--<command_option name="exclusive" title="Startet den Job Scheduler für die exklusive Ausführung">-->
            <description>
                <p>
                    Requires use of a database - 
                    see <scheduler_ini_entry file="factory.ini" section="spooler" entry="db"/>.
                <!--Voraussetzung ist Datenbankbetrieb 
                    (<scheduler_ini_entry file="factory.ini" section="spooler" entry="db"/>).-->
                </p>
                <p>
                    More than one Job Scheduler with the same Scheduler-Id (<scheduler_option name="id"/>) 
                    and the same database can be started with <code>-exclusive</code>.
                    In this case, then only one Job Scheduler will become active.
                    It is only after this active Job Scheduler fails or is stopped 
                    (<scheduler_element name="terminate" attribute="shutdown" value="no"/>),
                    that another Job Scheduler will become active and take over operation.
                    The takeover takes approximately one minute.
                <!--Mehrere Job Scheduler mit derselben Scheduler-Id (<scheduler_option name="id"/>) und derselben Datenbank
                    können mit <code>-exclusive</code> gestartet werden, wobei nur einer aktiv wird.
                    Erst wenn der aktive Job Scheduler ausfällt oder einzeln beendet wird 
                    (<scheduler_element name="terminate" attribute="continue_exclusive_operation" value="yes"/>),
                    wird ein anderer Job Scheduler aktiv.
                    Die Übernahme kann einige Minuten dauern.-->
                </p>
                <p>
                    Warning: 
                    All participating Job Schedulers must be started <code>-exclusive</code> or 
                    <scheduler_option name="distributed-orders"/>.
                    When one Job Scheduler is started with and one without this setting,
                    then two Job Schedulers will run simultaneously,
                    which can lead to unexpected results.
                <!--Vorsicht: 
                    Alle beteiligten Job Scheduler müssen mit <code>-exclusive</code> oder 
                    <scheduler_option name="distributed-orders"/> 
                    gestartet werden.
                    Wenn ein Scheduler mit und einer ohne die Einstellung gestartet wird,
                    laufen zwei Scheduler gleichzeitig, was zu unerwarteten Ergebnissen führen kann.-->
                </p>
                <p>
                    See also <scheduler_option name="backup"/>.
                <!--Siehe auch <scheduler_option name="backup"/>.-->
                </p>
            </description>

            <messages>
                <message level="error" code="SCHEDULER-357"/>
                <message level="error" code="SCHEDULER-358"/>
                <message level="error" code="SCHEDULER-359"/>
                <message level="error" code="SCHEDULER-362"/>
                <message level="error" code="SCHEDULER-365"/>
                <message level="error" code="SCHEDULER-367"/>
                <message level="error" code="SCHEDULER-371"/>
                <message level="error" code="SCHEDULER-372"/>
                <message level="error" code="SCHEDULER-377"/>
                <message level="error" code="SCHEDULER-381"/>
                <message level="error" code="SCHEDULER-386"/>
                <message level="info"  code="SCHEDULER-805"/>
                <message level="info"  code="SCHEDULER-807"/>
                <!--message level="info"  code="SCHEDULER-809"/-->
                <message level="info"  code="SCHEDULER-811"/>
                <message level="info"  code="SCHEDULER-814"/>
                <!--message level="info"  code="SCHEDULER-818"/-->
                <message level="info"  code="SCHEDULER-819"/>
                <message level="info"  code="SCHEDULER-820"/>
                <message level="info"  code="SCHEDULER-821"/>
                <message level="info"  code="SCHEDULER-822"/>
                <message level="warn"  code="SCHEDULER-823"/>
                <!--message level="info"  code="SCHEDULER-824"/-->
                <message level="info"  code="SCHEDULER-825"/>
                <message level="info"  code="SCHEDULER-826"/>
                <message level="warn"  code="SCHEDULER-827"/>
                <!--message level="info"  code="SCHEDULER-828"/-->
                <message level="info"  code="SCHEDULER-831"/>
                <message level="info"  code="SCHEDULER-832"/>
                <message level="info"  code="SCHEDULER-833"/>
                <message level="info"  code="SCHEDULER-834"/>
                <message level="info"  code="SCHEDULER-835"/>
                <message level="warn"  code="SCHEDULER-836"/>
                <message level="warn"  code="SCHEDULER-837"/>
                <message level="info"  code="SCHEDULER-838"/>
                <message level="warn"  code="SCHEDULER-994"/>
                <message level="info"  code="SCHEDULER-995"/>
                <message level="warn"  code="SCHEDULER-996"/>
                <message level="warn"  code="SCHEDULER-997"/>
                <!--message level="info"  code="SCHEDULER-998"/-->
            </messages>
        </command_option>


        <command_option name="backup" title="Starts a Job Scheduler as a Backup Scheduler">
    <!--<command_option name="backup" title="Startet den Job Scheduler als Backup-Scheduler">-->
            <description>
                <p>
                    Only possible in combination with <scheduler_option name="exclusive"/>.
                <!--Nur mit <scheduler_option name="exclusive"/> möglich.-->
                </p>
                <p>
                    A backup Job Scheduler only takes over operation - it cannot start a new operation.
                    This means that after
                    <scheduler_element name="terminate" attribute="continue_exclusive_operation" value="no"/>
                    the backup Job Scheduler does not start, 
                    but waits for another Job Scheduler to start operation.
                <!--Ein Backup Job Scheduler übernimmt den Betrieb nur, beginnt aber keinen neuen Betrieb.
                    D.h. nach <scheduler_element name="terminate" attribute="continue_exclusive_operation" value="no"/>
                    läuft er nicht an, sondern wartet auf einen anderen Job Scheduler, der den Betrieb startet.-->
                </p>
                <p>
                    <code>-backup</code> is allocated its own service name when used together with
                    <scheduler_option name="install-service"/> and <scheduler_option name="remove-service"/>.
                    This means that the backup Job Scheduler can be run on the same computer as the active Job Scheduler
                    as its own service.
                <!--Zusammem mit <scheduler_option name="install-service"/> und <scheduler_option name="remove-service"/>
                    führt <code>-backup</code> zu einem eigenen Dienstenamen,
                    so dass der Backup Job Scheduler als eigener Dienst auf demselben Rechner installiert werden kann.-->
                </p>
                <p>
                    The name of the <scheduler_a href="protokolle.xml">main log file</scheduler_a> 
                    contains the "<code>_backup</code>" suffix.
                <!--Der Dateiname des <scheduler_a href="protokolle.xml">Hauptprotokolls</scheduler_a>
                    erhält den Zusatz "<code>_backup</code>".-->
                </p>
            </description>
        </command_option>


        <command_option name="backup-precedence" type="integer" initial="1" title="Priority Amongst Backup Job Schedulers">
    <!--<command_option name="backup-precedence" type="integer" initial="1" title="Vorrang unter den Backup Job Schedulern">-->
            <description>
                <p>
                    Only possible in combination with <scheduler_option name="exclusive"/>.
                <!--Nur mit <scheduler_option name="exclusive"/> möglich.-->
                </p>
                <p>
                    When more than one inactive backup Job Schedulers are available to replace a failed Job Scheduler, 
                    (<scheduler_option name="exclusive"/>), 
                    then operation is taken over by the Job Scheduler allocated the lowest 
                     <scheduler_option name="backup-precedence"/> value.
                <!--Wenn mehrere inaktive Backup Job Scheduler einen ausgefallenen Job Scheduler 
                    (<scheduler_option name="exclusive"/>)
                    ersetzen können, 
                    übernimmt der mit dem kleinsten Wert von <scheduler_option name="backup-precedence"/>.-->
                </p>
                <p>
                    Note that it is possible for another Job Scheduler as that dictated by the highest backup-precedence to take over operation,
                    should the backup Job Schedulers run on different computers and should the clocks of these computers not be synchronized, 
                <!--Wenn die Uhren nicht gleichlaufen, kann ein anderer Job Scheduler als der mit dem vorderen Rang den Betrieb übernehmen.-->
                </p>
                <p>
                    The default value is 1, when <scheduler_option name="backup"/> is set, otherwise it is 0.
                <!--Mit der Option <scheduler_option name="backup"/> ist die Voreinstellung 1, sonst 0.-->
                </p>
            </description>
        </command_option>


        <command_option name="distributed-orders" title="Distributed Orders">
    <!--<command_option name="distributed-orders" title="Verteilter Aufträge">-->
            <description>
                <p>
                    Requires use of a database
                    (<scheduler_ini_file file="factory.ini" section="spooler" entry="db"/>).
                    More than one Job Schedulers can share the execution of orders,
                    when they are all started under the same Scheduler-Id 
                    (<scheduler_option name="id"/>), use the same database
                    and the same configuration.
                <!--Voraussetzung ist Datenbankbetrieb
                    (<scheduler_ini_file file="factory.ini" section="spooler" entry="db"/>).
                    Mehrere Job Scheduler mit derselben Scheduler-Id (<scheduler_option name="id"/>), derselben Datenbank
                    und derselben Konfiguration können gestartet werden,
                    die sich die Ausführung der Aufträge teilen.-->
                </p>
                <p>
                    <scheduler_element name="job_chain" attribute="distributed" value="yes"/>
                    allows a job chain to be used for distributed operation.
                <!--Mit <scheduler_element name="job_chain" attribute="distributed" value="yes"/>
                    lassen sie eine Job-Kette für den verteilten Betrieb zu.-->
            <!--</p>
                <p>
                    These Job Schedulers will only carry out order driven jobs (<scheduler_element name="job" attribute="order" value="yes"/>),
                    unless exclusive operation is set using <scheduler_option name="exclusive"/>.
                    In this latter situation, only the Job Scheduler with exclusive rights, 
                    will be able to execute jobs which are not order driven.-->
                <!--Der Job Scheduler führt nur auftragsgesteuerte Jobs aus (<scheduler_element name="job" attribute="order" value="yes"/>),
                    es sei denn, der exklusive Betrieb mit <scheduler_option name="exclusive"/> ist eingeschaltet.
                    Nur der Job Scheduler, der der die Exklusivität hat, führt auch nicht auftragsgesteuerte Jobs aus.-->
                </p>
            </description>
            <messages>
                <message level="error" code="SCHEDULER-357"/>
                <message level="error" code="SCHEDULER-358"/>
                <message level="error" code="SCHEDULER-361"/>
            <!--<message level="error" code="SCHEDULER-366"/>-->
                <message level="error" code="SCHEDULER-370"/>
                <message level="error" code="SCHEDULER-373"/>
                <message level="error" code="SCHEDULER-375"/>
            <!--<message level="error" code="SCHEDULER-376"/>-->
                <message level="error" code="SCHEDULER-378"/>
                <message level="error" code="SCHEDULER-379"/>
                <message level="error" code="SCHEDULER-380"/>
            <!--<message level="error" code="SCHEDULER-383"/>-->
                <message level="error" code="SCHEDULER-384"/>
                <message level="error" code="SCHEDULER-385"/>
                <message level="warn"  code="SCHEDULER-812"/>
                <message level="info"  code="SCHEDULER-813"/>
                <message level="info"  code="SCHEDULER-815"/>
                <message level="warn"  code="SCHEDULER-816"/>
                <message level="warn"  code="SCHEDULER-817"/>
                <message level="info"  code="SCHEDULER-829"/>
                <message level="info"  code="SCHEDULER-830"/>
                <message level="info"  code="SCHEDULER-879"/>
            </messages>
        </command_option>


        <command_option name="configuration-directory" title="Configuration directory">
    <!--<command_option name="configuraton-directory" title="Konfigurationsverzeichnis">-->
            <description>
                <p>
                    The default directory is the <code>live</code> directory, 
                    which is specified in the (<scheduler_option name="config"/>).
                <!--Voreingestellt ist das Verzeichnis <code>live</code> im Verzeichnis
                    der Konfigurationsdatei (<scheduler_option name="config"/>).-->
                </p>
                <p>
                    The Job Scheduler looks in this directory for 
                    jobs, job chains, permanent orders, process classes and locks.
                <!--Diesem Verzeichnis entnimmt der Job Scheduler 
                    Jobs, Job-Ketten, Daueraufträge, Prozessklassen und Sperren.-->
                </p>
            </description>
        </command_option>

        <example>
            <pre>c:\bin\scheduler.exe c:\scheduler\config.xml -log-dir=c:\scheduler\logs</pre>
        </example>


    </command_options>


    <command_options name="install_service" title="Installation of a Windows Service">
<!--<command_options name="install_service" title="Installation eines Windows-Dienstes">-->
		<command_option name="install-service" type="name" title="Install as a Windows service">
<!--<command_option name="install-service" type="name" title="Als Windows-Dienst installieren">-->
			<description>
				<scheduler_keyword keyword="Service"/>
		<!--<scheduler_keyword keyword="Dienst"/>-->
								<p>
                    The Job Scheduler is not started by this option but installed as a Windows service.
                    In this case the following command line options may be specified:
                <!--Die Option startet nicht den Job Scheduler, 
                    sondern installiert ihn als Windows-Dienst.
                    Dabei werden folgende Optionen aus der Kommandozeile übernommen:-->
								</p>
                <p>
                    <scheduler_option name="cd"/>
                    <br/>
                    <scheduler_option name="config"/>
                    <br/>
                    <scheduler_option name="id"/>
                    <br/>
                    <scheduler_option name="ini"/>
                    <br/>
                    <scheduler_option name="log"/>
                    <br/>
                    <scheduler_option name="pid-file"/>
                    <br/>
                    <scheduler_option name="sos.ini"/>
                    <br/>
                    <scheduler_option name="env"/>
                    <br/>
                </p>
                <p>
                    Note that
                    <code>-install-service=</code><i>name</i> is the same as
                <!--<code>-install-service=</code><i>name</i> ist dasselbe wie-->
                    <code>-install-service -service-name=</code><i>name</i>.
                </p>
			</description>
		</command_option>

		<command_option name="remove-service" type="name" title="Remove a Windows service">
<!--<command_option name="remove-service" type="name" title="Windows-Dienst entfernen">-->
			<description>
				<scheduler_keyword keyword="Service"/>
				<!--<scheduler_keyword keyword="Dienst"/>-->
				<p>
                    Removes a service which was previously installed using <code>-install-service</code>.
                <!--Entfernt einen zuvor mit <code>-install-service</code> installierten Dienst.-->
				</p>
				<p>
					<code>-remove-service=</code>
					<i>name</i> is the same as
                <!--<code>-remove-service=</code><i>name</i> ist dasselbe wie-->
					<code>-remove-service -service-name=</code>
					<i>name</i>.
                </p>
			</description>
		</command_option>


		<command_option name="service-name" type="name" initial="sos_scheduler" title="Windows service internal name">
<!--<command_option name="service-name" type="name" initial="sos_scheduler" title="Interner Name des Windows-Dienstes">-->
			<description>
				<p>
                    Only used together with <code>-install-service</code> or <code>-remove-service</code>.
                    When this option is missing but <code>-id=</code>is specified, 
                    then the Job Scheduler uses the name <code>sos_scheduler_</code>
                    <i>scheduler_id</i>.
                    If <scheduler_option name="backup"/> has been set, then this option adds
                    <code>_backup</code>.
                <!--Nur in Verbindung mit <code>-install-service</code> oder <code>-remove-service</code>.
                    Wenn diese Option fehlt und <code>-id=</code> angegeben ist,
                    verwendet der Job Scheduler den Namen <code>sos_scheduler_</code><i>scheduler_id</i>.
                    Bei <scheduler_option name="backup"/> fügt er <code>_backup</code> hinzu.-->
				</p>
			</description>
		</command_option>


		<command_option name="service-display" type="text" title="Windows service name">
<!--<command_option name="service-display" type="text" title="Angezeigter Name des Windows-Dienstes">-->
			<description>
				<p>
                    Only used in conjunction with the <code>-install-service</code>.
                    This name is shown by the Windows service controller.
                    It may contain spaces.
                    Should this option not be specified, the Job Scheduler creates a name from the service name 
                    (see <code>-service-name=</code>).
                <!--Nur in Verbindung mit <code>-install-service</code>.
                    Die Dienstesteuerung von Windows zeigt diesen Namen.
                    Er darf Leerzeichen enthalten.
                    Wenn die Option fehlt, erzeugt der Scheduler einen aus dem Dienstnamen (s. <code>-service-name=</code>).-->
				</p>
			</description>
		</command_option>


		<command_option name="service-descr" type="text" title="Windows service description">
<!--<command_option name="service-descr" type="text" title="Beschreibung des Windows-Dienstes">-->
			<description>
				<p>
                    Only used together with the <code>-install-service</code>.
                <!--Nur in Verbindung mit <code>-install-service</code>.-->
				</p>
			</description>
		</command_option>


		<command_option name="need-service" type="name" title="Service required by the Job Scheduler (Windows only)">
<!--<command_option name="need-service" type="name" title="Vom Scheduler vorausgesetzter Dienst">-->
			<description>
				<p>
                    This option specifies a service such as a database server which must be running before 
                    Windows starts the Job Scheduler.
                    This option must be used in conjunction with the <code>-install-service</code>.
                <!--In Verbindung mit <code>-install-service</code> können Sie hier einen anderen Dienst angegeben,
                    der laufen soll, bevor Windows den Job Scheduler Dienst startet.
                    Das kann z.B. ein Datenbank-Server sein.-->
				</p>
				<p>
                    This option can be repeated should the Job Scheduler require a number of services.
                <!--Diese Option kann wiederholt angegeben werden, wenn der Job Scheduler mehrere Dienste voraussetzt.-->
				</p>
			</description>
		</command_option>


    </command_options>


    <command_options name="start_job" title="Forwarding a Job to a Job Scheduler">
<!--<command_options name="start_job" title="Laufendem Job Scheduler einen Job übergeben">-->


        <command_option name="scheduler" type="host:port" title="The Job Scheduler TCP address">
    <!--<command_option name="scheduler" type="host:port" title="TCP-Adresse des Job Schedulers">-->
            <description>
                <p>
                    The name (or IP number) and port number of the Job Scheduler being addressed.
                <!--Rechnername (oder IP-Nummer) und Portnummer des anzusprechenden Job Schedulers.-->
                </p>
            </description>
        </command_option>


        <command_option name="log" setting="scheduler_log" reference="yes"/>


        <command_option name="process-class" type="name">
            <description>
                <p>
                    The name of the temporary job process class -,
                    see <scheduler_element name="job" attribute="process_class"/>.
                <!--Name der Prozessklasse für den temporären Job,
                    siehe <scheduler_element name="job" attribute="process_class"/>.-->
                </p>
            </description>
        </command_option>


        <command_option name="language" type="script_language" initial="shell" title="The Job Script language">
    <!--<command_option name="language" type="script_language" initial="shell" title="Skriptsprache des Jobs">-->
            <description>
                <p>
                    Script language,
                    see <scheduler_element name="script" attribute="language"/>.
                <!--Skriptsprache,
                    siehe <scheduler_element name="script" attribute="language"/>.-->
                </p>
            </description>
        </command_option>


        <command_option name="at" type="yyyy-mm-dd HH:MM" initial="now" title="Start time">
    <!--<command_option name="at" type="yyyy-mm-dd HH:MM" initial="now" title="Startzeitpunkt">-->
            <description>
                <p>
                    Start time - in the form "yyyy-mm-dd HH:MM[:SS]".
                    See <scheduler_element name="at" attribute="at"/>.
                <!--Startzeitpunkt in der Form "yyyy-mm-dd HH:MM[:SS]".
                    Siehe <scheduler_element name="at" attribute="at"/>.-->
                </p>
                <p>
                    A job will not be started after its start time has been passed.
                <!--Der Job wird nicht gestartet, wenn der Startzeitpunkt in der Vergangenheit liegt.-->
                </p>
                <p>
                    The Job Scheduler uses the current time from the computer on which it is running 
                    when, for example, starting jobs.
                <!--Maßgeblich ist die Uhr des Rechners, auf dem der Job Scheduler läuft.-->
                </p>
                <p>
                    <code>-at=now</code> is the default setting and causes a job to be started immediately.
                <!--<code>-at=now</code> ist voreingestellt und lässt den Job sofort starten.-->
                </p>
            </description>
        </command_option>


        <description>
            <p><!-- MANUAL UPDATE 06.04.11 -->
                A temporary job is forwarded to the target Job Scheduler,
                which is addressed using <scheduler_option name="scheduler" value="host:port"/>.
            <!--Dem mit <scheduler_option name="scheduler" value="host:port"/> adressierten Job Scheduler
                wird ein temporärer Job übergeben.-->
            </p>
            <p><!-- MANUAL UPDATE 06.04.11 -->
                This job only exists until the Job Scheduler is restarted.
            <!--Bei einem Neustart des Job Schedulers geht der Job verloren.-->
            </p>
        </description>


        <example>
            <pre>echo ls -l | scheduler -scheduler=localhost:4444 -at="2006-04-04 12:00"</pre>
        </example>


    </command_options>


    <command_options name="add_order" title="Forwarding an Order to a Running Job Scheduler">
<!--<command_options name="add_order" title="Laufendem Job Scheduler einen Auftrag übergeben">-->


        <command_option name="scheduler" reference="yes"/>


        <command_option name="log" reference="yes"/>


        <command_option name="job-chain" type="name" title="Job Chain">
    <!--<command_option name="job-chain" type="name" title="Job-Kette">-->
            <description>
                <p>
                    The name of the job chain on which an order is to be run -
                    see <scheduler_element name="add_order" attribute="job_chain"/>.
                <!--Name der Jobkette für den Auftrag,
                    siehe <scheduler_element name="add_order" attribute="job_chain"/>.-->
                </p>
            </description>
        </command_option>


        <command_option name="order-id" type="id" title="The Order ID">
            <description>
                <p>
                    The order identifier - 
                    see <scheduler_element name="add_order" attribute="id"/>.
                <!--Kennung des Auftrags,
                    siehe <scheduler_element name="add_order" attribute="id"/>.-->
                </p>
            </description>
        </command_option>

        <command_option name="title" type="text" title="The Order Title">
    <!--<command_option name="title" type="text" title="Titel des Auftrags">-->
            <description>
                <p>
                    An order can be given a title.
                    See <scheduler_element name="add_order" attribute="title"/>.
                <!--Dem Auftrag kann ein Titel gegeben werden.
                    Siehe <scheduler_element name="add_order" attribute="title"/>.-->
                </p>
            </description>
        </command_option>

        <description>
            <p>
                <scheduler_option name="scheduler" value="host:port"/> is used to define the Job Scheduler 
                which an order is forwarded to.
            <!--Dem mit <scheduler_option name="scheduler" value="host:port"/> adressierten Job Scheduler
                wird ein Auftrag übergeben.-->
            </p>
            <p>
                The order parameters (see <scheduler_method class="Order" property="payload"/>) 
                can be forwarded to the command line in the form:<i>name</i><code>=</code><i>value</i>.
            <!--Die Parameter des Auftrags (s. <scheduler_method class="Order" property="payload"/>) können
                an der Kommandozeile in der Form <i>name</i><code>=</code><i>value</i> übergeben werden.-->
            </p>
        </description>

        <example>
            <pre>scheduler -scheduler=localhost:4444 -job-chain=my_job_chain -order-id=123 city=Berlin phone="+4930 864790-0" </pre>
        </example>

    </command_options>


    <command_options name="send_cmd" title="Sending an XML Command to a Running Job Scheduler">
<!--<command_options name="send_cmd" title="XML-Kommando an laufenden Job Scheduler übergeben">-->


        <command_option name="tcp-port" reference="yes"/>


        <command_option name="send-cmd" type="xmlcommand" title="Sending a command to another Job Scheduler">
    <!--<command_option name="send-cmd" type="xmlkommando" title="Anderem Job Scheduler zu schickendes Kommando">-->
            <description>
                <p>
                    This option does not start a Job Scheduler but 
                    sends an XML command to another Job Scheduler on the same computer which has the same <code>-tcp-port=</code>
                    option.
                    This can be, for example, <scheduler_element name="terminate"/>: <code>-send-cmd="&lt;terminate/>"</code>
                <!--Mit dieser Option startet der Job Scheduler nicht,
                    sondern schickt einem anderen Job Scheduler mit gleicher Option <code>-tcp-port=</code>
                    auf demselben Rechner das XML-Kommando.
                    Das kann z.B. ein <scheduler_element name="terminate"/> sein: <code>-send-cmd="&lt;terminate/>"</code>-->
                </p>
                <p>
                    This command is sent to the IP address specified in the <scheduler_element name="config" attribute="ip_address"/> attribute
                    or, should this not have been set, to 127.0.0.1.
                <!--Das Kommando wird an die mit <scheduler_element name="config" attribute="ip_address"/> eingestellte IP-Adresse geschickt,
                    oder, wenn diese fehlt, an 127.0.0.1.-->
                </p>
            </description>
        </command_option>


    </command_options>


    <command_options name="kill" title="Stopping a Job Scheduler with 'kill'">
<!--<command_options name="kill" title="Laufenden Job Scheduler mit kill abbrechen">-->


        <command_option name="kill" title="Stopping a Running Job Scheduler using 'kill'">
    <!--<command_option name="kill" title="Laufenden Job Scheduler mit kill abbrechen">-->
            <description>
                <p>
                    Stops a Job Scheduler whose process is specified in the <scheduler_option name="pid-file"/> file.
                    The Scheduler is stopped using <code>kill&#160;-SIGKILL</code>.
                <!--Bricht den Scheduler mit <code>kill&#160;-SIGKILL</code> ab, 
                    dessen Prozess-ID in der mit <scheduler_option name="pid-file"/> angegebenen Datei steht.-->
                </p>
            </description>
        </command_option>


        <command_option name="kill" type="pid" title="Stopping a Running Job Scheduler with 'kill'">
    <!--<command_option name="kill" type="pid" title="Laufenden Job Scheduler mit kill abbrechen">-->
            <description>
                <p>
                    Stops the process with the specified PID using <code>kill&#160;-SIGKILL</code>.
                <!--Bricht den Prozess mit der PID mit <code>kill&#160;-SIGKILL</code> ab.-->
                </p>
            </description>
        </command_option>


        <command_option name="pid-file" type="dateiname" reference="yes"/>


        <example>
            <pre>scheduler -kill -pid-file=/home/scheduler/scheduler.pid</pre>
        </example>


    </command_options>


    <command_options name="xml_schema" title="Show the XML Schema">
<!--<command_options name="xml_schema" title="XML-Schema zeigen">-->


        <command_option name="show-xml-schema" title="Writes the XML schema to stdout">
    <!--<command_option name="show-xml-schema" title="schreibt das XML-Schema nach stdout">-->
            <description>
                <p>
                    The Job Scheduler comes with its own XML schema
                    which XML commands and the XML configuration must conform to.
                <!--Der Job Scheduler verfügt über ein eingabautes XML-Schema,
                    dem die XML-Kommandos und die XML-Konfiguration entsprechen müssen.-->
                </p>
                <p>
                    See the <a href="xml/scheduler.xsd" type="text/plain" charset="utf-8">Job Scheduler XML Schema</a>.
                <!--Siehe <a href="xml/scheduler.xsd" type="text/plain" charset="utf-8">XML-Schema des Job Schedulers</a>.-->
                </p>
            </description>
        </command_option>


    </command_options>


    <command_options name="classpath" title="Expand the Java Class Path">
<!--<command_options name="classpath" title="Java-Classpath expandieren">-->


        <command_option name="expand-classpath" title="Expand the Java Class Path">
    <!--<command_option name="expand-classpath" title="Java-Classpath expandieren">-->
            <description>
                <p>
                    Expands the Java Class Path, which is specified as a parameter.
                    This means that jokers are processed as 
                    <scheduler_ini_entry file="sos.ini" section="java" entry="class_path"/>.
                <!--Expandiert den als Parameter angegebenen Java-Classpath,
                    d.h. die Joker werden verarbeitet wie <scheduler_ini_entry file="sos.ini" section="java" entry="class_path"/>.-->
                </p>
                <p>
                    The Job Scheduler writes the results to <code>stdout</code>.
                    Unless otherwise specified in an option, 
                    the Job Scheduler will then terminate itself, 
                    without any other output.
                <!--Das Ergebnis schreibt der Job Scheduler nach <code>stdout</code>.
                    Wenn keine weiteren Optionen es verlangen, beendet sich der Job Scheduler ohne weitere Ausgaben.-->
                </p>
            </description>

            <example>
                <pre>export CLASSPATH="`scheduler -expand-classpath='/opt/java/lib/*.jar'`"</pre>
            </example>

        </command_option>


    </command_options>


    <command_options name="version" title="Show Version Number">
<!--<command_options name="version" title="Versionsnummer zeigen">-->


        <command_option name="V" title="Show Version Number">
    <!--<command_option name="V" title="Versionsnummer zeigen">-->
            <description>
                <p>
                    Causes the Job Scheduler to output its version number and date when starting.
                <!--Lässt den Job Scheduler beim Start Versionsnummer und Versionsdatum ausgeben.-->
                </p>
            </description>
        
        <command_option name="?" title="Show options">
    <!--<command_option name="?" title="Optionen zeigen">-->
            <description>
                <p>
                    Shows the command line options.
                <!--Zeigt die Kommandozeilenoptionen.-->
                </p>
            </description>
        </command_option>

        <command_option name="h" title="Show options">
    <!--<command_option name="h" title="Optionen zeigen">-->
            <description>
                <p>
                    Shows the command line options.
                <!--Zeigt die Kommandozeilenoptionen.-->
                </p>
            </description>
        </command_option>
        </command_option>


    </command_options>

    <description>
        <p>
            The Job Scheduler is started using a straightforward command.
        <!--Der Job Scheduler wird durch einen einfachen Aufruf gestartet.-->
        </p>
        <p>
            <pre>C:\>…<i>scheduler installation path</i>…\bin\scheduler.exe …\my_scheduler_configuration.xml …</pre>
            <pre>user@host:~>…<i>installation path</i>…/bin/scheduler …/my_scheduler_configuration.xml …</pre>
        </p>
        <p>
            Parameters for the command line operations described here
            and which are written to the right of the "=" 
            can be set in inverted commas ("")
            or in apostrophes / single quotes ('').
        <!--Die Parameter (rechts vom Gleichheitszeichen) 
            der hier beschriebenen Kommandozeilenoptionen
            können in Anführungszeichen oder in Apostrophe
            gesetzt werden-->
        </p>
        <p>
            The Job Scheduler installation program creates the start script - either <code>.\bin\jobscheduler.cmd</code> (Windows)
            or <code>./bin/jobscheduler.sh</code> (Unix), in which command line options and environment variables
            are already set. This script can be modified as required.
        <!--Das Installationsprogramm erzeugt das Startskript <code>.\bin\jobscheduler.cmd</code> (Windows)
            bzw. <code>./bin/jobscheduler.sh</code> (Unix), in dem Kommandozeilenoptionen und Umgebungsvariablen
            bereits gesetzt werden. Das Startskript kann bei Bedarf angepasst werden.-->
        </p>
        <p>
            Note that the start script and environment variables are described in the »Installation and Configuration« handbook.
        <!--Startskript und Umgebungsvariablen sind im Handbuch »Installation und Konfiguration« beschrieben.-->

            <!-- TODO Welche? Das sollte hier kurz aufgeführt werden und steht jetzt sicher ausführlich in einer Installationsbeschreibung.
                 Pfad für JVM, javac, libstdc++, libspidermonkey.so, libjavascript.so -->
        </p>
	</description>

		<scheduler_keyword keyword="Command Line"/>
<!--<scheduler_keyword keyword="Kommandozeile"/>-->
		<scheduler_keyword keyword="Options"/>
<!--<scheduler_keyword keyword="Optionen"/>-->

</command_line>
