WebSphere Extended Deployment Compute Grid, Version 6.1
             Operating Systems: AIX, HP-UX, Linux, Solaris, Windows, z/OS


Error Tolerant step

An error tolerant generic batch step works with exactly one input, one output stream and one error stream. This step during each iteration of the batch loop reads a single entry from the batch data stream (BDS) input stream passes it to the BatchRecordProcessor for processing.

Before you begin

The BatchRecordProcessor may either return a valid data object or a null value in case of a tolerable error. If the returned value is null, the record read from the inputStream is logged onto the errorstream and the invalidRecordEncountered method is invoked on the ThresholdPolicy. The threshold policy determines whether the error tolerance threshold has been reached. If so, it returns STEP_CONTINUE_FORCE_CHECKPOINT_BEFORE_PROCESSING_CANCEL, which forces a checkpoint and puts the job in the restartable state. Otherwise, the job continues as normal. If the data returned by BatchRecordProcessor.processRecord is valid, then the data is passed to the BDS Outputstream.

About this task

Table 1. Required properties
Property name Value Description

threshold_policy

java class name

Class implementing the com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy interface

BATCHRECORDPROCESSOR

java class name

Class implementing the BatchRecordProcessor interface

Table 2. Optional properties
Property Value Description

debug

true or false (default is false)

Enable tracing and debugging on the step

EnablePerformanceMeasurement

true or false (default is false)

Measure time spent within the step

Procedure

  1. Implement the interfacecom.ibm.websphere.batch.devframework.steps.technologyadapters.BatchRecordProcessor to provide the business logic for the step. The xJCL for the step should declare a property BATCHRECORDPROCESSOR with the value set to the implementation of the interface. For example:
    ...
    <props>		        
    	<prop name="BATCHRECORDPROCESSOR" value="com.ibm.websphere.batch.samples.tests.steps.InfrastructureVerificationTest"/>
    </props>
    ...    
  2. Implement the interface com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy to provide the threshold policy for the step. You could also use the product implementations such as com.ibm.websphere.batch.devframework.thresholdpolicies.PercentageBasedThresholdPolicy or com.ibm.websphere.batch.devframework.thresholdpolicies.RecordBasedThresholdPolicy. Declare the ThresholdPolicy to use in the xJCL as shown in the following code snippet:
    ...  
    <props>		 		           
    		 <prop name="threshold_policy" value="com.ibm.websphere.batch.devframework.thresholdpolicies.PercentageBasedThresholdPolicy"/>  
    </props>  
    ...  
  3. Set the BDS input stream logical name to inputStream and a BDS output stream logical name to outputStream and the BDS output stream for errors to errorStream.. The logical names are declared in the xJCL. For example:
    <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. While using the BatchPackager for packaging, the application the jobstepclass must be set to com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep. For example:
    ejbname.1=IVTStep1
    jndiname.1=ejb/MyThresholdBatchStep
    jobstepclass.1=com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep



Related concepts
Batch data stream framework and patterns
Related tasks
Developing a simple batch application
Task topic    

Terms of Use | Feedback

Last updated: Oct 30, 2009 6:22:31 PM EDT
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r1/index.jsp?topic=/com.ibm.websphere.gridmgr.doc/info/scheduler/tcgerrant.html