WebSphere Extended Deployment Compute Grid, Version 6.1.1
             Sistemas operativos: AIX, HP-UX, Linux, Solaris, Windows,


Paso tolerante a errores

Un paso por lotes genérico tolerante a errores funciona con exactamente una secuencia de entrada, una 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 datos por lotes (BDS) y la corriente de entrada la pasa a BatchRecordProcessor para su proceso.

Antes de comenzar

BatchRecordProcessor puede devolver un objeto de datos válido o un valor nulo en caso de que se produzca un error tolerable. Si el valor devuelto es nulo, el registro leído de inputStream se anota en la secuencia de error y se invoca el método invalidRecordEncountered en 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 ejecutándose normalmente. Si los datos devueltos por BatchRecordProcessor.processRecord son válidos, éstos se pasan a la secuencia de salida de BDS.

Acerca de esta tarea

Tabla 1. Propiedades necesarias
Nombre de propiedad Valor Descripción

threshold_policy

nombre de clase java

Clase que implementa la interfaz com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy

BATCHRECORDPROCESSOR

nombre de clase java

Clase que implementa la interfaz BatchRecordProcessor

Tabla 2. Propiedades opcionales
Propiedad Valor Descripción

debug

true o false (el valor predeterminado es false)

Habilite el rastreo y la depuración del paso

EnablePerformanceMeasurement

true o false (el valor predeterminado es false)

Mide el tiempo transcurrido dentro del paso

Procedimiento

  1. Implemente la interfaz com.ibm.websphere.batch.devframework.steps.technologyadapters.BatchRecordProcessor para proporcionar la lógica empresarial para el paso. El xJCL para el paso debe declarar 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 podría 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 como inputStream y un nombre lógico de corriente de salida de BDS como outputStream y la corriente de salida de BDS para errores como 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 empaquetar la aplicación, jobstepclass debe establecerse en com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep. Por ejemplo:
    ejbname.1=IVTStep1
    jndiname.1=ejb/MyThresholdBatchStep
    jobstepclass.1=com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep



Conceptos relacionados
Patrones e infraestructura de secuencia de datos por lotes
Tareas relacionadas
Desarrollo de una aplicación de proceso por lotes sencilla
Tema de tarea    

Condiciones de uso | Comentarios

Última actualización: 22-sep-2009 09H47' EDT
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r1m1/index.jsp?topic=/com.ibm.websphere.gridmgr.doc/info/scheduler/tcgerrant.html