20.03.2013 Aufrufe

JobScheduler - Quickstart - Sos-berlin.com

JobScheduler - Quickstart - Sos-berlin.com

JobScheduler - Quickstart - Sos-berlin.com

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!