Zschimmer GmbH Impressum und Kontakt

Job Scheduler     Erste Seite   –   Konfiguration in XML

  XML     API     Register


logo

XML-Element  <config>     (Konfiguration)

<config
port  = "number" Portnummer für TCP und UDP
tcp_port  = "number" HTTP- und TCP-Port für Kommandos an den Job Scheduler
udp_port  = "number" UDP-Port für Kommandos an den Job Scheduler
include_path  = "verzeichnis" Verzeichnispfad für <include>
mail_xslt_stylesheet  = "path" Pfad des XSLT-Stylesheets zur eMail-Aufbereitung
java_class_path  = "dateinamen" Java-Classpath
java_options  = "text" Java-Optionen
ip_address  = "ip_number" IP-Adresse der Schnittstelle für TCP und UDP
central_configuration_directory  = "path"
configuration_add_event  = "job_path" Job für neue Konfigurationsdatei
configuration_delete_event  = "job_path" Job für gelöschte Konfigurationsdatei
configuration_directory  = "path" Lokales Konfigurationsverzeichnis
configuration_modify_event  = "job_path" Job für geänderte Konfigurationsdatei
log_dir  = "verzeichnis" Verzeichnis der Protokolle
param  = "text" Zur freien Verwendung
spooler_id  = "spooler_id"
supervisor  = "host:port"
>
<base ...>
Basiskonfiguration
<params ...>
Scheduler-weite Parameter
<security ...>
Stellt den Zugriffsschutz ein
<cluster ...>
Einstellungen für den Cluster-Betrieb
<process_classes ...>
Jobs in eigenen Prozessen
<script ...>
Scheduler-Skript
<scheduler_script ...>
Scheduler-Skript
<http_server ...>
HTTP-Server
<holidays ...>
Feiertage
<jobs ...>
Jobs
<job_chains ...>
Jobketten
<commands ...>
XML-Kommandos

</config>

 

<config> enthält die Konfiguration des Schedulers, vor allem die Jobs. Das Element kann wiederholt werden, wenn das Attribut spooler_id wechselt. Wenn bei Scheduler-Start der Parameter -id= nicht angegeben worden ist, ist das erste <config>, sonst das mit gleichem Wert im Attribut spooler_id wirksam.

Verhalten mit <base>

Ergänzt ein Element <config> an der entsprechenden Stelle mit gleichem Attribut spooler_id= aus der Basiskonfiguration. Hier angegebene Attribute überschreiben die aus der Basiskonfiguration.

Eltern-Elemente

<spooler>  

  – Wurzelelement des XML-Dokuments

Attribute

central_configuration_directory="path" (Initialwert: remote)    

Voreingestellt ist das Verzeichnis remote im Verzeichnis der Konfigurationsdatei, siehe -config.

Das Verzeichnis ist für den Supervisor-Betrieb, bei dem andere Scheduler sich anmelden mit <config supervisor="…">. Das Verzeichnis kann für jeden Scheduler ein Unterverzeichnis mit Konfigurationsdateien enthalten, die der Supervisor zum Scheduler laufend repliziert.

Scheduler in einem Cluster (-exclusive oder -distributed-orders) erhalten ihre Konfiguration aus einem Verzeichnis mit dem Namen der Scheduler-ID (-id).

Scheduler, die nicht zu einem Cluster gehören, erhalten Ihre Konfiguration aus einem Verzeichnis, dessen Name aus Rechnername und TCP-Portnummer (<config tcp_port="…">) gebildet wird: hostname#tcpport.

Für beide Fälle gilt, dass zusätzlich Dateien aus dem Verzeichnis _all übertragen werden. Diese Dateien sind nachrangig.

Es ist möglich, für einen Scheduler kein Verzeichnis anzugeben. Dann wird nur die Konfiguration aus dem Verzeichnis _all, falls vorhanden, übertragen.

Meldungen

[warn] SCHEDULER-454 Remote configuration directories '(1) ' and '(2) ' refer to the same IP number 
[warn] SCHEDULER-457 Remote scheduler '(1) ' has not been registered 
[info] SCHEDULER-455 No configuration directory for '(1)

configuration_directory="path" (Initialwert: live)     Lokales Konfigurationsverzeichnis

Voreingestellt ist das Verzeichnis live im Verzeichnis der Konfigurationsdatei, siehe -config.

Diesem Verzeichnis entnimmt der Scheduler die Definitionen der Jobs usw., siehe »Konfiguration aus Hot Folders«.

Die Eigenschaft Spooler.configuration_directory liest die Einstellung

configuration_add_event="job_path" Job für neue Konfigurationsdatei

Der angegebene Job wird gestartet, wenn der Scheduler eine neue Datei aus dem Konfigurationsverzeichnis geladen hat.

Der Job wird gestartet, so wie es seine <run_time> zulässt. Er sollte in der Scheduler-Konfigurationsdatei definiert sein, damit er bekannt ist, wenn der Scheduler das Konfigurationsverzeichnis liest.

