WARNUNG: Sie betrachten nicht die Live-Version, sondern eine ältere Version.

Jobverwaltung

Jobs dienen als periodisch laufende Hilfsprogramme der Synchronisation und Bearbeitung von Daten. 
Beispiele für mögliche Jobs:

  • Erstellung von Gruppen anhand bestimmter Kriterien
  • Synchronisation von Abteilungs- und Personendaten aus dem Zeitwirtschaftssystem oder
  • Synchronisation von Kalenderdaten aus dem Groupware-System
  • Synchronisation von Fehlgründen aus dem Zeitwirtschaftssystem
  • Filterung definierter Unregelmäßigkeiten im Zeitwirtschaftssystem und in folge daraus
  • Automatische Generierung bestimmte Workflow-Anträge
  • Benachrichtigungen im Falle best. Ereignisse (z.B. Arbeitszeitüberschreitung)
  • Automatisierte Reporterstellung und Versand per Mail

Die Jobs können automatisch, mit Hilfe eines sogenannten Triggers gestartet werden. Mit dem Trigger wird ein Zeitplan erstellt, so dass die Jobs beliebig gestartet werden können (stündlich, täglich, wöchentlich oder monatlich, ...). Die Einstellung kann auf den Tag, Stunde und Minute genau konfiguriert werden.
Bei Bedarf können die Jobs auch jederzeit manuell gestartet werden.

Weiters können die Jobs einen aktiven oder inaktiven Status haben. Bei einem aktiven Status werden die Jobs gemäß dem eingestellten Trigger gestartet. Sind diese jedoch inaktiv, können sie lediglich manuell gestartet werden. Der Status kann jederzeit geändert werden.

Ein Monitoring der Jobs wird durch die Ansicht "Aktive Jobs" ermöglicht, wo alle aktiven Jobs auf einen Blick zu sehen sind. Weiters kann, bei entsprechender Parametrierung, der Verlauf des Jobs mit Hilfe der Logeinträge nachvollzogen werden. So wird anhand des parametrierten Log-Levels (definierter Status während des Jobverlaufes, wie z.B. Fehler, Warnung, ...) ersichtlich, ob ein Job problemlose durchgelaufen ist, oder ob bestimmte Probleme aufgetreten sind.
Bei Bedarf kann hier auch ein Mailversand konfiguriert werden. Die Mail wird an eine definierte Person verschickt, falls ein Logeintrag mit einem angegebenen Level existiert.

Einige Jobs sind Standardjobs, welche nur vordefiniert ausgeführt werden können - konfigurierbare Jobs können individuell an die Benutzeranforderungen angepasst werden:
--> Jobkonfigurationen erstellen und bearbeiten

Begriffsdefinitionen

  • Ein Job ist ein periodisch laufendes Hilfsprogramm, welches für den korrekten Ablauf des Kundensystems notwendig ist. Dabei werden Systemtätigkeiten abgearbeitet, welche im Hintergrund durchgeführt werden können.
  • Ein konfigurierter Job ist ein Webdesk Standard-Job mit einer parametrierten kundenspezifischen Konfiguration. Dieses Parametrierung wird über den Reiter 'Job-Konfiguration' im Formular Job durchgeführt. Ein konfigurierter Job verwendet also die Funktionen eines Standardjobs, jedoch mit den Einstellungen, die für den Kunden sinnvoll sind.
  • Ein Jobtrigger ist eine Planungsinformation pro Job, welche angibt, in welchen Zeitabständen der Job gestartet werden soll. Pro Job können mehrere Jobtrigger definiert werden.
  • Ein Standard-Job der konfigurierbar ist, stellt ein eigenes Konfigurationsformular zur Verfügung und ist per se noch nicht ablauffähig. Erst wenn eine neue Jobkonfiguration angelegt ist, kann diese dann gestartet werden. Ein "nicht konfigurierbarer" Job hingegen taucht sofort in der Liste der Jobs auf, ist also sofort ausführbar (und auch planbar), stellt aber keine weiteren Parametrierungsmöglichkeiten mehr zur Verfügung.

