JobScheduler - Job Execution and Scheduling System Software Open Source JobScheduler Information Dashboard Tagesplan und Historie März 2015 März 2015 JobScheduler Seite: 1 JobScheduler - Impressum Software Open Source Impressum Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Germany Telefon +49 (0)30 86 47 90-0 Telefax +49 (0)30 8 61 33 35 Mail [email protected] Web http://www.sos-berlin.com Letzte Aktualisierung: 03/13/2015 12:01 PM Diese Dokumentation basiert auf der JobScheduler Version 1.7.4169. Copyright © 2005-2015 SOS GmbH Berlin. All rights reserved. All trademarks or registered trademarks are the property of their respective holders. Alle Informationen in diesem Dokument können ohne vorherige Ankündigung verändert werden. This product includes software developed by the Apache Software Foundation (http://apache.org/) We would appreciate any feedback you have, or suggestions for changes and improvements; please forward your comments to [email protected]. März 2015 JobScheduler Seite: 2 JobScheduler - Inhaltsverzeichnis Software Open Source Inhaltsverzeichnis 1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1 Spracheinstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Anpassen der Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.1 Einstellungen für Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.2 Einstellungen für MySql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.3 Einstellungen für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.4 Einstellungen für PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.5 Einstellungen für Sybase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.6 Einstellungen für DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Standalone-Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.1 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3 ...............................................................................................................8 4 Tagesplan erstellen und auswerten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.1 Tagesplan anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.1.1 Mehrere JobScheduler Instanzen simultan mit JOC öffnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1.2 Die geplanten, nicht gelaufenen Jobs vom aktuellen Tag anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1.3 Die fehlerhaft gelaufenen Jobs von gestern anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1.4 Einen Job ausblenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 4.1.5 Das Suchfeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 4.1.6 Die aktuell laufenden Jobs anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1.7 Wann werden Aufträge als fehlerhaft gekennzeichnet? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1.8 Color codes for order states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5 Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 März 2015 JobScheduler Seite: 3 JobScheduler - Einleitung Software Open Source 1 Einleitung Das JID (JobScheduler Information Dashboard) stellt Funktionen für eine Übersicht über die geplanten und tatsächlich gelaufenen Jobs zur Verfügung. Auf Wunsch kann auch JOC (JobScheduler Operations Center) in JID integriert werden. Tagesplan JobScheduler berechnet jeweils die nächste Startzeit von Jobs und Job-Ketten und startet diese automatisch. JobScheduler schaut dabei nicht in die Vergangenheit. JID mit dem Tageskalender unterstützt das Operating bei der Beantwortung der Fragen • was hätte laufen sollen und was davon ist gelaufen? • was wird in den nächsten Tagen laufen? Der Tagesplan ist hilfreich, da in ihm die geplanten Starts vermerkt sind. Wenn ein Job oder Auftrag gelaufen ist, wird dies in den Plan eingetragen. Auf diese Weise steht eine Übersicht zur Verfügung, in der schnell die nicht gelaufenen Jobs und Aufträge zu erkennen sind. Job Historie Desweiteren bietet eine Übersicht über alle gelaufenen bzw. aktuell laufenden Jobs und Job-Ketten, die Möglichkeit, eine zentralisierte Übersicht über das gesamte System zu erhalten. Die Darstellung kann auf alle oder einzelne JobScheduler-Instanzen bezogen weden. Für jeden gelaufen Job bzw. Auftrag kann das Protokoll eingesehen werden. Der Tagesplan und die Übersicht über gelaufene Jobs ist geeignet, den Helpdesk bei der Überwachung und ersten Analyse zu unterstützen und benötigt keine laufende JobScheduler Instanz. Es ist rein Datenbank basiert. JOC (JobScheduler Operations Center) Die integrierte JOC View integriert das bekannte Operationscenter in JID. Es können beliebig viele Sichten geöffnet werden. Die Integration von JOC ist beim Aufruf unter Linux deaktiviert. Wenn eine Mozilla-Instanz installiert ist, kann sie im Script dashboard.sh aktiviert werden (s.u.). März 2015 JobScheduler Seite: 4 JobScheduler - Installation Software Open Source 2 Installation JID wird zusammen mit JobScheduler installiert. Bei bestehenden Installationen wird es bei einem Update hinzugefügt. Zusätzlich steht ein Setup für JID zur Verfügung, das nur JID installiert. Das Tagesplan Addon besteht aus 2 Jobs und einem Report zur Darstellung. Der Report zeigt die geplanten Läufe für alle JobScheduler an. Die Jobs werden auf den JobScheduler installiert, für die ein Tagesplan erstellt werden soll. Außerdem kann JOC (JobScheduler Operations Center) in JID integriert werden. 2.1 Spracheinstellung Die Sprache wird entsprechend der lokalen Einstellungen des Betriebssystems verwendet. Sie kann ebenfalls über die Umgebungsvariable SOS_LOCALE=en|de gesetzt werden. 2.2 Anpassen der Konfiguration Folgende Konfigurationsdateien konfigurieren JID. 1.) ./bin/dashboard.sh|cmd In dieser Datei werden die Aufrufparameter für das JID eingestellt. • set enable_joc=true|false: Aktiviert/Deaktiviert die Einbindung von JOC in JID. Im Auslieferungszustand für Windows ist dieser Wert auf true eingestellt. Auf false sonst. • set enable_joe=true|false: Aktiviert/Deaktiviert die Einbindung von JOE in JID. Im Auslieferungszustand für Windows ist dieser Wert auf false eingestellt. • set enable_job_start=true|false: Aktiviert/Deaktiviert die Möglichkeit, Jobs und Aufträge direkt aus dem JID heraus zu starten. 2.) ./config/live/sos/daily_schedule/CheckDaysSchedule.job.xml 3.) ./config/live/sos/daily_schedule/CreateDaysSchedule.job.xml Die Konfigurationsdateien der beiden Jobs werden mit JOE (JobScheduler Object Editor) bearbeitet. Die Konfiguration muss um die Startzeit ergänzt werden März 2015 JobScheduler Seite: 5 JobScheduler - Installation Software Open Source Der Job CreateDaysSchedule.job.xml sollte einmal täglich laufen. Er kann jederzeit wiederholt werden. Der Job CheckDaysSchedule.job.xml sollte periodisch laufen, zum Beispiel alle 5 Minuten. Der Job gleicht den Tagesplan mit den gelaufenen Jobs ab. If you have more than one JobScheduler then it is sufficient to configure the CheckDaysSchedule job only on one instance. In der Datei ./config/hibernate.cfg.xml werden die Datenbankeinstellungen vorgenommen. 4.) ./config/hibernate.cfg.xml Diese Datei beinhaltet die Angaben für die Datenbankverbindung. Sie muss normalerweise nicht verändert werden und wird vom Setup entsprechend den gemachten Angaben angelegt. Die Anpassung der Datenbankeinstellungen werden mit einem Texteditor vorgenommen. Neben Benutzer und Kennwort werden folgende DB-spezifischen Angaben erwartet. • hibernate.connection.driver_class • hibernate.dialect • hibernate.connection.url 2.2.1 Einstellungen für Oracle • hibernate.connection.driver_class: oracle.jdbc.driver.OracleDriver • hibernate.connection.url: jdbc:oracle:thin:@localhost:1521:myDb • hibernate.dialect: org.hibernate.dialect.Oracle10gDialect 2.2.2 Einstellungen für MySql • hibernate.connection.driver_class: com.mysql.jdbc.Driver • hibernate.connection.url: jdbc:mysql://localhost:3306/myDb • hibernate.dialect: org.hibernate.dialect.MySQLInnoDBDialect 2.2.3 Einstellungen für SQL Server • hibernate.connection.driver_class: com.microsoft.sqlserver.jdbc.SQLServerDriver • hibernate.connection.url: jdbc:sqlserver://localhost:1433;sendStringParametersAsUnicode=false;selectMethod=cursor;databaseName= myDb • hibernate.dialect: org.hibernate.dialect.SQLServerDialect 2.2.4 Einstellungen für PostgreSQL • hibernate.connection.driver_class: org.postgresql.Driver März 2015 JobScheduler Seite: 6 JobScheduler - Installation Software Open Source • hibernate.connection.url: jdbc:postgresql://localhost/mydatabase • hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect 2.2.5 Einstellungen für Sybase • hibernate.connection.driver_class: com.sybase.jdbc3.jdbc.SybDriver • hibernate.connection.url: jdbc:sybase:Tds:localhost:5000/myDb • hibernate.dialect: org.hibernate.dialect.SybaseDialect 2.2.6 Einstellungen für DB2 • hibernate.connection.driver_class: com.ibm.db2.jcc.DB2Driver • hibernate.connection.url: jdbc:db2://8of9:50000/myDb:driverType=2;retrieveMessagesFromServerOnGetMessage=true; • hibernate.dialect: org.hibernate.dialect.DB2Dialect 2.3 Standalone-Installation ... 2.3.1 Troubleshooting "org.hibernate.exception.JDBCConnectionException: Cannot open connection" März 2015 JobScheduler Seite: 7 JobScheduler Software Open Source 3 März 2015 JobScheduler Seite: 8 JobScheduler - Tagesplan erstellen und auswerten Software Open Source 4 Tagesplan erstellen und auswerten Der Tagesplan wird durch den Job /sos/dailyschedule/CreateDaysSchedule erstellt. Der Job erstellt den Tagesplan für den aktuellen Tag. Mit dem Parameter dayoffset wird gesteuert, dass Tagespläne für die Zukunft (dayoffset>0) oder für die Vergangenheit (dayoffset<0) erstellt werden. dayoffset=1 erstellt zum Beispiel den Tagesplan für heute und morgen. Wenn ein Tagesplan erstellt wird, werden bereits vorhandene Tagespläne des gleichen Zeitraums überschrieben. Im Auslieferungszustand hat der Parameter den Wert dayoffset=10, d.h. der Tagesplan wird für heute und die nächsten 10 Tage erstellt. Bei der Erstellung des Tagesplans werden alle festen Startzeiten berücksichtigt. Für Intervalle in einem Zeitraum wird für den Beginn des Zeitraums ein Start eingeplant. Der Tagesplan wird durch den Job /sos/dailyschedule/CheckDaysSchedule abgeglichen. Der Abgleich wird mit Hilfe der History-Tabellen von JobScheduler vorgenommen. Der Job erstellt den Abgleich für den aktuellen Tag. Mit dem Parameter dayoffset kann gesteuert werden, dass Tagespläne für die Vergangenheit (dayoffset<0) abgeglichen wird. dayoffset=-1 gleicht zum Beispiel den Tagesplan für heute und gestern ab. Wenn ein Tagesplan abgeglichen wird, werden bereits vorhandene Zuordnungen des gleichen Zeitraums nicht verändert. 4.1 Tagesplan anzeigen Der Tagesplan wird im JID angezeigt, wenn der Menüpunkt "Geplant" geklickt wird. Alle geplanten Aufrufe werden gelistet. Wenn mehrere JobScheduler einen Tagesplan erstellen, werden sie in der Ansicht gemischt. Es gibt verschiedene Filter, die die Ansicht einschränken. Die Filter werden über die rechte Maustaste aktiviert. Außerdem kann die -Id gefiltert werden, so dass bei mehreren Tagesplänen nur die geplanten Läufe einer bestimmten Instanz gelistet werden. März 2015 JobScheduler Seite: 9 JobScheduler - Tagesplan erstellen und auswerten Software Open Source Der Filter für den Zeitraum bezieht sich sowohl auf die Liste mit den geplanten bzw. gelaufenen Jobs, als auch auf die Detailliste pro Job/Auftrag. Die Filter des Kontextmenus (zum Beispiel "heute") beziehen sich auf die Hauptlisten. Die Spalten sind sortierbar. Das Spalten-Layout bleibt beim Sitzungswechsel erhalten. 4.1.1 Mehrere JobScheduler Instanzen simultan mit JOC öffnen Wenn das JID das erste Mal gestartet wird, wird die Instanz von JobScheduler in JOC angezeigt, die als erster Eintrag in der Tabelle SCHEDULER_INSTANCES gefunden wird. Die Tabelle wird vom Job /sos/dailyschedule/CreateDaysSchedule mit den Angaben der Instanz versorgt, auf der der Job läuft. Weitere Instanzen können geöffnet werden, indem mit der rechten Maustaste auf den Reiter JOC oder auf den Reiter host:port geklickt wird. Im folgenden Fenster wird der Host und der Port der zu öffnenden Instanz eingegeben. Es können beliebig viele Instanzen geöffnet werden. Ebenfalls im Menü der rechten Maustaste befindet sich die Funktion zum Schließen einer JOC Ansicht. Die letzte Instanz kann nicht geschlossen werden. März 2015 JobScheduler Seite: 10 JobScheduler - Tagesplan erstellen und auswerten Software Open Source 4.1.2 Die geplanten, nicht gelaufenen Jobs vom aktuellen Tag anzeigen Die geplanten, nicht gelaufenen Jobs vom aktuellen Tag werden angezeigt, wenn in der Ansicht "Geplant" nacheinander die Filter "Nur Jobs", "verspätet", "wartend", "heute" ausgewählt werden. 4.1.3 Die fehlerhaft gelaufenen Jobs von gestern anzeigen Die fehlerhaft gelaufenen Jobs von gestern werden angezeigt, wenn in der Ansicht "History" als Zeitspanne das gestrige Datum eingestellt wird. Anschließend werden der Filter "Nur Jobs" aktiviert und nach der Spalte "Exit" sortiert. Die fehlerhaften Jobs werden rot am Anfang der Liste dargestellt. 4.1.4 Einen Job ausblenden Bestimmte Jobs können aus der History Ansicht ausgeblendet werden. Dazu wird aus dem Kontextmenü die Funktion "Zur Ignorliste" hinzufügen ausgewählt. Im Titel wird angezeigt, wieviele Jobs ausgeblendet sind. Die Ignoreliste kann an- und abgeschaltet werden. Außerdem kann die Ignoreliste zurückgesetzt werden. Die Ignoreliste wird beim Neustart wieder hergestellt. 4.1.5 Das Suchfeld Mit dem Suchfeld kann mittels einer Volltextsuche die aktuelle Liste weiter eingeschränkt werden. Es wird in den Spalten "Job", "Job Chain" und Order gesucht. 4.1.6 Die aktuell laufenden Jobs anzeigen Die aktuell laufenden Jobs werden in der Ansicht "History" angezeigt, wenn nach der Spalte Start sortiert wird. Die aktuell laufenden Jobs werden mit einem grauen Hintergrund dargestellt. Genau genommen werden die Einträge dargestellt, die keine Ende Zeit haben. Das können auch Jobläufe sein, die durch einen Taskabbruch beendet wurden. 4.1.7 Wann werden Aufträge als fehlerhaft gekennzeichnet? Aufträge werden als fehlerhaft gekennzeichnet (roter Hintergrund in der Ansicht "History"), wenn ihr Status "fehler", "error" oder "fault" enthält oder mit ! beginnt. 4.1.8 Color codes for order states Different background colors are used to provide a quick indicator of the state of an order. The colours used depend on whether the "Planned" or "History" tabs are being viewed. März 2015 JobScheduler Seite: 11 JobScheduler - Glossar Software Open Source Glossar Auftrag Ein Auftrag aktiviert die Verarbeitung einer Job-Kette. Der Auftrag enthält die Parameter für die Jobs einer Job-Kette. Jeder Job der Job-Kette hat Zugriff auf die Parameter eines Auftrags. Auftrag-Parameter überschreiben gleichnamige Job-Parameter. Ein Auftrag kann eine Zeitsteuerung enthalten. Ein Auftrag durchläuft nacheinander die Jobs einer Job-Kette. Tritt ein Verarbeitungsfehler in einem Job auf, dann kann konfiguriert werden, dass der Auftrag... • aus der Job-Kette entfernt wird. • von einem weiteren Job der Kette ausgeführt wird. • vom fehlerhaften Job wiederholt ausgeführt wird. • in der Kette am fehlerhaften Job stehen bleibt, dass heißt die Verarbeitung des Auftrag wird ausgesetzt, bis dieser wieder manuell fortgesetzt wird. Job Programme und Skripte, die vom JobScheduler ausgeführt werden sollen, müssen in Jobs eingebettet werden. Jobs können beliebige ausführbare Dateien starten oder Job-Skripte enthalten, die die Programmschnittstelle des JobScheduler verwenden. Jobs können in mehreren Instanzen (Tasks) ablaufen, wenn dies zur Skalierung der Leistung gewünscht ist. Es wird zwischen Standalone-Jobs und Auftrags-Jobs unterschieden. Während Auftrags-Jobs durch Aufträge innerhalb einer Job-Kette gestartet werden, können Standalone-Jobs davon unabhängig gestartet werden, dass heißt manuell, durch eine Zeitsteuerung oder per Verzeichnis-Überwachung. Standalone-Jobs können nicht in Job-Ketten eingereiht werden. Job-Kette Eine Reihe von Jobs, die nacheinander Aufträge verarbeiten. Der JobScheduler startet die Jobs einer Job-Kette automatisch, wenn ein Auftrag eintrifft. Job-Ketten bieten die Möglichkeit mehrere Aufträge parallel zu verarbeiten, indem die Jobs in mehreren Instanzen (Tasks) gestartet werden. JOC (JobScheduler Operations Center) JOC (JobScheduler Operations Center) ist die Oberfläche des JobScheduler zur Überwachung und Steuerung der JobScheduler Objekte, also zum Beispiel Jobs, Job-Ketten und Aufträge. _JOC öffnen Sie im Browser mit http://[scheduler_host]:[scheduler_port] , wobei [scheduler_host] und [scheduler_port] der Hostname und die Nummer des TCP Ports des JobScheduler sind (z.B. http://localhost:4444). JOE (JobScheduler Object Editor) JOE ist der JobScheduler Object Editor. Mit ihm können die JobScheduler Objekte (Jobs, Job-Ketten, Aufträge, Schedules, Prozess-Klassen, Sperren) konfiguriert werden. Gestartet wird JOE mit dem Skript: • $SCHEDULER_HOME \bin\jobeditor.cmd (Windows™) • März 2015 $SCHEDULER_HOME /bin/jobeditor.sh (Unix™) JobScheduler Seite: 12 JobScheduler - Glossar Software Open Source Schedule Die Zeitsteuerung eines Jobs oder Auftrags kann direkt am Job oder Auftrag angegeben oder in einem Schedule ausgelagert werden. Dem Job oder Auftrag wird dann lediglich der Schedule zugewiesen. Falls mehrere Jobs oder Aufträge die gleiche Zeitsteuerung haben sollen, braucht man diese so nur einmal zu formulieren. Überdies können Schedules für einen bestimmten Zeitraum andere Schedules ersetzen. So erreicht man in der Verwendung von Schedules noch mehr Flexibilität bei der Zeitsteuerung. März 2015 JobScheduler Seite: 13