Die gestartete Task hat drei Parameter (erreichbar über spooler_task.params):

scheduler_live_event "add" ("modified" bzw. "delete" für die anderen Attribute)
scheduler_live_filepath Der Pfad der Datei
scheduler_live_filebase Der Name der Datei

Diese Task-Parameter stehen auch bereit als Umgebungsvariablen SCHEDULER_LIVE_EVENT, SCHEDULER_LIVE_FILEPATH und SCHEDULER_LIVE_FILEBASE.

configuration_modify_event="job_path" Job für geänderte Konfigurationsdatei

Der angegebene Job wird gestartet, wenn der Scheduler eine geänderte Datei aus dem Konfigurationsverzeichnis geladen hat.

Der Job wird gestartet, so wie es seine <run_time> zulässt. Er sollte in der Scheduler-Konfigurationsdatei definiert sein, damit er bekannt ist, wenn der Scheduler das Konfigurationsverzeichnis liest.

Parameter und Umgebungsvariablen sind gesetzt wie bei <config configuration_add_event="…">.

configuration_delete_event="job_path" Job für gelöschte Konfigurationsdatei

Der angegebene Job wird gestartet, wenn aus dem Konfigurationsverzeichnis eine im Scheduler geladene Datei entfernt worden ist.

Der Job wird gestartet, so wie es seine <run_time> zulässt. Er sollte in der Scheduler-Konfigurationsdatei definiert sein, damit er bekannt ist, wenn der Scheduler das Konfigurationsverzeichnis liest.

Parameter und Umgebungsvariablen sind gesetzt wie bei <config configuration_add_event="…">.

supervisor="host:port" 

Der Supervisor, bei dem sich dieser Scheduler an- und abmelden soll. Das geschieht asynchron und Fehler beeinträchtigen nicht den Betrieb.

Wenn der Haupt-Scheduler unter Windows läuft, sollten nicht mehr als vier Scheduler sich bei ihn anmelden.

Der Supervisor kann für den Scheduler die Konfiguration bestimmen, s. <config central_configuration_directory="…">. Die übernommene Konfiguration hält der Scheduler im Verzeichnis cache.

spooler_id="spooler_id" 

Das Element ist nur wirksam, wenn dieses Attribut gleich dem Parameter -id= vom Scheduler-Start ist, oder wenn beim Scheduler-Start der Parameter -id= nicht angegeben worden ist.

port="number" (Initialwert: 0)     Portnummer für TCP und UDP

Fasst die Einstellungen tcp_port und udp_port zusammen.

Siehe auch <config tcp_port="…">. und <config udp_port="…">.

Die Option -port hat Vorrang

Beispiel  

<config port="4444">

tcp_port="number" (Initialwert: 0)     HTTP- und TCP-Port für Kommandos an den Job Scheduler

Der Job Scheduler kann auf einem TCP-Port während des Betriebs Kommandos entgegennehmen. Hier kann eine Portnummer eingestellt werden. Die Portnummer ist eine Zahl zwischen 2048 (betriebssystemabhängig) und 65535. Die Voreinstellung lautet 4444.

Über denselben Port betreibt der Job Scheduler einen HTTP/HTML-Server, so dass er über einen Browser ansprechbar ist, z.B. http://localhost:4444.

Bei tcp_port=0 (voreingestellt) ist der Job Scheduler nicht über TCP oder HTTP ansprechbar. Damit kann die Steuerung des Job Schedulers per TCP-Kommando, z.B. über eine Web-Seite, unterbunden werden.

Siehe auch <config port="…">.

Die Eigenschaft Spooler.tcp_port liest die Einstellung
Die Option -tcp-port hat Vorrang

Beispiel  

<config tcp_port="4444">

udp_port="number" (Initialwert: 0)     UDP-Port für Kommandos an den Job Scheduler

Auch über UDP kann der Job Scheduler Kommandos entgegennehmen. Hier wird die Portnummer angegeben. Ein Kommando muss in eine Nachricht passen. Der Job Scheduler schickt keine Antwort.

Bei udp_port=0 (voreingestellt) öffnet der Job Scheduler keinen UDP-Port.

Siehe auch <config port="…">.

Die Eigenschaft Spooler.udp_port liest die Einstellung
Die Option -udp-port hat Vorrang

Beispiel  

<config udp_port="4444">

param="text" Zur freien Verwendung

Setzt spooler.param (Objekt spooler, Eigenschaft param). Zur freien Verwendung in den Skripten.

log_dir="verzeichnis" Verzeichnis der Protokolle

Gibt das Verzeichnis an, an das der Scheduler die Protokoll schreibt.

log_dir="*stderr" lässt den Scheduler das Hauptprotokoll nach stderr schreiben.

include_path="verzeichnis" Verzeichnispfad für <include>

Verzeichnis der Dateien, die mit <include> eingezogen werden.

Umgebungsvariablen (z.B. $HOME) werden ersetzt (siehe hier).

