Stapelanwendungen sind EJB-basierte J2EE-Anwendungen (Java 2 Platform Enterprise Edition). Diese Anwendungen entsprechen einigen klar strukturierten Schnittstellen, die es der Stapellaufzeitumgebung ermöglichen, den Start der für die Anwendung vorgesehenen Stapeljobs zu steuern. Das Erstellen einer POJO-basierten Stapelanwendung ist die bevorzugte Methode für das Erstellen einer Stapelanwendung.
Ein Stapeljob kann aus einem oder mehreren Stapeljobabschnitten bestehen. Alle Abschnitte in einem Job werden nacheinander ausgeführt. Das Unterteilen einer Stapelanwendung in Abschnitte ermöglicht die Trennung unterschiedlicher Tasks in einer Stapelanwendung. Ein Stapelabschnitt wird als lokale CMP-Entity-Bean implementiert, die Home-, Geschäfts- und Schlüsselschnittstellen verwendet, die von WebSphere Extended Deployment bereitgestellt werden. Die Geschäftsschnittstelle einer Stapelabschnitts-EJB, com.ibm.websphere.batch.BatchJobStepLocalInterface, stellt Methoden bereit, die die Stapellaufzeitumgebung aufruft, um eine Stapelanwendung zu steuern.
Sie können Jobpläne so übergeben, dass Jobs zu einer bestimmten Zeit verarbeitet werden. Außerdem können Sie Jobpläne so konfigurieren, dass ein Job zu einer bestimmten Zeit am Tag, in der Woche usw. ausgeführt bzw. erneut ausgeführt wird. Wenn Sie bereit sind, einen Job zu übergeben, können Sie die Übergabe verzögern oder Startdatum und Startzeit für die Ausführung des Jobs angeben.
In ihrem Implementierungsdeskriptor muss eine Stapelanwendung eine spezielle Stateless Session Bean deklarieren. Diese Bean agiert als Stapeljob-Controller und muss Enterprise-Bean-Referenzen auf alle Stapelabschnitts-Enterprise-Beans enthalten, die in der Stapelanwendung verwendet werden. Die Implementierung dieser Bean wird von WebSphere Extended Deployment und nicht von der Stapelanwendung bereitgestellt. Die Bean muss nur im Implementierungsdeskriptor der Stapelanwendung deklariert werden. Pro Stapelanwendung kann nur eine Controller-Bean definiert werden.
Einem Stapelabschnitt können null oder mehr Stapeldatenströme zugeordnet sein. Ein Stapeldatenstrom ist eine Java-Klasse, die die Schnittstelle com.ibm.websphere.batch.BatchDataStream implementiert. Ein Stapeldatenstrom ist ein Java-Objekt, das den Eingabedatenstrom liest, der die von einem Stapelabschnitt zu verarbeitenden Daten enthält. Ein Stapeldatenstrom kann auch ein Ausgabedatenstrom sein, der Daten schreibt, anstatt sie zu lesen.
Methoden für die Schnittstelle "BatchDataStream" bieten der Stapellaufzeitumgebung die Möglichkeit, den von einem Stapelabschnitt verwendeten Datenstrom zu steuern. Beispielsweise ruft eine der Methoden aktuelle Cursor-Daten aus dem Datenstrom ab, um zu überwachen, wie viele Daten vom Stapelabschnitt verarbeitet wurden.
Die Stapellaufzeitumgebung verwendet Prüfpunktalgorithmen, um zu bestimmen, wie oft globale Transaktionen, unter denen Stapelabschnitte aufgerufen werden, festgeschrieben werden sollen. Die xJCL-Definition (XML Job Control Language) eines Stapeljobs definiert die zu verwendenden Prüfpunktalgorithmen. Eigenschaften, die für Prüfpunktalgorithmen in xJCL angegeben sind, ermöglichen die Anpassung des Prüfpunktverhaltens, z. B. Zeitlimits für Transaktionen und Prüfpunktintervalle, an Stapelabschnitte. WebSphere Extended Deployment stellt zeitbasierte und satzbasierte Prüfpunktalgorithmen bereit. Außerdem wird eine SPI für Prüfpunktalgorithmen bereitgestellt, mit der zusätzliche angepasste Prüfpunktalgorithmen erstellt werden können.
Eine Stapelanwendung wird als J2EE-EJB-Anwendung in eine J2EE-EAR-Datei gepackt. Sie müssen Entity-Beans für Stapelabschnitte und Stapeldatenstromklassen, die von den Stapelabschnitten verwendet werden, mit der Anwendung packen. Außerdem muss die Stapeljob-Controller-Bean im Enterprise-Bean-Implementierungsdeskriptor jeder Stapelanwendung deklariert werden. Verwenden Sie für die Entwicklung und für das Packen der EAR-Datei für die Stapelanwendung J2EE-Standardentwicklungstools.
Ergebnisalgorithmen sind eine Zusatzeinrichtung des Stapelprogrammiermodells. Ergebnisalgorithmen werden über XML Job Control Language (xJCL) auf einen Stapelabschnitt angewendet. Die Algorithmen werden verwendet, um die Rückkehrcodes von Stapeljobs zu bearbeiten. Außerdem sind diese Algorithmen Platzhalter für Trigger auf der Basis des Rückkehrcodes.
Rückkehrcodes von Stapeljobs lassen sich in zwei Gruppen unterteilen: System und Benutzer. Rückkehrcodes des Systems werden als negative Integer definiert. Rückkehrcodes der Benutzeranwendung werden als positive Integer definiert. Sowohl der Systembereich als auch der Benutzerbereich enthalten den Rückkehrcode (0). Wenn der Rückkehrcode einer Benutzeranwendung im Bereich für den Systemrückkehrcode angegeben ist, wird in den Job- und Systemprotokollen eine Warnung übergeben.