Stapelanwendungen sind EJB-basierte J2EE-Anwendungen (Java 2 Platform Enterprise Edition). Diese Anwendungen entsprechen einigen klar strukturierten Schnittstellen, die es der Stapelausführungsumgebung ermöglichen, die Ausführung der für die Anwendung vorgesehenen Stapeljobs zu steuern.
Ein Stapeljob kann aus einem oder mehreren Stapeljobabschnitten bestehen. 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-, Business- und Schlüssel-Interfaces in WebSphere verwendet. Das Business-Interface einer Stapelabschnitts-EJB, com.ibm.websphere.batch.BatchJobStepLocalInterface, stellt Methoden bereit, die die Stapelausführungsumgebung aufruft, um eine Stapelanwendung zu steuern.
In ihrem Deployment-Deskriptor muss eine Stapelanwendung eine Special Stateless Session Bean deklarieren. Diese Bean agiert als Stapeljob-Controller und muss Enterprise-Beans-Referenzen auf alle Stapelabschnitts-Enterprise-Beans enthalten, die in der Stapelanwendung verwendet werden. Die Implementierung dieser Bean wird von WebSphere und nicht von der Stapelanwendung bereitgestellt. Sie muss lediglich im Deployment-Deskriptor der Stapelanwendung deklariert werden. Pro Stapelanwendung kann nur eine Controller-Bean definiert werden.
Einem Stapelabschnitt können null oder mehr Batch-Datenströme zugeordnet sein. Ein Batch-Datenstrom (Batch Data Stream, BDS) ist eine Java-Klasse, die das Interface com.ibm.websphere.batch.BatchDataStream implementiert. Ein BDS ist ein Java-Objekt, das den Eingabedatenstrom mit den von einem Stapelabschnitt zu verarbeitenden Daten liest. Ein BDS kann auch ein Ausgabedatenstrom sein, der Daten schreibt, anstatt sie zu lesen.
Methoden für das Interface BatchDataStream bieten der Stapelausführungsumgebung 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 Stapelausführungsumgebung verwendet Prüfpunktalgorithmen, um zu bestimmen, wie oft globale Transaktionen, unter denen Stapelabschnitte aufgerufen werden, festgeschrieben werden sollen. Die xJCL-Definition eines Stapeljobs definiert die zu verwendenden Prüfpunktalgorithmen. Merkmale, die für Prüfpunktalgorithmen in xJCL angegeben sind, ermöglichen die Anpassung des Prüfpunktverhaltens, z. B. Zeitlimits für Transaktionen und Prüfpunktintervallen, an Stapelabschnitte. WebSphere Extended Deployment stellt zeitbasierte und satzbasierte Prüfpunktalgorithmen bereit. Außerdem wird ein Prüfpunktalgorithmus-SPI für das Erstellen zusätzlicher benutzerdefinierter Prüfpunktalgorithmen bereitgestellt.
Packen
Eine Stapelanwendung wird als J2EE-EJB-Anwendung in eine J2EE-EAR-Datei gepackt. Entity-Enterprise-Beans von Stapelabschnitten und Batch-Datenstromklassen, die von Stapelabschnitten verwendet werden, müssen mit der Anwendung gepackt werden. Außerdem muss die Stapeljob-Controller-Bean im Enterprise-Bean-Deployment-Deskriptor jeder Stapelanwendung deklariert werden. J2EE-Standardentwicklungstools können verwendet werden, um die EAR-Datei der Stapelanwendung zu entwickeln und zu packen.
Ergebnisalgorithmen sind eine Zusatzeinrichtung des Stapelprogrammiermodells. Ergebnisalgorithmen werden auf der Basis ihrer Rückkehrcodes auf Stapelabschnitte angewendet, und die Algorithmen werden verwendet, um die Rückkehrcodes von Stapeljobs zu bearbeiten. Außerdem fungieren die Algorithmen auf der Basis von Abschnittsrückkehrcodes als Platzhalter für Auslöser.
Related concepts
Anwendungen mit langer Laufzeit entwickeln