Durch die flexible Konfigurationsmöglichkeit kann ein Standard-Job in mehreren "Variationen" in einem System ablaufen. Jeder konfigurierte Job bildet nämlich eine neue Einheit, die seperat geplant werden kann.

Jedes Modul kann neue Jobs (sowohl konfigurierbare als auch nicht konfigurierbare) Jobs "beisteuern" und somit den "Werkzeugkasten" des Webdesk-Systems im Job-Bereich erweitern.

Trigger

Die Jobs können automatisch, mit Hilfe eines sogenannten Triggers gestartet werden. Mit dem Trigger wird ein Zeitplan erstellt, so dass die Jobs beliebig gestartet werden können (stündlich, täglich, wöchentlich oder monatlich, ...). Die Einstellung kann auf den Tag, Stunde und Minute genau konfiguriert werden.
Bei Bedarf können die Jobs auch jederzeit manuell gestartet werden.
Weiters können die Jobs einen aktiven oder inaktiven Status haben. Bei einem aktiven Status werden die Jobs gemäß dem eingestellten Trigger gestartet. Sind diese jedoch inaktiv, können sie lediglich manuell gestartet werden. Der Status kann jederzeit geändert werden.

  • Zeitplantyp
    Hier erfolgt die Auswahl des Triggers:
    • minütlicher Trigger
      Wird dieser Parameter selektiert, so wird der Job jede Minute neu gestartet
    • stündlicher Trigger
      Bei diesem Parameter wird der Job jede Stunde neu gestartet
    • täglicher Trigger
      Mögliche Selektion der genauen Uhrzeit (Stunden und Minuten)
    • wöchentlicher Trigger
      Mögliche Selektion des Wochentages und der Uhrzeit
    • monatlicher Trigger
      Selektion, an welchem Tag und zu welcher Uhrzeit der Trigger starten soll
    • Simple Trigger
      Mögliche Einstellungen sind Anzahl der Wiederholungen, Beginn- und Ende-Datum, Minuten in Intervall.
    • Cron Trigger
      Hierbei handelt es sich um eine besondere Art von Trigger. Die Crono Expression kann aus 6 oder 7 Zeichen bestehen, die durch Leerzeichen getrennt sind. Diese Zeichen können alle erlaubten Werte darstellen, wie auch einige Sonderzeichen beinhalten (z.B. , - * / ). Das Zeichen * steht hier zum Beispiel für alle möglichen Werte (Wildcard). Die Bedeutung der anderen Sonderzeichen finden sie unter dem unten angegebenen Link.
      Auf diese Weise kann ein Zeitpunkt (Stunde, Minuten, Datum, Tag, Monat, Jahr, etc.) für den Trigger bestimmt werden. Die Crono Expression kann z.B. wie folgt aussehen: 0 0 12 * * ?, und bedeutet, dass der Trigger täglich um 12Uhr (mittags) feuern soll.  
      • Legende (Felder in korrekter Reihenfolge):
        • Namensfeld

          Erlaubte Werte

          Erlaubte Sonderzeichen

          Seconds

          0-59

          , - * /

          Minutes

          0-59

          , - * /

          Hours

          0-23

          , - * /

          Day-of-month

          1-31

          , - * ? / L W C

          Month

          1-12 or JAN-DEC

          , - * /

          Day-of-Week

          1-7 or SUN-SAT

          , - * ? / L C #

          Year (Optional)

          empty, 1970-2099

          , - * /

      • Beispiele:

        Ausdrücke

        Bedeutung

        0 0 12 * * ?

        Startet täglich um 12:00

        0 15 10 ? * *

        Startet täglich um 10:15

        0 15 10 * * ?

        Startet täglich um 10:15

        0 15 10 * * ? *

        Startet täglich um 10:15

        0 15 10 * * ? 2005

        Startet täglich um 10:15 während des Jahres 2005

        0 * 14 * * ?

        Startet täglich jede Minute beginnend um 14:00 und endet um 14:59

        0 0/5 14 * * ?

        Startet täglich alle 5 Minuten beginnend um 14:00 und endet um 14:55

        0 0/5 14,18 * * ?

        Startet täglich alle 5 Minuten beginnend um 14:00 und endet um 14:55, UND Startet alle 5 Minuten beginnend um 18:00 und endet um 18:55

        0 0-5 14 * * ?

        Startet täglich jede Minute beginnend um 14:00 und endet um 14:05

        0 10,44 14 ? 3 WED

        Startet um 14:10 und um 14:44 jeden Mittwoch im Monat März

        0 15 10 ? * MON-FRI

        Startet um 10:15 jeden Montag, Dienstag, Mittwoch, Donnerstag und Freitag

        0 15 10 15 * ?

        Startet um  10:15 am15ten jedes Monats

        0 15 10 L * ?

        Startet um  10:15 am letzten Tag jedes Monats

        0 15 10 ? * 6L

        Startet um 10:15 am letzten Freitag jedes Monats

        0 15 10 ? * 6L 2002-2005

        Startet um 10:15 am letzten Freitag jedes Monats in den Jahren 2002, 2003, 2004 und 2005

        0 15 10 ? * 6#3

        Startet um 10:15 am dritten Freitag jedes Monats

        Weiterführende Informationen zum Thema Cron-trigger finden Sie unter: http://quartz.sourceforge.net/javadoc/org/quartz/CronTrigger.html

  • Einstellungen
    • Name
      Sind mehrere Trigger vorgesehen, so können diese individuell benannt werden
    • Aktiv
      Bei mehreren Triggern können die einzelnen auf aktiv / inaktiv gesetzt werden, ohne dass der Job beeinträchtigt wird.
  • Löschen
    Durch Aktivieren der Check-Box kann der bestehende Trigger gelöscht werden (aktivieren der Check-Box durch Anklicken, anschließend "Speichern" oder "Speichern & Schließen")
  • Neuer Trigger
    Hier kann ein neuer Trigger angelegt werden. Die Selektion erfolgt wie  beim Zeitplantyp
  • Speichern, Speichern & Schließen
    Durch Klicken auf Speichern wird die Änderung übernommen, das Formular könnte noch weiter editiert werden. Durch "Speichern & Schließen" wird der Job gespeichert, man gelangt wieder zur Job-Übersicht

