Proceso de omisión de registros

Utilice el proceso de skip-record para omitir errores de lectura y grabación de registros en trabajos por lotes de transacción. Especifique políticas de omisión de registros en el xJCL.

Proceso de omisión de registros

Cada secuencia de datos por lotes tiene su propia configuración política de omisión de registros. Para habilitar el proceso de omisión de registros, especifique un valor distinto de cero para la propiedad de la secuencia de datos por lotes com.ibm.batch.bds.skip.count en el xJCL.

Puede volver a definir el proceso de registro de saltos utilizando la propiedad com.ibm.batch.bds.skip.include.exception.class.<n> para especificar qué errores de registro se omiten y la propiedad com.ibm.batch.bds.skip.exclude.exception.class.<n> para especificar qué errores de registro no se omiten. Las dos propiedades se excluyen mutuamente.

La infraestructura por lotes realiza el seguimiento del proceso de registro de saltos en cada paso de la base de datos de estado de trabajo local. Este seguimiento se realiza sólo para las secuencias de datos por lotes de la infraestructura por lotes. Al final del proceso de paso, se graba un mensaje en el registro de trabajo. El mensaje indica el número de registros que se han saltado por secuencia de datos por lotes y el número de registros por segundo por secuencia de datos por lotes. Es posible que el número de registros por segundo no coincida con el número de registros que se la corriente de datos por lotes ha procesado. Si el número real de registros procesados se realizó en menos de un segundo, el valor de los registros por segundo se extrapola a partir del tiempo que se tardó en procesar el número real de registros.

La lista siguiente contiene las propiedades de salto de registro seguidas de una descripción.

com.ibm.batch.bds.skip.count

Especifica el número de registros que una secuencia de datos por lotes puede omitir debido a un error al leer o grabar un registro. Una vez alcanzado el límite, la secuencia de datos por lotes no omite más errores de lectura o grabación.

Cuando se omite un registro de entrada, la secuencia de datos por lotes cambia al siguiente registro y lo capta. El control no vuelve al llamante hasta que se lee un registro correctamente, se produce un error que no implica omitir registros o se alcanza el límite de omisión.

Cuando se omite un registro de salida, normalmente la secuencia de datos por lotes vuelve al llamante.

Si la secuencia de datos por lotes sufre un error de lectura o grabación una vez alcanzado el límite de omisión, la excepción de lectura o grabación se devuelve al llamante. El registro no se omite.

Si registra un escucha de omisión con la secuencia de datos por lotes, el escucha de omisión recibe el control en cada registro omitido. Para las lecturas omitidas, se invoca el método SkipListener.onSkippedRead(Throwable t). El escucha de omisión recibe el control antes de captar el siguiente registro. Para las grabaciones omitidas, se invoca el método SkipListener.onSkippedWrite(Object record, Throwable t). El registro omitido se pasa en el primer argumento. El escucha de omisión recibe el control antes de que la secuencia de datos por lotes vuelva al llamante.

El recuento de omisiones en ejecución para una secuencia de datos por lotes persiste en cada punto de comprobación. Cuando un paso de trabajo se inicia de nuevo, el recuento de saltos se restaura desde el último punto de comprobación confirmado.

El proceso de omisión de registros está inhabilitado de forma predeterminada.

Toda implementación de secuencia de datos por lotes que amplíe la clase com.ibm.websphere.batch.devframework.datastreams.bdsadapter.AbstractBatchDataInputStreamRecordMetrics o la clase com.ibm.websphere.batch.devframework.datastreams.bdsadapter.AbstractBatchDataOutputStreamRecordMetrics hereda automáticamente el soporte de omisión de registros. Todas las secuencias de datos por lotes definidas en el paquete com.ibm.websphere.batch.devframework.datastreams contienen el soporte de omisión de registros.

com.ibm.batch.bds.skip.include.exception.class.<n>

Especifica una lista de excepciones que la secuencia de datos por lotes debe omitir cuando lee o graba registros. La secuencia de datos por lotes sólo omite las excepciones de la lista.

La variable <n> es un entero. Inicie la variable en 1 y auméntela en uno para cada excepción.

Si no especifica ninguna excepción, el valor predeterminado es que todas las excepciones se incluyan en la lista de errores de lectura/grabación que se deben omitir.

El ejemplo siguiente utiliza la propiedad:

<batch-data-streams>
   <bds>
     <logical-name>inputBDS</logical-name>
     <props>
       <prop name="PATTERN_IMPL_CLASS" value="com.ibm.ws.batch.sample.bds.WCGSampleBDS"/>
       <prop name="file.encoding" value="8859_1"/>
       <prop name="FILENAME" value="/tmp/input.txt" />
       <prop name="com.ibm.batch.bds.skip.count" value="5" />
       <prop name="com.ibm.batch.bds.skip.include.exception.class.1"
             value="java.io.IOException" />
       <prop name="com.ibm.batch.bds.skip.include.exception.class.2"
             value="com.xyz.bds.error.BadDataException" />
     </props>
     <impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.TextFileReader</impl-class>  
   </bds>
</batch-data-streams>

La secuencia de datos por lotes omite los registros de las excepciones de entrada/salida y de las excepciones de datos erróneos.

com.ibm.batch.bds.skip.exclude.exception.class.<n>

Especifica una lista de excepciones que no se pueden omitir cuando se leen o se graban registros.

La variable <n> es un entero. Inicie la variable en 1 y auméntela en uno para cada excepción.

Si no especifica ninguna excepción, el valor predeterminado es que ningún registro se excluya de la lista de errores de lectura/grabación que se deben omitir.

El ejemplo siguiente utiliza la propiedad:

<batch-data-streams>
   <bds>
     <logical-name>inputBDS</logical-name>
     <props>
       <prop name="PATTERN_IMPL_CLASS" value="com.ibm.ws.batch.sample.bds.WCGSampleBDS"/>
       <prop name="file.encoding" value="8859_1"/>
       <prop name="FILENAME" value="/tmp/input.txt" />
       <prop name="com.ibm.batch.bds.skip.count" value="3" />
       <prop name="com.ibm.batch.bds.skip.exclude.exception.class.1"
             value="java.io.FileNotFoundException" />
     </props>
     <impl-class>com.ibm.websphere.batch.devframework.datastreams.patterns.TextFileReader</impl-class>  
   </bds>
</batch-data-streams>

La secuencia de datos por lotes no omite los registros de las excepciones de archivo no encontrado.

Escuchas de omisión

Puede registrar un escucha de omisión con una secuencia de datos por lotes para escuchar los registros omitidos. El escucha de omisión recibe el control siempre que se omite un registro.

El código de ejemplo siguiente registra el escucha de omisión.
AbstractBatchDataInputStream _inputBDS = (AbstractBatchDataInputStream)BatchDataStreamMgr.getBatchDataStream("inputBDS", getJobStepID());
((AbstractBatchDataStreamRecordMetrics)_inputBDS).addSkipListener(new MySkipListener());

Icon that indicates the type of topic Reference topic



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