Die Eigenschaft Spooler.include_path liest die Einstellung
Die Option -include-path hat Vorrang
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag include_path=…) wird damit überschrieben

mail_xslt_stylesheet="path" Pfad des XSLT-Stylesheets zur eMail-Aufbereitung

Der Pfad eines XSLT-Stylesheets. Der Job Scheduler verwendet das XSLT-Stylesheet zum Aufbereiten der eMails. (Die Dokumentation hierzu ist noch nicht geschrieben.)

Die Eigenschaft Mail.xslt_stylesheet_path hat Vorrang

java_class_path="dateinamen" Java-Classpath

Für Java kann hier der CLASS_PATH eingestellt werden. Das ist eine Liste von Pfaden, in Windows durch Semikolons (;), in Unix durch Doppelpunkte getrennt.

In den einzelnen Pfaden können Joker benutzt werden. Der Job Scheduler ersetzt diese Pfade durch die tatsächlichen, im Dateisystem vorhandenen.

Dabei gilt für jeden Pfad in class_path:

Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [java], Eintrag class_path=…).

Umgebungsvariablen (z.B. $HOME) werden ersetzt (siehe hier).

Die Einstellung sos.ini (Abschnitt [java], Eintrag class_path=…) wird damit überschrieben

Beispiel  

class_path = s:\prod\bind\sos.*.jar;c:\jar\my.jar;c:\jar\*

java_options="text" Java-Optionen

Hier können Sie z.B. mit -Djava.library.path= das Verzeichnis angeben, in dem HostJava installiert ist.

Die Optionen werden der Java Virtual Machine übergeben.

Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [java], Eintrag options=…).

Umgebungsvariablen (z.B. $HOME) werden ersetzt (siehe hier).

Die Einstellung sos.ini (Abschnitt [java], Eintrag options=…) wird damit überschrieben

Beispiel  

options = -Xdebug -Djava.library.path=s:/prod/bind

ip_address="ip_number" (Initialwert: 0.0.0.0)     IP-Adresse der Schnittstelle für TCP und UDP

Die IP-Adresse, an die TCP- und UDP-Port gebunden werden. Der Job Scheduler ist dann nur über diese IP-Adresse erreichbar.

Ein Hostname kann angegeben werden.

Default ist 0.0.0.0, was für alle IP-Adressen steht.

Wenn eine andere IP-Adresse als 127.0.0.1 oder localhost angegeben ist, kann der Job Scheduler nicht über localhost erreicht werden.

Die Option -ip-address hat Vorrang

Kind-Elemente

<base>  

  – Basiskonfiguration

Eine Basiskonfigurationsdatei kann hier angegeben werden, die der Scheduler zuerst auswertet. Die Einstellungen darin bilden die Voreinstellungen für die Konfigurationsdatei, die das Element <base> enthält.

<base> kann wiederholt werden.

<params>  

  – Scheduler-weite Parameter

Die eingestellten Parameter können mit Spooler.variables abgerufen werden.

<security>  

  – Stellt den Zugriffsschutz ein

<cluster>  

  – Einstellungen für den Cluster-Betrieb

<process_classes>  

  – Jobs in eigenen Prozessen

Jede Prozessklasse stellt eine Anzahl Prozesse zum Betrieb der Jobs bereit.

Dieses Element sollte angegeben werden, denn sonst laufen die Jobs im Prozess des Schedulers, was nur zum Debuggen empfehlenswert ist.

Beispiel  

<process_classes/>

<script>  

  – Scheduler-Skript

Wie <scheduler_script><script>, siehe unten.

<scheduler_script>  

  – Scheduler-Skript

Das hierin enthaltene Skript führt der Scheduler beim Start, vor jedem Job aus. Wenn die Methode spooler_init() implementiert ist, ruft der Scheduler sie auf. Es eignet sich zum Setzen von Scheduler-Variablen.

Bei einem Fehler bricht der Scheduler ab.

Das Skript wird erst geschlossen, wenn der Scheduler endet.

Beispiel  

<scheduler_script>
    <script language="javascript"><![CDATA[

        spooler.variables( "database_name" ) = "db7";

    ]]></script>
</scheduler_script>

<http_server>  

  – HTTP-Server

<holidays>  

  – Feiertage

Grundsätzliche Einstellung der Feiertage (an denen Jobs nicht laufen sollen).

<jobs>  

  – Jobs

Enthält die Jobs als Folge von <job>-Elementen.

Beispiel  

<script language="javascript"><![CDATA[

    spooler.variables( "database_name" ) = "db7";

]]></script>

<job_chains>  

  – Jobketten

<commands>  

  – XML-Kommandos

Die Kommandos werden beim Start des Schedulers vor dem Scheduler-Skript ausgeführt. Ein Fehler führt zum Abbruch des Schedulers.


Software- und Organisations-Service GmbH

Zuletzt geändert von Joacim Zschimmer, 2008-10-20