Relevante Menüpunkte / Aktionen

Die folgenden Menüpunkte im Full System Administrator enthalten die relevanten Funktionen zur Verwaltung und zur Überwachung von Jobs:

  • System > Jobs
  • Monitoring > Aktive Jobs
  • Monitoring > Logeinträge

Monitoring / Logeinträge

Für das Monitoring von Jobs ist es ungeheuer wichtig, dass die implementierenden Job-Klassen auch entsprechend Loggen. Diese Logging-Informationen werden dann üblicherweise in die Webdesk-Datenbank-Logs geschrieben und sind dann somit über die Ansicht Monitoring > Logeinträge auswertbar.

Ein Monitoring der Jobs wird durch die Ansicht "Aktive Jobs" ermöglicht, wo alle aktiven Jobs auf einen Blick zu sehen sind. Weiters kann, bei entsprechender Parametrierung, der Verlauf des Jobs mit Hilfe der Logeinträge nachvollzogen werden. So wird anhand des parametrierten Log-Levels (definierter Status während des Jobverlaufes, wie z.B. Fehler, Warnung, ...) ersichtlich, ob ein Job problemlose durchgelaufen ist, oder ob bestimmte Probleme aufgetreten sind.

Empfohlene Log-Einstellungen

Grundsätzlich sollte der Loglevel of Jobs in den Log-Einstellungen (Full System Administrator: System--> Log-Einstellungen) zumindest auf INFO stehen. Damit ist gewährleistet, dass alle Log-Informationen, welche vom Programmierer als INFO oder höherwertig qualifiziert wurden, ins Datenbank-Log geschrieben werden. Hiermit sollte z.B. bei einer Batchverarbeitung üblicherweise z.B. die Anzahl der verarbeiteten Datensätze gelogged werden. Jedenfalls werden damit Fehler (Exceptions) auf jeden Fall gelogged!
Treten Fehler im Job auf, so ist es mitunter sinnvoll, den Logging-Level für Jobs auf DEBUG zu erhöhen!

