Freitag, 29. Mai 2015

Oracle Enterprise Scheduler Service (ESS) Handson Tutorial

Der Enterprise Scheduler Service (ESS) wurde ursprünglich aus Eigenbedarf entwickelt und stammt aus der Oracle Applications Entwicklung. Seit einiger Zeit ist der ESS aber auch Bestandteil der Oracle SOA Suite und steht somit Anwendern für eigene Aufgaben zur Verfügung.
Wie der Name andeutet, dient der ESS dem zeitgesteuerten Ausführen von Jobs. Im Gegensatz zu einfachen cron-Jobs bietet der ESS aber viele zusätzliche Funktionalitäten, welche im Enterprise-Umfeld benötigt werden. Der ESS kann in einen Cluster deployed werden um Hochverfügbarkeit herzustellen, es können Abhängigkeiten zwischen Jobs definiert und aufgelöst werden, Resource-Management kann betrieben werden und die Verwaltung sowie das Monitoring können direkt aus der Enterprise Manager Console erfolgen. Komplexere Szenarien können programmatisch über die ESS API's (Java, Web Services) umgesetzt werden.
Der ESS ist damit gut gewappnet auch für komplexeste Szenarien im Enterprise Umfeld. Dieses schlägt sich auch im Umfang der ESS Dokumentation wieder, die in Summe über 800 Seiten auf die Waage bringt. Wer die vielfältigen Möglichkeiten des ESS in Gänze nutzen möchte, kommt um die umfangreiche Lektüre wohl nicht herum. Oftmals wird in Projekten aber auch nur ein einfacherer Scheduler benötigt. In der umfangreichen Dokumentation einen Einstieg zu finden, ist nicht leicht. Dieses Handson-Tutorial soll über die ersten Schritte hinweghelfen.

Überprüfen der Installation

Der ESS wird typischerweise mit der SOA installiert, ist aber nicht zwingend in der Domain-Konfiguration enthalten.


Über den Domain Configuration Wizard ($MW_HOME/soa12103/wlserver/common/bin/config.sh) wird die vorhandene Domain aktualisiert. Wichtig ist, dass die beiden Punkte Oracle Enterprise Scheduler Service Basic und Oracle Enterprise Manager Plugin for ESS angehakt sind. Falls diese fehlen, müssen sie hier nachinstalliert werden.


Wichtig ist auch, dass auch das Datenbank-Schema bereits angelegt ist.


Und schliesslich muss die ESSAPP auf einen Managed Server deployed sein, typischerweise wie hier auf einen eigenen ess_server1 oder mit auf dem soa_sever1.
Wenn alles installiert ist, sollte sich die ESS Health Check Seite aufrufen lassen unter server:port/EssHealthCheck.


Die Verwaltung für den ESS ist in den Enterprise Manager integriert. Wichtig: solange der Managed Server mit dem ESS noch nicht gestartet wurde, wird auch die Auswahl Scheduling Services links nicht angezeigt, auch wenn alles bereits richtig installiert wurde. Erst nach dem ersten Start taucht die Option auf.
Zum Testen wird ein kleines Script benötigt, z.B. dieses test.sh im Homeverzeichnis des Oracle-Users:
date >> /home/oracle/ess.txt
Hiermit wird einfach die Ausführungszeit an die Datei ess.txt angehängt.

Um das Script über den ESS laufen zu lassen, muss zunächst eine entsprechende Job-Definition erstellt werden.

Auf der Job Definitions Seite wird über Create ein neuer Job erstellt.


Hier wird das Script jetzt dem ESS bekannt gemacht. Wichtig ist, den Job Type auf ProcessJobType umzustellen. Danach kann der vollständige Pfad zum Script eingegeben werden. Abschliessen mit OK.

Die Job Definition ist jetzt zwar im System bekannt, wurde aber noch nicht zur Ausführung vorgesehen. Hierzu muss ein Job Request erstellt werden.


Die bestehende Job Definition kann über die Suche (Lupe) ausgewählt werden. Gibt man keine weiteren Parameter an, wird die Ausführung sofort und genau ein Mal vorgesehen.
Auf der Hauptseite des ESS sollte kurz danach ein erfolgreicher Job Request angezeigt werden.
Die Ausführung kann auch durch Blick in die Ausgabedatei ess.txt bestätigt werden.

Nun kann der ESS die Jobs natürlich nicht nur sofort, sondern auch zu festgelegten Zeiten ausführen. Hierfür muss ein Schedule definiert werden.
Über den Create Button kann ein neuer Schedule angelegt werden.

Hier können auch Intervalle eingegeben werden, z.B. alle zwei Minuten.

Nachdem der Schedule angelegt ist, kann damit ein neuer Job Request erstellt werden.

Hier werden jetzt links der bestehende Job Request und rechts der gerade erstellte Schedule eingetragen und das ganze per OK abgeschlossen.
Nach zwei Minuten sollten dann auch die Rückmeldungen in der Ausgabedatei eintreffen und mit etwas Zeitverzug auch auf der ESS-Hauptseite des Enterprise Manager auftauchen.
Trotz der komplexen Möglichkeiten und der Dokumentation im hohen dreistelligen Bereich lassen sich also trotzdem einfache Scheduling-Aufgaben schnell mit dem ESS umsetzen.