Architektur

Oracle SOA Suite 12c: Oracle Enterprise Scheduler (ESS)

Oracle_Enterprise_Scheduler

Der Oracle Enterprise Scheduler (ESS) ist bereits seit längerer Zeit ein Bestandteil der Fusion Middleware. Der ESS ermöglicht die Ausführung vieler verschiedener Komponenten, darunter zum Beispiel WebServices oder einfache Java Klassen, zu vorher bestimmten Zeiten und Intervallen.

Bisher wurde ESS jedoch nur als Teil von Fusion Applications installiert. Es gab keine Möglichkeit das Produkt in einer reinen Oracle SOA Suite 11g Umgebung zu nutzen. An dieser Stelle hat Oracle mit dem neuen Release 12c nachgebessert und ESS nun auch mit anderen Produkten nutzbar gemacht. Im Folgenden habe ich die neuen Möglichkeiten für euch getestet.

DefaultDomain vorbereiten

Die Standard Konfiguration der DefaultDomain des integrierten WebLogic Servers installiert ESS nicht automatisch. Daher muss zunächst die Domain entsprechend vorbereitet werden. Dazu wird der Configuration Wizard gestartet. Diesen findet man unter:

Nachdem der Configuration Wizard gestartet ist, kann man eine neue Domain erstellen oder eine alte erweitern. In diesem Fall erweitern wir die alte DefaultDomain.

Extending DefaultDomain

Extending DefaultDomain

Im nächsten Schritt werden die benötigten Funktionalitäten ausgewählt. Für den ESS müssen die Optionen „Oracle Enterprise Scheduler Basic“ und „Oracle Enterprise Manager Plugin for ESS“ ausgewählt werden.

ESS Options

ESS Optionen

Nach der Konfiguration der benötigten Datenbankschemas wird die Erweiterung der Domain abgeschlossen. ESS sollte nun im Enterprise Manager des integrierten WebLogic Servers vorhanden sein.

ESS in EM

ESS in EM

Konzepte des ESS

Das Planen von Jobs in ESS basiert auf drei grundlegenden Komponenten

  • Job Definitions
  • Schedules
  • Job Requests

Eine Job Definition beschreibt eine ausführbare Einheit mit allen Details die zur Ausführung benötigt werden. ESS unterstützt die folgenden Jobtypen:

 

Job Types

Job Types

Schedules beschreiben wann und wie oft ein Job ausgeführt werden soll. Der Enterprise Manager ermöglicht die Definition eines genauen Zeitpunktes aber auch von Intervallen mit vordefinierten Start-/Endzeitpunkten.

Schedules

Schedules

Ein Job Request ist die Kombination von einer Jobdefinition und einem Schedule. Er ermöglicht somit die Ausführung planbarer Jobs.

Erstellen eines Jobs im Enterprise Manager

Ein neuer Job kann direkt im Enterprise Manager über die ESSAPP Anwendung eingeplant werden. Sie ermöglicht es alle oben beschriebenen Artefakte ohne zusätzliche IDE zu definieren. Im Folgenden werden die dafür benötigten Schritte beschrieben. Im Beispiel wird ein One-Way WebService aufgerufen. Dieser Service erhält als Payload einen String, welcher den Namen des Aufrufers (Invoker) darstellt. In einem Mediator wird die Payload zum Satz „Got invoked by <invoker> on <dateTime>“ transformiert und in eine Datei geschrieben.

Beispiel SCA

Beispiel SCA

Erstellen der Job Definition

Die Job Definitions Maske kann über das Kontextmenü der ESSAPP erreicht werden.

Job Definition

Job Definition

Auf der folgenden Maske können existierende Jobs gefiltert werden. Unter anderem besteht die Möglichkeit nach Application zu filtern. Standardmäßig ist hier die EssNativeHostingApp als Option vorhanden. ESS bietet neben der Standardapplikation die Möglichkeit die Scheduling-Dienste über Bibliotheken und APIs in eigenen Anwendungen zu integrieren. Die eingeplanten Jobs sind in dieser Maske pro Applikation aufgeführt.

Eine neue Jobdefinition wird über den Create Button erstellt.

Erstellung Job Definition

Erstellung Job Definition

In der nächsten Maske werden die Details der Jobdefinition angegeben. In diesem Beispiel möchten wir einen One-Way WebService aufrufen. Daher wählen wir den entsprechenden Job Typ aus, stellen die Service WSDL URL zur Verfügung und definieren die Standardpayload für den Aufruf. Die Konfiguration wird mit dem „OK“ Button abgeschlossen.

Job Definition Wizard

Job Definition Wizard

Einplanen der erstellten Jobdefinition

Im nächsten Schritt wird der Job eingeplant. Die entsprechenden Dialoge können über den Menüpunkt Submit Job Request erreicht werden.

Submit Job Request

Submit Job Request

Zur Planung des Jobs muss zunächst die zuvor erstellte Jobdefinition ausgewählt werden. Anschließend kann die Payload für diesen Jobrequest noch einmal angepasst werden. Zuletzt muss entweder ein existierender Schedule ausgewählt, oder ein neuer Schedule für diesen Jobrequest definiert werden. In diesem Beispiel wurde ein Schedule angelegt, der den Webservice täglich um 23 Uhr aufruft. Mit dem „OK“ Button lässt sich die Jobkonfiguration abschließen.

Job Scheduling

Job Scheduling

Monitoring von laufenden Jobs

Neben der Erstellung von neuen Jobrequest bietet die ESSAPP auch viele Funktionen um existierende Jobs zu überwachen. Über den Menüpunkt Search Job Request kann gezielt nach bestimmten Jobs gesucht werden. Im Suchergebnis kann man alle gelaufenen Instanzen der Prozesse betrachten.

Monitoring

Monitoring

Zu jeder Jobinstanz selbst werden außerdem genaue Details wie Wait time, Execution time, ausführender Server und Resultat gespeichert.

Monitoring Job Run

Monitoring Job Run

Fazit

Die Definition von planbaren und wiederkehrenden Jobs ist und bleibt eine häufig benötigte Anforderung bei Oracle SOA Suite-Projekten. Mit dem neuen Release Oracle SOA Suite 12c wird die Umsetzung dieser Anforderung durch die Integration des ESS deutlich vereinfacht und keine eigenen Ansätze oder Lösungen von Drittanbietern müssen verwendet werden.

Links

> Oracle Enterprise Scheduler Documentation
> Managing Oracle Enterprise Scheduler Requests
> Managing the Work of Oracle Enterprise Scheduler Jobs
> Monitoring Oracle Enterprise Scheduler

Weitere Posts zur SOA Suite 12c

> Oracle SOA Suite12c: Integration Service Bus (OSB)
> Oracle SOA Suite 12c: Integrierte Testumgebung in JDeveloper
> Oracle SOA Suite 12c: Mehr Schwung mit neuem Feature-Set