Implementación del paso tolerante a errores (ThresholdBatchStep)

Un paso por lotes genérico de tolerancia a errores funciona con una entrada, una secuencia de salida y una secuencia de error. Durante cada iteración del bucle por lotes, este paso lee una sola entrada de la corriente de entrada de la corriente de datos por lotes (BDS) y la pasa a la propiedad BatchRecordProcessor para su proceso.

Antes de empezar

La propiedad BatchRecordProcessor o bien puede devolver un objeto de datos válido o un valor nulo en un error tolerable. Si el valor devuelto es nulo, el registro leído desde la corriente de entrada se conecta a la secuencia de error y se invoca el método invalidRecordEncountered en la interfaz ThresholdPolicy. La política del umbral determina si se ha alcanzado el umbral de tolerancia a errores. Si es así, devuelve STEP_CONTINUE_FORCE_CHECKPOINT_BEFORE_PROCESSING_CANCEL, que fuerza un punto de control y pone el trabajo en estado reiniciable. De lo contrario, el trabajo sigue normalmente. Si los datos devueltos por BatchRecordProcessor.processRecord son válidos, los datos se pasan a la corriente de salida de BDS.

Acerca de esta tarea

Utilice las propiedades siguientes para implementar el paso tolerante a errores.

Tabla 1. Propiedades obligatorias. La tabla incluye el nombre de la propiedad, el valor y la descripción.
Nombre de propiedad Value Descripción
threshold_policy Nombre de la clase Java Clase que implementa la interfaz com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy
BATCHRECORDPROCESSOR Nombre de la clase Java Clase que implementa la interfaz BatchRecordProcessor
Tabla 2. Propiedades opcionales. La tabla incluye el nombre de la propiedad, el valor y la descripción.
Propiedad Value Descripción
debug true o false (el valor predeterminado es false) Habilitar el rastreo y la depuración en el paso
EnablePerformanceMeasurement true o false (el valor predeterminado es false) Mide el tiempo transcurrido en el paso

Procedimiento

  1. Implemente la interfazcom.ibm.websphere.batch.devframework.steps.technologyadapters.BatchRecordProcessor para proporcionar la lógica de negocio del paso.

    En el xJCL del paso, declare una propiedad BATCHRECORDPROCESSOR con el valor establecido en la implementación de la interfaz. Por ejemplo:

    ...
    	<props>
    		<prop name="BATCHRECORDPROCESSOR"
        value="com.ibm.websphere.batch.samples.tests.steps.InfrastructureVerificationTest"/>
    </props>
    ...    
  2. Implemente la interfaz com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy para proporcionar la política de umbral para el paso. También puede utilizar las implementaciones de producto como com.ibm.websphere.batch.devframework.thresholdpolicies.PercentageBasedThresholdPolicy o com.ibm.websphere.batch.devframework.thresholdpolicies.RecordBasedThresholdPolicy.

    Declare ThresholdPolicy para que se utilice en el xJCL tal como se muestra en el siguiente fragmento de código:

    ...  
    	<props>
    	 	<prop name="threshold_policy"
        value="com.ibm.websphere.batch.devframework.thresholdpolicies.PercentageBasedThresholdPolicy"/>
    </props>  
    ...  
  3. Establezca el nombre lógico de la corriente de entrada de BDS en inputStream y el nombre lógico de la corriente de salida de BDS en outputStream y la corriente de salida de BDS para errores en errorStream.

    Los nombres lógicos se declaran en el xJCL. Por ejemplo:

    <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. Aunque se utilice BatchPackager para empaquetado, la aplicación para la clase del paso de trabajo, jobstepclass, debe establecerse en com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep. Por ejemplo:

    Utilizando WebSphere Extended Deployment Compute Grid versión 6.1.1:

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

    Utilizando WebSphere Extended Deployment Compute Grid versión 8.0:

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

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_cgerrant
File name: tgrid_cgerrant.html