JobScheduler - Quickstart - Sos-berlin.com
JobScheduler - Quickstart - Sos-berlin.com
JobScheduler - Quickstart - Sos-berlin.com
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>JobScheduler</strong> - Job Execution and Scheduling System<br />
<strong>JobScheduler</strong> - <strong>Quickstart</strong><br />
Einstieg in das Job Scheduling<br />
März 2013<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 1<br />
Software Open Source
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Impressum<br />
Impressum<br />
Software- und Organisations-Service GmbH<br />
Giesebrechtstr. 15<br />
D-10629 Berlin<br />
Germany<br />
Telefon +49 (0)30 86 47 90-0<br />
Telefax +49 (0)30 8 61 33 35<br />
Mail info@sos-<strong>berlin</strong>.<strong>com</strong><br />
Web http://www.sos-<strong>berlin</strong>.<strong>com</strong><br />
Letzte Aktualisierung: 03/15/2013 12:03 PM<br />
Diese Dokumentation basiert auf der <strong>JobScheduler</strong> Version 1.3.12.3072.<br />
Copyright © 2005-2013 SOS GmbH Berlin.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 2<br />
Software Open Source<br />
All rights reserved. All trademarks or registered trademarks are the property of their respective holders. Alle<br />
Informationen in diesem Dokument können ohne vorherige Ankündigung verändert werden.<br />
This product includes software developed by the Apache Software Foundation (http://apache.org/)<br />
We would appreciate any feedback you have, or suggestions for changes and improvements; please forward your<br />
<strong>com</strong>ments to info@sos-<strong>berlin</strong>.<strong>com</strong>.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Inhaltsverzeichnis<br />
Inhaltsverzeichnis<br />
Software Open Source<br />
1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
2 Wie werden Jobs, Job-Ketten oder Aufträge konfiguriert? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5<br />
3 Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
4 <strong>JobScheduler</strong> Objekte einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
4.1 Einen Job einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
4.1.1 Einen Standalone-Job einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
4.1.2 Einen Auftrags-Job einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
4.2 Eine Job-Kette einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
4.3 Einen Auftrag einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18<br />
5 Zeitgesteuertes Starten eines Jobs oder eines Auftrags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22<br />
6 Verzeichnis-Überwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23<br />
6.1 Starten einer Job-Kette per Verzeichnis-Überwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23<br />
6.2 Starten eines Standalone-Jobs per Verzeichnis-Überwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
7 Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27<br />
7.1 Parameter am Job bzw. am Auftrag setzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
7.2 Parameter in einem Shell-Skript lesen und setzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
8 Fehler-Behandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
8.1 Verhalten gestoppter Auftrags-Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31<br />
8.2 Verhalten gestoppter Standalone-Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
8.3 Fehler-Behandlung in Job-Ketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31<br />
8.3.1 Auftrag erreicht sofort das Ende der Job-Kette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31<br />
8.3.2 Auftrag startet bestimmten Folge-Job der Job-Ketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
8.3.3 Automatisches Wiederholen eines fehlerhaft verarbeiteten Auftrags (setback) . . . . . . . . . . . . . . . . . . . . . . . . .32<br />
8.3.4 Verarbeitung des Auftrags wird ausgesetzt (suspend) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35<br />
8.4 Fehler-Behandlung bei Standalone-Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
8.4.1 Automatisches Wiederholen eines fehlerhaften Standalone-Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
9 Überblick der Dokumentationen des <strong>JobScheduler</strong>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40<br />
9.1 Installation und Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40<br />
9.2 Implementierung von Jobs mit der <strong>JobScheduler</strong> API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
9.3 Fortgeschrittene Themen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
10 Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />
11 Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 3
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Einleitung<br />
1 Einleitung<br />
Der <strong>JobScheduler</strong> ist installiert und konnte gestartet werden. Was nun?<br />
Software Open Source<br />
Die folgenden Beispiele sollen einen kompakten und schnellen Einstieg in die Anwendung des <strong>JobScheduler</strong><br />
liefern.<br />
1.1 Grundlagen<br />
Bevor Sie mit den Beispiele dieses Dokuments beginnen, sollten Sie Kenntnisse der anderen <strong>JobScheduler</strong><br />
Dokumentationen haben, insbesondere die Installations- und Konfigurationsbeschreibung (scheduler_installation).<br />
Eine kurze Übersicht der <strong>JobScheduler</strong> Dokumentationen (Seite 40) finden Sie am Ende dieses Dokuments.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 4
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Wie werden Jobs, Job-Ketten oder Aufträge konfiguriert?<br />
2 Wie werden Jobs, Job-Ketten oder Aufträge konfiguriert?<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 5<br />
Software Open Source<br />
Ein <strong>JobScheduler</strong> Objekt (Jobs, Job-Ketten, Aufträge, Schedules, Prozess-Klassen, Sperren) wird durch eine<br />
Datei im XML-Format konfiguriert. Die <strong>JobScheduler</strong> Objekte werden im Hot Folder (per Voreinstellung das<br />
Verzeichnis ./config/live) gespeichert. In diesem Verzeichnis wird jedes <strong>JobScheduler</strong> Objekt durch genau<br />
eine einzelne Datei repräsentiert. Die Datei enthält die Konfiguration dieses Objekts.<br />
Änderungen der Konfigurationsdateien werden ohne Neustart des <strong>JobScheduler</strong> wirksam, wenn gleich es unter<br />
Unix mitunter eine Minute dauern kann, bis die Änderungen wirksam werden.<br />
Ein Objekt kann mit JOE (<strong>JobScheduler</strong> Object Editor) angelegt und bearbeitet werden. Hierzu wird eine<br />
bestehende Konfigurationsdatei in JOE geöffnet, oder es wird eine neue Konfigurationsdatei angelegt.<br />
Sie können aber auch jeden beliebigen Text-Editor benutzen, um ein Objekt anzulegen oder zu bearbeiten, jedoch<br />
muss man hierbei die XML-Struktur der <strong>JobScheduler</strong> Objekte genau kennen (siehe Referenzdokumentation).
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Vorbereitungen<br />
3 Vorbereitungen<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 6<br />
Software Open Source<br />
1. Legen Sie unterhalb des Hot Folder ( ./config/live ) das Verzeichnis quickstart an. Hier werden im<br />
folgenden die Jobs und Job-Ketten angelegt.<br />
2. Starten Sie JOE (<strong>JobScheduler</strong> Object Editor) mit dem Skript:<br />
• %SCHEDULER_HOME% \bin\jobeditor.cmd ( Windows )<br />
• $SCHEDULER_HOME /bin/jobeditor.sh ( Unix )<br />
3. Nutzen Sie die Tastenkombination ctrl+D , um den Hot Folder in JOE zu öffnen. Sie öffnen diesen Dialog<br />
auch über das Menü Datei->Open Hot Folder oder mit dem roten Ordner-Symbol. Der Hot Folder sollte<br />
bereits ausgewählt sein, anderenfalls navigieren Sie bitte nach ./config/live . Wählen Sie unterhalb davon<br />
den Ordner quickstart aus. Gegebenenfalls können Sie auch in diesem Dialog das Unterverzeichnis<br />
quickstart anlegen.<br />
4. Öffnen Sie JOC (<strong>JobScheduler</strong> Operations Center) . In JOC können Sie gleichzeitig die Änderungen<br />
verfolgen. Sie öffnen JOC im Browser mit http://[scheduler_host]:[scheduler_port] , wobei<br />
[scheduler_host] und [scheduler_port] der Hostname und die Nummer des TCP Ports des<br />
<strong>JobScheduler</strong> sind (z.B. http://localhost:4444 ). Der <strong>JobScheduler</strong> muss hierfür gestartet sein.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
4 <strong>JobScheduler</strong> Objekte einrichten<br />
4.1 Einen Job einrichten<br />
Es gibt Standalone-Jobs und Auftrags-Jobs.<br />
Die Vorbereitungen (Seite 6) sind abgeschlossen? Dann kann es ja weitergehen.<br />
Software Open Source<br />
• Standalone-Jobs können unabhängig von anderen Jobs gestartet werden, dürfen aber nicht in einer<br />
Job-Kette eingesetzt werden.<br />
• Auftrags-Jobs werden einer Job-Kette verwendet und in ihr durch Aufträge der Job-Kette gestartet.<br />
Standalone- und Auftrags-Jobs unterscheiden sich in ihrer Konfiguration durch das Attribut order= "yes|no".<br />
4.1.1 Einen Standalone-Job einrichten<br />
Klicken Sie links im Baum der <strong>JobScheduler</strong> Objekte auf Jobs und dann rechts auf New Standalone Job . Ein neuer<br />
Job taucht in der Liste der Jobs und linken Baum auf. Klicken Sie diesen an.<br />
Es wird ein leeres Job-Konfigurationselement geöffnet. Tragen Sie im Feld Job Name zum Beispiel firstJob ein.<br />
Man beachte, dass bei einem Standalone-Job der Radiobutton Order Job (rechts neben dem Namen) auf No<br />
gesetzt ist. Diese Einstellung unterscheidet einen Standalone-Job von einem Auftrags-Job hinsichtlich der<br />
Konfiguration. Überdies ist die Checkbox Stop On Error aktiviert (siehe auch Fehler-Behandlung (Seite 31)).<br />
Geben Sie in dem Source Code-Textfeld zum Beispiel folgendes Shell-Skript ein:<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 7
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
@echo off<br />
echo %SCHEDULER_JOB_NAME% is running echo Current Timestamp: %DATE% %TIME%<br />
exit %ERRORLEVEL%<br />
Beispiel: für Windows:<br />
#!/bin/sh<br />
echo "$SCHEDULER_JOB_NAME is running"<br />
echo "Current Timestamp: `date`"<br />
exit $?<br />
Beispiel: für Unix:<br />
Software Open Source<br />
Dem Job könnte noch eine feste Startzeit (Seite 22) oder Parameter (Seite 27) zugewiesen werden.<br />
Speichern Sie jetzt die Konfiguration, indem sie die Tastenkombination ctrl+S nutzen oder auf Datei->Save<br />
klicken. _JOE legt die Datei ./config/live/quickstart/firstJob.job.xml an.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 8
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 9<br />
Software Open Source<br />
Aktualisieren Sie JOC mit dem oben befindlichen Update -Button. In der Registerkarte Jobs sehen Sie jetzt den Job<br />
quickstart/firstJob. Klicken Sie auf den Job, um im rechten Frame des Browsers eine Detail-Ansicht des Jobs<br />
zu erhalten. Starten sie eine Task des Jobs, indem Sie auf Job menu ->Start task immediately klicken.<br />
Jetzt startet die Task. Sehen Sie sich das Task-Protokoll in der Task Historie an, indem Sie auf Show log klicken.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
Die Vorbereitungen (Seite 6) sind fertig? Dann kann es ja weitergehen.<br />
Software Open Source<br />
Es öffnet sich ein weiteres Browser-Fenster mit der Protokoll-Ausgabe. Hier sehen Sie unter anderem die Ausgabe<br />
des Skripts.<br />
Herzlichen Glückwunsch!<br />
Sie haben einen Standalone-Job erfolgreich eingerichtet und ausgeführt.<br />
4.1.2 Einen Auftrags-Job einrichten<br />
Klicken Sie links im Baum der <strong>JobScheduler</strong> Objekte auf Jobs und dann rechts auf New Order Job . Ein neuer Job<br />
taucht in der Liste der Jobs und im linken Baum auf. Klicken Sie diesen an.<br />
Es wird ein leeres Job-Konfigurationselement geöffnet. Tragen Sie im Feld Job Name zum Beispiel firstOrderJob<br />
ein. Man beachte, dass bei einem Auftrags-Job der Radiobutton Order Job (rechts neben dem Namen) auf Yes<br />
gesetzt ist. Diese Einstellung unterscheidet einen Auftrags-Job von einem Standalone-Job hinsichtlich der<br />
Konfiguration. Überdies ist die Checkbox Stop On Error deaktiviert (siehe auch Fehler-Behandlung (Seite 31)).<br />
Geben Sie in dem Source Code-Textfeld zum Beispiel folgendes Shell-Skript ein:<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 10
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
@echo off<br />
echo %SCHEDULER_JOB_NAME% processed %SCHEDULER_ORDER_ID%<br />
echo Current Timestamp: %DATE% %TIME%<br />
exit %ERRORLEVEL%<br />
Beispiel: für Windows:<br />
#!/bin/sh<br />
echo "$SCHEDULER_JOB_NAME processed $SCHEDULER_ORDER_ID"<br />
echo "Current Timestamp: `date`"<br />
exit $?<br />
Beispiel: für Unix:<br />
Dem Job könnte noch ein Startzeitraum (Seite 22) oder Parameter (Seite 27) zugewiesen werden.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 11<br />
Software Open Source<br />
Speichern Sie jetzt die Konfiguration, indem sie die Tastenkombination ctrl+S nutzen oder auf Datei->Save<br />
klicken. _JOE legt die Datei ./config/live/quickstart/firstOrderJob.job.xml an.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
Software Open Source<br />
Aktualisieren Sie JOC mit dem oben befindlichen Update -Button. In der Registerkarte Jobs sehen Sie jetzt den Job<br />
quickstart/firstOrderJob. Klicken Sie auf den Job, um im rechten Frame des Browsers eine Detail-Ansicht des<br />
Jobs zu erhalten. Im Job menu ist die Funktion Start task immediately deaktiviert, da Auftrags-Jobs nur durch<br />
Aufträge innerhalb einer Job-Kette gestartet werden können.<br />
Herzlichen Glückwunsch!<br />
Sie haben einen Auftrags-Job erfolgreich eingerichtet.<br />
4.2 Eine Job-Kette einrichten<br />
Job-Ketten definieren eine Abfolge von Jobs, deren Ausführung durch einen Auftrag ausgelöst wird. Sie definieren<br />
Job-Abhängigkeiten für die erfolgreiche und fehlerhafte Ausführung. Die der Job-Ketten zugewiesenen Jobs<br />
müssen Auftrags-Jobs sein. Genau genommen besitzt eine Kette Knoten, denen Jobs zugewiesen werden können.<br />
Am Ketten-Knoten wird bestimmt, welcher Folge-Knoten den Auftrag weitergereicht bekommt, wenn der aktuelle<br />
Job erfolgreich beziehungsweise fehlerhaft beendet wurde. Hat dieser Folge-Knoten einen Job, dann wird dieser<br />
Job gestartet, anderenfalls hat der Auftrag das Ende der Kette erreicht. Bei einem fehlerhaften Job kann überdies<br />
konfiguriert werden, dass der Auftrag am dem aktuellen Knoten stehen bleibt oder den Job erneut (verzögert)<br />
startet. Auftrags-Jobs sollten mit deaktiviertem Stop On Error (Seite 10) konfiguriert sein, damit weitere Aufträge<br />
trotz fehlerhaften Laufs verarbeitet werden können.<br />
Sie haben obigen Auftrags-Job (Seite 10) bereits angelegt? Wiederholen Sie bitte den Vorgang für einen zweiten<br />
Auftrags-Job, damit wir der Job-Kette zwei verschiedene Jobs übergeben können. Der zweite Auftrags-Job soll den<br />
Namen secondOrderJob und die folgende Implementierung haben.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 12
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
@echo off<br />
echo %SCHEDULER_JOB_NAME% processed %SCHEDULER_ORDER_ID%<br />
dir .\config\live\quickstart<br />
exit %ERRORLEVEL%<br />
Beispiel: für Windows:<br />
#!/bin/sh<br />
echo "$SCHEDULER_JOB_NAME processed $SCHEDULER_ORDER_ID"<br />
ls -l ./config/live/quickstart<br />
exit $?<br />
Beispiel: für Unix:<br />
Dann kann es jetzt weitergehen.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 13<br />
Software Open Source<br />
Klicken Sie links in der Liste der <strong>JobScheduler</strong> Objekte auf Job Chains und dann rechts auf New Job Chain . Eine<br />
neue Job-Kette taucht in der Liste der Job-Ketten und im linken Baum auf. Klicken Sie diese an.<br />
Es wird ein leeres Job-Ketten-Konfigurationselement geöffnet. Tragen Sie im Feld Chain Name zum Beispiel<br />
firstJobChain ein.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 14<br />
Software Open Source<br />
Wechseln Sie im linken Baum unterhalb der Job-Kette auf Nodes. Durch New Chain Node werden der Kette Knoten<br />
hinzugefügt, denen Auftrags-Jobs zugewiesen werden können. Wir wollen der Kette zwei Knoten hinzufügen.<br />
Jeder Knoten braucht innerhalb der Kette einen eindeutigen State. Dieser sei für den ersten Knoten step1. An dem<br />
Knoten soll der Job firstOrderJob ausgeführt werden. Next State und Error State bestimmen, an welchen Knoten<br />
der Auftrag weitergereicht wird, wenn der Job erfolgreich beziehungsweise fehlerhaft beendet wurde. Setzen Sie<br />
hier für den ersten Knoten zum Beispiel step2 und error.<br />
Fügen Sie einen zweiten Knoten mit step2 als State, secondOrderJob als Job, success als Next State und error<br />
als Error State hinzu.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 15<br />
Software Open Source<br />
Zu jeden Wert von Next State oder Error State muss es in der Kette einen Knoten geben. Zur Zeit fehlen demnach<br />
noch die Knoten success und error. Fehlende Knoten werden gelb dargestellt. Diese lassen sich leicht durch<br />
Klicken auf den Button Add Missing Nodes ergänzen. Selektieren Sie zuvor den Knoten in der Liste, dessen fehlende<br />
Knoten Sie ergänzt haben wollen. In unserem Beipiel wählen Sie bitte den Knoten mit dem State step2.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
Die so erzeugten Knoten besitzen keinen Job. Hier endet die Kette.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 16<br />
Software Open Source<br />
Speichern Sie jetzt die Konfiguration, indem sie die Tastenkombination ctrl+S nutzen oder auf Datei->Save<br />
klicken. _JOE legt die Datei ./config/live/quickstart/firstJobChain.job_chain.xml an.<br />
Ein Auftrag der Kette startet den Job quickstart/firstOrderJob, dann den Job quickstart/secondOrderJob<br />
und endet im Knoten success, falls die Jobs erfolgreich gelaufen sind. Sobald ein Job fehlerhaft ist, endet der<br />
Auftrag im Knoten error.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 17<br />
Software Open Source<br />
Aktualisieren Sie JOC mit dem oben befindlichen Update -Button. In der Registerkarte Job Chains sehen Sie jetzt<br />
die Job-Kette quickstart/firstJobChain. Klicken Sie auf die Job-Kette, um im rechten Frame des Browsers<br />
eine Detail-Ansicht der Job-Kette zu erhalten. Fügen Sie der Job-Kette einen Auftrag hinzu, indem Sie auf<br />
Job chain menu ->Add order klicken. Wenn Sie dem Auftrag keine Order Id vergeben, dann vergibt der<br />
<strong>JobScheduler</strong> dem Auftrag selbstständig eine Zahl als Id.<br />
Während der Auftrag noch durch die Kette wandert, können Sie sich das Protokoll durch Order menu ->Show log<br />
oder in der Auftrags-Historie (Checkbox Show order history muss aktiviert sein) ansehen.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
Sie haben obige Job-Kette (Seite 12) angelegt? Dann kann es ja weitergehen.<br />
Software Open Source<br />
Es öffnet sich ein neues Browser-Fenster mit dem Protokoll. Hier sehen Sie unter anderem die Ausgabe der<br />
Skripte.<br />
Herzlichen Glückwunsch!<br />
Sie haben eine Job-Kette erfolgreich eingerichtet und einen Auftrag hinzugefügt.<br />
4.3 Einen Auftrag einrichten<br />
Sie können einer Job-Kette jederzeit manuell Aufträge hinzufügen. Diese Aufträge sind aber nicht persistent.<br />
Wollen Sie einem Auftrag zum Beispiel eine Zeitsteuerung zuweisen, so müssen Sie einen persistenten Auftrag<br />
anlegen. Überdies kann ein Auftrag gegebenenfalls Parameter (Seite 27) enthalten.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 18
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 19<br />
Software Open Source<br />
Klicken Sie links in der Liste der <strong>JobScheduler</strong> Objekte auf Orders und dann rechts auf New Order . Ein neuer<br />
Auftrag taucht in der Liste der Aufträge und im linken Baum auf. Klicken Sie diese an.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 20<br />
Software Open Source<br />
Es wird ein leeres Auftrags-Konfigurationselement geöffnet. Tragen Sie im Feld Order ID zum Beispiel firstOrder<br />
ein und weisen Sie ihm im Feld Job Chain die Job-Kette firstJobChain zu.<br />
Speichern Sie jetzt die Konfiguration, indem sie die Tastenkombination ctrl+S nutzen oder auf Datei->Save<br />
klicken. _JOE legt die Datei ./config/live/quickstart/firstJobChain,firstOrder.order.xml an.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - <strong>JobScheduler</strong> Objekte einrichten<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 21<br />
Software Open Source<br />
Aktualisieren Sie JOC mit dem oben befindlichen Update -Button. Navigieren Sie zur Detail-Ansicht der Job-Kette<br />
quickstart/firstJobChain wie oben beschrieben. Hier sehen Sie jetzt den Auftrag, welchen Sie über Order menu<br />
->Start order now starten können. Überdies finden Sie den Auftrag auch in der Registerkarte Orders.<br />
Das Protokoll wird gegenüber obigen Hinzufügens eines Auftrags nichts neues liefern.<br />
Herzlichen Glückwunsch!<br />
Sie haben einen Auftrag erfolgreich eingerichtet und gestartet.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Zeitgesteuertes Starten eines Jobs oder eines Auftrags<br />
5 Zeitgesteuertes Starten eines Jobs oder eines Auftrags<br />
Software Open Source<br />
Da Auftrags-Jobs durch Aufträge der Job-Kette gestartet werden, ist es nicht sinnvoll, für Auftrags-Jobs Startzeiten<br />
festzulegen. Die Startzeiten legt man in diesem Fall am Auftrag fest.<br />
Man kann jedoch Auftrags-Jobs ein Zeitfenster zuweisen. Wenn ein Auftrag außerhalb dieses Zeitfensters den<br />
Auftrags-Job starten möchte, wird dieser Auftrag eingereiht und erst zu Beginn des Zeitfensters ausgeführt.<br />
In diesem Beispiel soll ein Standalone-Job oder Auftrag täglich um 12:00 Uhr und um 14:00 Uhr gestartet werden.<br />
In JOE finden Sie im linken Baum unterhalb jedes Jobs und Auftrags die Funktion Run Time->Everyday. Mit dem<br />
Button New Period fügen Sie eine neue Zeitsteuerung hinzu, die Sie mit dem Button Apply Period speichern, nach<br />
dem Sie Single Start 12:00:00 im Feld Start Time gesetzt haben. Wiederholen Sie den Vorgang mit Single<br />
Start 14:00:00.<br />
Neben festen Startzeiten (Single Start) können auch Wiederholintervalle (Intervall end/start, Intervall<br />
start/start) angegeben werden.<br />
Standalone-Jobs und Aufträge können trotz einer Zeitsteuerung jederzeit manuell gestartet werden. Bei<br />
Standalone-Jobs kann die Zeitsteuerung mit einer Verzeichnis-Überwachung (Seite 26) kombiniert werden.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 22
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Verzeichnis-Überwachung<br />
6 Verzeichnis-Überwachung<br />
6.1 Starten einer Job-Kette per Verzeichnis-Überwachung<br />
Software Open Source<br />
Wann immer in einem überwachten Verzeichnis eine Datei hinzugefügt wird, wird für die entsprechende Job-Kette<br />
ein Auftrag erzeugt. Die Auftrags-ID ist der Dateiname der hinzugefügten Datei. Es kann ein Filter angegeben<br />
werden, der die Überwachung auf bestimmte Dateinamen einschränkt.<br />
In diesem Beispiel wird das Verzeichnis ./notification_dir überwacht. Es sollen ausschließlich Dateien mit der<br />
Dateierweiterung txt berücksichtigt werden.<br />
Zunächst wollen wir in JOE die oben eingerichtete Job-Kette (Seite 12) kopieren. Hierzu gibt es Copy und Paste<br />
Funktionen im Kontextmenu der Objekte im linken Baum.<br />
Wählen Sie die neue Kette im Baum aus und benennen Sie sie im Feld Chain Name um (z.B. fileOrderJobChain<br />
).<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 23
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Verzeichnis-Überwachung<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 24<br />
Software Open Source<br />
Wechseln Sie im linken Baum unterhalb der Job-Kette auf Nodes. Im Bereich File Order Sources können Sie mit<br />
dem Button New File Order Source ein zu überwachendes Verzeichnis hinzufügen, das Sie mit dem Button<br />
Apply File Order Source der Kette übergeben, nachdem Sie in den Feldern Directory und Regex die Werte<br />
notification_dir und \.txt$ eingegeben haben. Wiederholen Sie den Vorgang, falls Sie weitere Verzeichnisse<br />
oder Muster hinzufügen wollen.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Verzeichnis-Überwachung<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 25<br />
Software Open Source<br />
Wenn die auftragserzeugende Datei am Ende der Job-Ketten-Verarbeitung noch immer im überwachten<br />
Verzeichnis vorhanden ist, dann merkt sich der <strong>JobScheduler</strong> das in einer Blacklist, um sicherzustellen, dass<br />
diese Datei keinen weiteren Auftrag erzeugt.<br />
Sie sollten entweder durch einen Job der Kette die Datei aus dem überwachten Verzeichnis entfernen oder der<br />
Kette eine Datei-Senke hinzufügen. Datei-Senken löschen oder verschieben die auftragserzeugende Datei. Im<br />
folgenden Beispiel soll die Datei am success-Knoten gelöscht und am error-Knoten verschoben werden. Klicken<br />
Sie in der Knotenliste auf den success-Knoten, aktivieren Sie den File Sink Radiobutton und aktivieren Sie die<br />
Checkbox Remove File. Übernehmen Sie die Änderungen mit Apply Chain Node . Wiederholen Sie den Vorgang für<br />
den error-Knoten, jedoch geben Sie hier im Feld Move to das Verzeichnis an, in das die Datei verschoben werden<br />
soll.<br />
Legen Sie das Verzeichnis ./notification_dir an. Kopieren Sie nun eine Datei mit txt-Dateierweiterung in das<br />
Verzeichnis und sehen Sie sich in JOC das Protokoll in der Auftrags-Historie der Job-Kette<br />
quickstart/fileOrderJobChain an.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Verzeichnis-Überwachung<br />
6.2 Starten eines Standalone-Jobs per Verzeichnis-Überwachung<br />
Software Open Source<br />
Wann immer in einem überwachten Verzeichnis eine Datei hinzugefügt oder gelöscht wird, wird der entsprechende<br />
Standalone-Job automatisch gestartet. Es kann ein Filter angegeben werden, der die Überwachung auf bestimmte<br />
Dateinamen einschränkt.<br />
In diesem Beispiel wird das Verzeichnis ./notification_dir überwacht. Es sollen ausschließlich Dateien mit der<br />
Dateierweiterung txt berücksichtigt werden.<br />
Verzeichnis überwachende Standalone-Jobs können auch jederzeit manuell gestartet werden. Die<br />
Verzeichnis-Überwachung ist auch mit einer Zeitsteuerung (Seite 22) kombinierbar.<br />
In JOE finden Sie im linken Baum unterhalb jedes Jobs die Funktion Run Options. Im Bereich Start When Directory<br />
Changed können Sie mit dem Button New Dir ein zu überwachendes Verzeichnis hinzufügen, das Sie mit dem<br />
Button Apply Dir speichern, nachdem Sie in den Feldern Watch Directory und File Regex die Werte<br />
notification_dir und \.txt$ eingegeben haben. Wiederholen Sie den Vorgang, falls Sie weitere Verzeichnisse<br />
oder Muster hinzufügen wollen.<br />
Auftrags-Jobs mit Verzeichnis-Überwachung machen keinen Sinn, jedoch gibt es auch für Job-Ketten eine<br />
Verzeichnis-Überwachung (Seite 23).<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 26
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Parameter<br />
7 Parameter<br />
Parameter können am Job, am Auftrag und am Job-Ketten-Knoten formuliert werden.<br />
Software Open Source<br />
Wenn Sie Jobs mit der <strong>JobScheduler</strong> API programmieren, dann sind Job-Parameter und Auftrags-Parameter<br />
unterschiedliche Objekte. Knoten-Parameter und Auftrags-Parameter bilden das gleiche Objekt. Hierbei haben<br />
Knoten-Parameter Vorrang gegenüber etwaigen gleichnamigen Auftrags-Parametern.<br />
In Shell-Skripten gibt es diese Unterscheidung nicht. Hier überschreiben Knoten-Parameter gleichnamige Auftrags<br />
-Parameter und Auftrags-Parameter überschreiben gleichnamige Job-Parameter.<br />
Auftrags-Parameter stehen allen Jobs einer Job-Kette zur Verfügung. Wenn Sie in der Kette den Wert eines<br />
Auftrags-Parameters ändern, dann ist diese Änderung auch für den nächsten Start des (persistenten) Auftrags<br />
gültig.<br />
7.1 Parameter am Job bzw. am Auftrag setzen<br />
In JOE finden Sie im linken Baum unterhalb jedes Jobs und Auftrags die Funktion Parameter. Jeder Parameter<br />
besteht aus einem Namen und einem Wert. Hier können Sie Name-Werte-Paare in den Feldern Name und Value<br />
setzen und mit dem Apply speichern. Am oben erzeugten Standalone-Job (Seite 7) quickstart/firstJob und<br />
am oben erzeugten Auftrags-Job (Seite 10) quickstart/firstOrderJob soll der Parameter testParam mit dem<br />
Wert Hello World! hinzugefügt werden. Am oben erzeugten Auftrag (Seite 18) quickstart/firstOrder soll der<br />
Parameter testParam mit dem Wert Goodbye! hinzugefügt werden.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 27
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Parameter<br />
7.2 Parameter in einem Shell-Skript lesen und setzen<br />
Im Shell-Skript kann jeder Parameter über eine Umgebungsvariable der Form<br />
• $SCHEDULER_PARAM_[PARAM-NAME] (Unix)<br />
• %SCHEDULER_PARAM_[PARAM-NAME]% (Windows)<br />
gelesen werden.<br />
Im Shell-Skript wird ein Parameter erzeugt bzw. verändert durch<br />
• echo "[PARAM-NAME]=[PARAM-VALUE]" >> $SCHEDULER_RETURN_VALUES (Unix)<br />
• echo [PARAM-NAME]=[PARAM-VALUE] >> %SCHEDULER_RETURN_VALUES% (Windows)<br />
Software Open Source<br />
Der Parameter testParam ist, wie letzten Kapitel (Seite 27) beschrieben, gesetzt? Um nun das Schreiben und<br />
Lesen von Parametern zu testen, werden die Skripte der<br />
quickstart/secondOrderJob wie folgt, ergänzt:<br />
Jobs quickstart/firstOrderJob und<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 28
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Parameter<br />
@echo off<br />
echo %SCHEDULER_JOB_NAME% processed %SCHEDULER_ORDER_ID%<br />
echo Current Timestamp: %DATE% %TIME%<br />
echo Parameter testParam = "%SCHEDULER_PARAM_TESTPARAM%"<br />
echo Parameter testParam is modified to "123456789"<br />
echo testParam=123456789 >> %SCHEDULER_RETURN_VALUES%<br />
exit %ERRORLEVEL%<br />
Beispiel: firstOrderJob für Windows:<br />
#!/bin/sh<br />
echo "$SCHEDULER_JOB_NAME processed $SCHEDULER_ORDER_ID"<br />
echo "Current Timestamp: `date`"<br />
echo "Parameter testParam = \"$SCHEDULER_PARAM_TESTPARAM\""<br />
echo "Parameter testParam is modified to \"123456789\""<br />
echo "testParam=123456789" >> $SCHEDULER_RETURN_VALUES<br />
exit $?<br />
Beispiel: firstOrderJob für Unix:<br />
@echo off<br />
echo %SCHEDULER_JOB_NAME% processed %SCHEDULER_ORDER_ID%<br />
echo Parameter testParam = "%SCHEDULER_PARAM_TESTPARAM%"<br />
dir .\config\live\quickstart<br />
exit %ERRORLEVEL%<br />
Beispiel: secondOrderJob für Windows:<br />
#!/bin/sh<br />
echo "$SCHEDULER_JOB_NAME processed $SCHEDULER_ORDER_ID"<br />
echo "Parameter testParam = \"$SCHEDULER_PARAM_TESTPARAM\""<br />
ls -l ./config/live/quickstart<br />
exit $?<br />
Beispiel: secondOrderJob für Unix:<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 29<br />
Software Open Source<br />
Beide Jobs lesen nunmehr den Parameter testParam, während der erste Job quickstart/firstOrderJob<br />
überdies den Wert des Parameters verändert. Am Job quickstart/firstOrderJob ist der Parameter<br />
testParam=Hello World! gesetzt. Dieser Wert wird vom Auftrag überschrieben.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Parameter<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 30<br />
Software Open Source<br />
Starten Sie den Auftrag der Kette quickstart/firstJobChain in JOC und sehen Sie sich das Protokoll an.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Fehler-Behandlung<br />
8 Fehler-Behandlung<br />
Software Open Source<br />
Ein Job endet fehlerhaft, sobald das ihm zugewiesene Skript oder Programm einen Exitcode ungleich 0 liefert. Der<br />
Job wird gestoppt, es sei denn, Stop On Error (Seite 10) ist deaktiviert. Gestoppte Jobs werden in JOC rot<br />
markiert.<br />
Zum Testen ändern Sie bitte die Skripte der Jobs firstJob und firstOrderJob, so dass diese fehlerhaft enden.<br />
... exit 5<br />
Beispiel: Fehler forcieren durch exit != 0<br />
8.1 Verhalten gestoppter Auftrags-Jobs<br />
Bei Auftrags-Jobs sollte Stop On Error unbedingt deaktiviert sein, damit auch nach einem fehlerhaften Lauf weitere<br />
Aufträge verarbeitet werden können oder gegebenenfalls ein automatisches Wiederholen (Seite 32) des Auftrags<br />
gewährleistet werden kann. Anderenfalls muss der Job zuvor mit der Funktion Job menu->Unstop in JOC entstoppt<br />
werden.<br />
8.2 Verhalten gestoppter Standalone-Jobs<br />
Gestoppte Standalone-Jobs können weiterhin mit der Funktion Job menu->Start job immediately in JOC manuell<br />
gestartet werden, jedoch starten diese nicht per Zeitsteuerung oder Verzeichnis-Überwachung. Um einen Job zu<br />
entstoppen, nutzen Sie bitte die Funktion Job menu->Unstop in JOC.<br />
8.3 Fehler-Behandlung in Job-Ketten<br />
In einer Job-Kette hat man mehrere Möglichkeiten auf fehlerhafte Jobs zu reagieren.<br />
• Die Job-Kette beenden<br />
• Einen weiteren Job der Job-Kette starten<br />
• Den fehlerhaften Job wiederholt starten<br />
• Den Auftrag anhalten<br />
Für jeden Knoten der Kette kann eine unterschiedliche Fehlerbehandlung konfiguriert sein.<br />
Wann immer der Job des aktuellen Job-Ketten-Knotens fehlerhaft endet, wird der Auftrag jenem Knoten<br />
übergeben, der im Error State konfiguriert ist, angehalten oder automatisch wiederholt.<br />
8.3.1 Auftrag erreicht sofort das Ende der Job-Kette<br />
Diese Art der Fehler-Behandlung ist die oben (Seite 12) als Beispiel verwendete. Hier ist im ersten Knoten step1<br />
als Error State ein Endknoten (Knoten ohne Job ) zugewiesen.<br />
Starten Sie in JOC den Auftrag quickstart/firstOrder und sehen Sie sich das Auftrags-Protokoll an. Sie<br />
werden sehen, dass der zweite Job quickstart/secondOrderJob nicht gelaufen ist.<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 31
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Fehler-Behandlung<br />
8.3.2 Auftrag startet bestimmten Folge-Job der Job-Ketten<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 32<br />
Software Open Source<br />
Sie können im Error State eine Knoten angeben, der wiederum einen Job enthält. Dann wird die Kette mit diesem<br />
Job fortgesetzt.<br />
8.3.3 Automatisches Wiederholen eines fehlerhaft verarbeiteten Auftrags (setback)<br />
Sie können erreichen, dass ein fehlerhafter Auftrags-Job automatisch wiederholt wird. Hierzu müssen Sie am<br />
entsprechenden Knoten der Kette und am entsprechenden Job Einstellungen vornehmen.<br />
Wechseln Sie in JOE im linken Baum unterhalb der Job-Kette firstJobChain auf Nodes. Wählen Sie den Knoten<br />
step1 in der Liste der Knoten aus. Selektieren Sie setback im Feld On Error und speichern Sie die Änderung mit<br />
Apply Chain Node .
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Fehler-Behandlung<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 33<br />
Software Open Source<br />
Öffnen Sie in JOE die Run Options im linken Baum unterhalb des Jobs firstOrderJob. Im Bereich Delay Order<br />
After Setback können Sie mit dem Button New Delay einen (verzögerten) automatischen Neustart des Auftrags<br />
hinzufügen. Setzen Sie beispielsweise für Set Back Count und Delay die Werte 2 und 00:00:10. Mit dem Button<br />
Apply Delay speichern Sie die Einstellungen. Wiederholen Sie den Vorgang, wobei Sie im Set Back Count eine 5<br />
und die Checkbox Max aktivieren.<br />
Wenn sich der Job fehlerhaft beendet, wird dieser sofort erneut gestartet. Sofern der Job noch immer fehlerhaft ist,<br />
wird ab dem 2. Versuch der erneute Start um 10 Sekunden verzögert und nach dem 5. Versuch wandert der<br />
Auftrag zum Knoten, der in Error State angegeben ist.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Fehler-Behandlung<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 34<br />
Software Open Source<br />
Starten Sie in JOC den Auftrag quickstart/firstOrder und sehen Sie sich das Auftrags-Protokoll an.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Fehler-Behandlung<br />
8.3.4 Verarbeitung des Auftrags wird ausgesetzt (suspend)<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 35<br />
Software Open Source<br />
Wechseln Sie in JOE im linken Baum unterhalb der Job-Kette firstJobChain auf Nodes. Wählen Sie den Knoten<br />
step1 in der Liste der Knoten aus. Selektieren Sie suspend im Feld On Error und speichern Sie die Änderung mit<br />
Apply Chain Node .
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Fehler-Behandlung<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 36<br />
Software Open Source<br />
Mit dieser Einstellung können Sie erreichen, dass der Auftrag an einem fehlerhaften Auftrags-Job anhält. Nachdem<br />
die Fehlerursache beseitigt wurde, kann der Auftrag in JOC fortgesetzt werden. Hierzu finden Sie im Order menu die<br />
Funktion Resume order. Der zuvor fehlerhafte Job wird noch einmal ausgeführt.<br />
8.4 Fehler-Behandlung bei Standalone-Jobs<br />
Bei Standalone-Jobs kann man nach einem fehlerhaften Lauf bestimmen, dass der Job wiederholt wird.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Fehler-Behandlung<br />
8.4.1 Automatisches Wiederholen eines fehlerhaften Standalone-Jobs<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 37<br />
Software Open Source
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Fehler-Behandlung<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 38<br />
Software Open Source<br />
In JOE finden Sie im linken Baum unterhalb jedes Jobs die Funktion Run Options. Im Bereich Delay After Error<br />
können Sie mit dem Button New Delay einen (verzögerten) automatischen Neustart des Jobs hinzufügen. Setzen<br />
Sie beispielsweise für Error Count und Delay die Werte 2 und 00:00:10. Mit dem Button Apply Delay speichern Sie<br />
die Einstellungen. Wiederholen Sie den Vorgang, wobei Sie im Error Count eine 5 und den Radiobutton stop<br />
setzen.<br />
Wenn sich der Job fehlerhaft beendet, wird dieser sofort erneut gestartet. Sofern der Job noch immer fehlerhaft ist,<br />
wird ab dem 2. Versuch der erneute Start um 10 Sekunden verzögert und beim 5. Versuch der Job gestoppt.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Fehler-Behandlung<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 39<br />
Software Open Source<br />
Starten Sie den Job in JOC. Sie sehen in der Task Historie die wiederholten Starts mit der angegebenen<br />
Verzögerung.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Überblick der Dokumentationen des <strong>JobScheduler</strong>.<br />
9 Überblick der Dokumentationen des <strong>JobScheduler</strong>.<br />
Die Dokumentationen befinden sich in $SCHEDULER_HOME/doc/de.<br />
9.1 Installation und Konfiguration<br />
Installation und Konfiguration (scheduler_installation)<br />
Wir empfehlen die Durchsicht bevor Sie den <strong>JobScheduler</strong> installieren und konfigurieren.<br />
<strong>Quickstart</strong> zur Einrichtung von Jobs (scheduler_quickstart)<br />
Dieses Dokument<br />
Referenzdokumentation (scheduler, reference)<br />
Das Handbuch beschreibt Job-Konfiguration und Schnittstellen<br />
9.2 Implementierung von Jobs mit der <strong>JobScheduler</strong> API<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 40<br />
Software Open Source<br />
Diese Dokumentationen richten sich an Entwickler von Jobs. Sie sind nicht erforderlich zum Einrichten<br />
automatisierter Starts von Programmen und Skripten.<br />
API Dokumentation (reference/api)<br />
Die Dokumentation der Programmschnittstelle des <strong>JobScheduler</strong>.<br />
Tutorial für API-Job-Implementierung (<strong>JobScheduler</strong>_API-Jobs-Implementation)<br />
Einführung in die Verwendung der Programmschnittstelle des <strong>JobScheduler</strong>.<br />
9.3 Fortgeschrittene Themen<br />
Diese Dokumentationen beschreiben komplexere Szenarien des Job Schedulings.<br />
Tutorial Web Service Implementierung (scheduler_webservices)<br />
Erläutert die Konfiguration und Implementierung von Web Services für Ihre Jobs<br />
MySQL Job Scheduling (scheduler_managed_user_jobs)<br />
Erklärt die SQL-Schnittstelle des <strong>JobScheduler</strong> für Statements und Prozeduren, die in der Datenbank<br />
analog zum Oracle Job Scheduler verwendet werden.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Glossar<br />
Glossar<br />
Auftrag<br />
Job<br />
Job-Kette<br />
JOC (<strong>JobScheduler</strong> Operations Center)<br />
JOE (<strong>JobScheduler</strong> Object Editor)<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 41<br />
Software Open Source<br />
Ein Auftrag aktiviert die Verarbeitung einer Job-Kette. Der Auftrag enthält die Parameter für die Jobs einer<br />
Job-Kette. Jeder Job der Job-Kette hat Zugriff auf die Parameter eines Auftrags. Auftrag-Parameter<br />
überschreiben gleichnamige Job-Parameter. Ein Auftrag kann eine Zeitsteuerung enthalten.<br />
Ein Auftrag durchläuft nacheinander die Jobs einer Job-Kette. Tritt ein Verarbeitungsfehler in einem Job auf,<br />
dann kann konfiguriert werden, dass der Auftrag...<br />
• aus der Job-Kette entfernt wird.<br />
• von einem weiteren Job der Kette ausgeführt wird.<br />
• vom fehlerhaften Job wiederholt ausgeführt wird.<br />
• in der Kette am fehlerhaften Job stehen bleibt, dass heißt die Verarbeitung des Auftrag wird<br />
ausgesetzt, bis dieser wieder manuell fortgesetzt wird.<br />
Programme und Skripte, die vom <strong>JobScheduler</strong> ausgeführt werden sollen, müssen in Jobs eingebettet<br />
werden. Jobs können beliebige ausführbare Dateien starten oder Job-Skripte enthalten, die die<br />
Programmschnittstelle des <strong>JobScheduler</strong> verwenden. Jobs können in mehreren Instanzen (Tasks)<br />
ablaufen, wenn dies zur Skalierung der Leistung gewünscht ist.<br />
Es wird zwischen Standalone-Jobs und Auftrags-Jobs unterschieden. Während Auftrags-Jobs durch<br />
Aufträge innerhalb einer Job-Kette gestartet werden, können Standalone-Jobs davon unabhängig gestartet<br />
werden, dass heißt manuell, durch eine Zeitsteuerung oder per Verzeichnis-Überwachung. Standalone-Jobs<br />
können nicht in Job-Ketten eingereiht werden.<br />
Eine Reihe von Jobs, die nacheinander Aufträge verarbeiten. Der <strong>JobScheduler</strong> startet die Jobs einer<br />
Job-Kette automatisch, wenn ein Auftrag eintrifft. Job-Ketten bieten die Möglichkeit mehrere Aufträge parallel<br />
zu verarbeiten, indem die Jobs in mehreren Instanzen (Tasks) gestartet werden.<br />
JOC (<strong>JobScheduler</strong> Operations Center) ist die Oberfläche des <strong>JobScheduler</strong> zur Überwachung und<br />
Steuerung der <strong>JobScheduler</strong> Objekte, also zum Beispiel Jobs, Job-Ketten und Aufträge.<br />
_JOC öffnen Sie im Browser mit http://[scheduler_host]:[scheduler_port], wobei<br />
[scheduler_host] und [scheduler_port] der Hostname und die Nummer des TCP Ports des<br />
<strong>JobScheduler</strong> sind (z.B. http://localhost:4444).<br />
JOE ist der <strong>JobScheduler</strong> Object Editor. Mit ihm können die <strong>JobScheduler</strong> Objekte (Jobs, Job-Ketten,<br />
Aufträge, Schedules, Prozess-Klassen, Sperren) konfiguriert werden.<br />
Gestartet wird JOE mit dem Skript:<br />
• $SCHEDULER_HOME \bin\jobeditor.cmd (Windows)<br />
• $SCHEDULER_HOME /bin/jobeditor.sh (Unix)
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Glossar<br />
Schedule<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 42<br />
Software Open Source<br />
Die Zeitsteuerung eines Jobs oder Auftrags kann direkt am Job oder Auftrag angegeben oder in einem<br />
Schedule ausgelagert werden. Dem Job oder Auftrag wird dann lediglich der Schedule zugewiesen. Falls<br />
mehrere Jobs oder Aufträge die gleiche Zeitsteuerung haben sollen, braucht man diese so nur einmal zu<br />
formulieren. Überdies können Schedules für einen bestimmten Zeitraum andere Schedules ersetzen. So<br />
erreicht man in der Verwendung von Schedules noch mehr Flexibilität bei der Zeitsteuerung.
<strong>JobScheduler</strong> - <strong>Quickstart</strong> - Stichwortverzeichnis<br />
Stichwortverzeichnis<br />
A<br />
Auftrag 5, 7, 12, 12, 14<br />
Auftrags-Job 7, 7, 10, 11, 12, 12, 12, 12<br />
H<br />
J<br />
Hot Folder 5, 6, 6<br />
Job 5, 7, 10, 22, 27, 27, 27, 27, 31, 31,<br />
38<br />
Job chain 5, 6, 7, 7, 12, 12, 12, 13, 13,<br />
14, 15, 16, 16, 17, 17, 18, 18, 20, 21, 22, 23,<br />
23, 24, 25, 25, 26, 27, 30, 31, 31, 32, 32, 32,<br />
35<br />
O<br />
Order 16, 17, 18, 18, 19, 20, 21, 21, 21, 22,<br />
22, 22, 22, 22, 23, 25, 27, 27, 27, 27, 27, 29,<br />
30, 31, 31, 31, 33, 33, 34, 36<br />
Order job 14, 16, 16, 22, 22, 25, 26, 27, 28,<br />
29, 31, 31, 31, 31, 32, 32, 33, 36<br />
P<br />
S<br />
Prozess-Klasse 5<br />
Schedule 5<br />
Sperre 5<br />
Standalone-Job 7, 7, 8, 9, 10, 10, 22, 22,<br />
31, 36, 38, 38, 39<br />
März 2013 <strong>JobScheduler</strong> - <strong>Quickstart</strong> Seite: 43<br />
Software Open Source