Mailversand

Bei Bedarf kann in den Jobs auch ein Mailversand konfiguriert werden. Die Mailbenachrichtigungenthält nur den Job-Log, und wird an eine definierte Person verschickt, falls ein Logeintrag mit einem angegebenen Level existiert.

  • Mailverständigung aktivieren
    Wird die CheckBox angehakt, so wird die Mailverständigung aktiviert
  • Loglevel
    Eine E-Mail wird verschickt falls ein Logeintrag mit dem angegebenen Level existiert. Priorisierung von Fehlermeldungen
    • Fatal  - es werden nur Fehlermeldungen ausgegeben
    • Error - alle Fehlermeldungen
    • Warn
    • Info
    • Debug - gibt die meisten Meldungen aus (z.B. "lade Datensatz mit Nummer xy...")
    • All - alle Meldungen werden ausgegeben
  • Suchkriterium
    Beinhaltet einer der Logeinträge eines der angegebenen Worte, so wird ein Mail verschickt.
  • Nur einen Link zu den Logs versenden
    Wird der Parameter angehakt, so wird nur ein Link zu den Log-Einträgen gesendet. Andererseits werden alle Log-Details gesendet.
  • Adresse des Servers
    Geben sie hier die Adresse des Servers ein. Z.B. http://myserver.com/webdesk
  • Personen, die informiert werden sollen
    Eingabe einer gültigen E-Mailadresse für Benachrichtigungen, dass der Job gelaufen ist, bzw. dass Fehler aufgetreten sind.
    • Hinzufügen > Hinzufügen neuer E-Mailadressen
    • Löschen > Löschen bestehender E-Mailadressen

Best Practice

Werden viele Jobs in einem System verwendet, sollte man folgende Grundregeln beachten:

  • Man sollte eine kundenspezifische Namenskonvention bei der Vergabe des Jobnamens einhalten, um später den Sinn des Jobs schnell erfassen zu können.
    Die Jobkonfiguration sollte nicht den Namen haben, wie der Job von dem sie abgeleitet wird. Wird der selbe Name eingegeben, kommt es zu einer Fehlermeldung, der neue Job kann nicht gespeichert werden. 
  • Das Beschreibungsfeld sollte auch wirklich genutzt werden, um das Ziel des Jobs für den Administrator zu beschreiben (z.B. Import von Personenstammdaten aus IF6020)
  • Läuft Webdesk in einem Clusterverbund (mehr als ein Server), so macht es Sinn, die Jobs auf einen Server zu konzentrieren. Ein paralleles (gleichzeitiges) Ausführen desselben Jobs auf unterschiedlichen Cluster-Nodes kann zu unvorhersehbaren Ergebnissen - im schlimmsten Fall zu Datenbank-Inkonsistenzen - führen.
  • Rechenintensive Jobs sollten am Abend oder in der Nacht laufen, um die Serverhardware während der "Hauptverkehrszeit" nicht unnötig zu belasten. Bei nächtlichen Jobs muss aber die Planung der Jobs unbedingt im Einklang mit den Plänen der DB-Sicherung erfolgen, um Probleme zu vermeiden!
  • Das regelmässige Zusenden von Log-Infos per Mail ermöglicht frühzeitig auf bestimmte Fehler bei den Jobs zu reagieren.

Log-Einträge in der Webdesk-DB sollten regelmässige gelöscht werden (hierzu gibt es einen eigenen Job!), ansonsten kann die Webdesk-DB zu voll werden und daraus können in weitere Folge Performance-Probleme entstehen.

Felder

NameWert
ModulPortal & Organisation (po)
Webdesk Actionnamepo_showActiveJobs
Artefakt-TypAction
Kommentare (0)