Abschnitt für Fehlertoleranz implementieren (ThresholdBatchStep)

Ein generischer Stapelabschnitt für Fehlertoleranz arbeitet mit einem Eingabedatenstrom, einem Ausgabedatenstrom oder einem Fehlerdatenstrom. In diesem Abschnitt wird bei jeder Iteration der Stapelschleife ein einzelner Eintrag aus dem BDS-Eingabedatenstrom (Batch Data Stream, Stapeldatenstrom) gelesen und zur Verarbeitung an die Eigenschaft "BatchRecordProcessor" übergeben.

Vorbereitende Schritte

Die Eigenschaft "BatchRecordProcessor" kann ein gültiges Datenobjekt oder einen Nullwert im Falle eines tolerierbaren Fehlers zurückgeben. Bei Rückgabe eines Nullwerts wird der aus dem Eingabedatenstrom gelesene Datensatz im Fehlerdatenstrom protokolliert und die Methode "invalidRecordEncountered" in der Schnittstelle "ThresholdPolicy" aufgerufen. Die Schwellenwertrichtlinie bestimmt, ob der Schwellenwert für die Fehlertoleranz erreicht wurde. Ist das der Fall, wird "STEP_CONTINUE_FORCE_CHECKPOINT_BEFORE_PROCESSING_CANCEL" zurückgegeben, was zur Folge hat, dass ein Prüfpunkt erzwungen wird und der Job in den Status "Wieder anlauffähig" wechselt. Andernfalls wird der Job normal fortgesetzt. Wenn die vom BatchRecordProcessor.processRecord zurückgegebenen Daten gültig sind, werden sie an den Ausgabedatenstrom des Stapeldatenstroms übergeben.

Informationen zu diesem Vorgang

Verwenden Sie die folgenden Eigenschaften, um den Abschnitt für Fehlertoleranz zu implementieren.

Tabelle 1. Erforderliche Eigenschaften. In dieser Tabelle sind die Eigenschaftsnamen, Eigenschaftswerte und Eigenschaftsbeschreibungen aufgelistet.
Eigenschaftsname Wert Beschreibung
threshold_policy Name der Java-Klasse Klasse, die die Schnittstelle com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy implementiert
BATCHRECORDPROCESSOR Name der Java-Klasse Klasse, die die Schnittstelle BatchRecordProcessor implementiert
Tabelle 2. Optionale Eigenschaften. In dieser Tabelle sind die Eigenschaftsnamen, Eigenschaftswerte und Eigenschaftsbeschreibungen aufgelistet.
Eigenschaft Wert Beschreibung
debug true oder false (der Standardwert ist false) Tracing und Debugging für den Abschnitt aktivieren
EnablePerformanceMeasurement true oder false (der Standardwert ist false) Die im Abschnitt verwendete Zeit messen

Vorgehensweise

  1. Implementieren Sie die Schnittstelle com.ibm.websphere.batch.devframework.steps.technologyadapters.BatchRecordProcessor, um die Geschäftslogik für den Abschnitt bereitzustellen.

    Deklarieren Sie in der xJCL für den Abschnitt die Eigenschaft "BATCHRECORDPROCESSOR" mit der Implementierung der Schnittstelle als Wert. Beispiele:

    ...
    	<props>
    		<prop name="BATCHRECORDPROCESSOR" value="com.ibm.websphere.batch.samples.tests.steps.InfrastructureVerificationTest"/>
    </props>
    ...    
  2. Implementieren Sie die Schnittstelle com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy, um die Schwellenwertrichtlinie für den Abschnitt bereitzustellen. Sie können auch die Produktimplementierungen verwenden, wie z. B. com.ibm.websphere.batch.devframework.thresholdpolicies.PercentageBasedThresholdPolicy oder com.ibm.websphere.batch.devframework.thresholdpolicies.RecordBasedThresholdPolicy.

    Deklarieren Sie die Schwellenwertrichtlinie, die in der xJCL deklariert werden soll, wie im folgenden Codeausschnitt gezeigt:

    ...  
    	<props>
    	 	<prop name="threshold_policy" value="com.ibm.websphere.batch.devframework.thresholdpolicies.PercentageBasedThresholdPolicy"/>
    </props>
    ...  
  3. Setzen Sie den logischen Namen des BDS-Eingabedatenstroms auf inputStream, den logischen Namen des BDS-Ausgabedatenstroms auf outputStream und den BDS-Ausgabedatenstrom für Fehler auf errorStream.

    Die logischen Namen sind in der xJCL deklariert. Beispiele:

    <batch-data-streams>
       <bds>
    	<logical-name>inputStream</logical-name>
    	<props>
            .... 
       </bds>
        <bds>
    	<logical-name>outputStream</logical-name>
    	<props>
    	...
        </bds>
        <bds>
    		<logical-name>errorStream</logical-name>
    	<props>
    	...
         </bds>
    </batch-data-streams>
  4. Wenn Sie BatchPackager für das Packen verwenden, muss die Anwendung für die Jobabschnittsklasse jobstepclass auf com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep gesetzt sein. Beispiel:

    Verwendung von WebSphere Extended Deployment Compute Grid Version 6.1.1:

    ejbname.1=IVTStep1
    jndiname.1=ejb/MyThresholdBatchStep
    jobstepclass.1=com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep

    Verwendung von WebSphere Extended Deployment Compute Grid Version 8.0:

    ...
    <job-step name="Step1">
    <classname>com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep</classname>
    ...

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_cgerrant
Dateiname:tgrid_cgerrant.html