Stapeldatenströme
Stapeldatenströme (BDS) sind Java-Objekte, die eine Abstraktion für den von einem Stapelabschnitt verarbeiteten Datenstrom bereitstellen. Einem Stapelabschnitt können ein oder mehrere Stapeldatenstromobjekte zugeordnet sein. Die Grid-Endpunkte machen den Stapeldatenstrom, der dem Stapelabschnitt zugeordnet ist, zur Laufzeit verfügbar. Die Grid-Endpunkte verwalten auch den Lebenszyklus eines Stapeldatenstroms, indem sie stapelspezifische Callbacks aufrufen.
Ein Stapeldatenstromobjekt implementiert die Schnittstelle "com.ibm.websphere.batch.BatchDataStream". Diese Schnittstelle hat keinen Bezug zum Server. Das implementierende Objekt kann Daten von jedem Typ einer Datenquelle abrufen, z. B, Dateien und Datenbanken. Callback-Methoden für die Schnittstelle "BatchDataStream" bieten den Grid-Endpunkte die Möglichkeit, den BDS zur Laufzeit zu steuern. Eine der Schlüsselfunktionen eines Stapeldatenstroms besteht darin, seine aktuelle Position im Datenstrom an die Grid-Endpunkte zu übergeben und sich an eine bestimmte Position im Datenstrom zu verschieben. Diese Funktion ermöglicht den Grid-Endpunkten (in der Datenbank der Grid-Endpunkte) festzuhalten, wie viele Daten ein Stapelabschnitt verarbeitet hat. Diese Informationen werden an jedem Prüfpunkt aufgezeichnet. Daher können die Grid-Endpunkte einen Stapeljob von einer erfassten Position im Datenstrom erneut starten, falls der Job abgebrochen wird oder aufgrund eines behebbaren Fehlers fehlschlägt.
Für die Schnittstelle "BatchDataStream" sind die folgenden Hauptmethoden verfügbar. Weitere Informationen finden Sie im Artikel zur Anwendungsprogrammierschnittstelle für die Schnittstelle "BatchDataStream".
- void open()
- Wird von Grid-Endpunkten aufgerufen, um den Stapeldatenstrom zu öffnen.
- void close()
- Wird von Grid-Endpunkten aufgerufen, um den Stapeldatenstrom zu schließen.
- void initialize(String ilogicalname, String ijobstepid)
- Wird von Grid-Endpunkten aufgerufen, um den Stapeldatenstrom zu initialisieren und ihm seinen logischen Namen und seine Stapelabschnitts-ID zuzuweisen.
- String externalizeCheckpointInformation()
- Wird von Grid-Endpunkten vor einem Prüfpunkt aufgerufen, um den aktuellen Cursor des Stapeldatenstroms aufzuzeichnen.
- void internalizeCheckpointInformation(String chkpointInfo()
- Wird von Grid-Endpunkten aufgerufen, um den Stapeldatenstrom über den zuvor aufgezeichneten Cursor "chkpointInfo" zu informieren. Normalerweise wird "positionAtCurrentCheckpoint" nach diesem Aufruf aufgerufen, um den Stapeldatenstrom an diesen Cursor zu verschieben.
- void positionAtCurrentCheckpoint()
- Wird von Grid-Endpunkten aufgerufen, nachdem "internalizeCheckpointInformation" aufgerufen wurde, um den Stapeldatenstrom an den von "chkpointInfo" angezeigten Cursor ("chkpointInfo" wird mit dem Aufruf "internalizeCheckpointInformation" übergeben) zu verschieben.
Die Schnittstelle "BatchDataStream" hat keine Methoden für das Abrufen oder Schreiben von Daten. In der Schnittstelle sind keine Methoden des Typs "getNextRecord" und "putNextRecord" definiert, die ein Stapelabschnitt aufrufen kann, um Lese- oder Schreibzugriffe auf das Stapeldatenstromobjekt durchzuführen. Die Methoden für die Übergabe von Daten zwischen dem Stapelabschnitt und dem BDS-Objekt liegen in der Verantwortung des implementierenden BDS-Objekts. Die Stapelbeispiele, die von diesem Produkt unterstützt werden, veranschaulichen die Implementierung von Stapeldatenströmen.
- Transaktionsumgebung
- Alle Methoden eines Stapeldatenstromobjekts werden in einer globalen Transaktion aufgerufen. Es gibt keine Garantie, dass nachfolgende, an ein Stapeldatenstromobjekt gerichtete Methodenaufrufe unter derselben Transaktion ausgeführt werden, da die Grid-Endpunkte und nicht der Stapeldatenstrom Eigner der Transaktion sind.