Proceso de reintento de pasos

Utilice el proceso de retry-step para reintentar pasos de trabajo cuando el método processJobStep encuentre errores en un trabajo por lotes de transacción. Especifique políticas de reintento de pasos en el xJCL.

Cada paso de trabajo tiene su propia configuración de política de reintento de pasos. El proceso de reintento de paso se habilita especificando un valor distinto de cero para la propiedad de paso de trabajo com.ibm.batch.step.retry.count en el xJCL.

Puede volver a definir el proceso de retry-step utilizando la propiedad com.ibm.batch.step.retry.include.exception.class.<n> para especificar qué excepciones se pueden volver a intentar cuando falla un paso y la propiedad com.ibm.batch.step.retry.exclude.exception.class.<n> para especificar qué excepciones no se pueden volver a intentar cuando falla un paso. Las dos propiedades se excluyen mutuamente.

La infraestructura por lotes realiza el seguimiento del proceso de reintento de paso en cada paso de la base de datos de estado de trabajo local. Al final del proceso de paso, se graba un mensaje en el registro de trabajo. El mensaje indica el número de veces que el paso se ha reintentado y el tiempo total utilizado por el paso. El formato del tiempo es HH:MM:SS:MMM, donde HH son las horas, MM los minutos, SS los segundos y MMM los milisegundos.

La lista siguiente contiene las propiedades de reintento de pasos seguidas de una descripción.

com.ibm.batch.step.retry.count

Especifica el número de veces que puede volver a intentarse un paso debido a un error en el proceso de pasos del método processJobStep. Cuando se alcanza el límite, no pueden intentarse más errores de paso.

El método BatchJobStepInterface.processJobStep da soporte a la cláusula throws java.lang.Exception. Toda excepción del método processJobStep es candidata para el proceso de reintento de pasos.

Intentar un paso de nuevo es equivalente a reiniciarlo. El método BatchJobStepInterface.destroyJobStep se invoca después del error del paso. La transacción de punto de comprobación se retrotrae antes de reiniciar el paso. El método BatchJobStepInterface.createJobStep se invoca cuando se vuelve a intentar un paso. Todas las secuencias de datos por lotes asociadas con el paso se cierran y se vuelven a abrir cuando se vuelve a intentar el paso.

Si se produce un error del paso después de alcanzar el límite de reintento de un paso, el paso falla y el trabajo termina en estado reiniciable.

Si registra un escucha de reintentos con el contexto de paso de trabajo, el escucha de reintentos recibe el control en cada excepción que puede volver a intentarse. El método RetryListener.onError(Throwable t) se invoca antes de que el paso anómalo entre en el método destroyJobStep y antes de que se retrotraiga la transacción de punto de comprobación. El método RetryListener.onRetry(Throwable t) recibe el control cuando se vuelve a intentar el paso, pero antes de que se invoque el método BatchJobStepInterface.createJobStep.

El escucha de reintentos se desregistra inmediatamente después de llamar al método RetryListener.onRetry. Si desea que la aplicación por lotes escuche más intentos de ejecutar el paso de nuevo, vuelva a registrar el escucha de reintentos.

El recuento en ejecución del número de veces que puede volver a intentarse un paso se restablece en cero en cada punto de comprobación. Esto significa que el límite de reintentos es efectivamente un límite por punto de comprobación.

El proceso de reintento de pasos está inhabilitado de forma predeterminada.

com.ibm.batch.step.retry.delay.time

Especifica el número de milisegundos que se debe esperar antes de volver a intentar el paso. El retardo se produce después de que el paso anómalo entre en el método destroyJobStep y después de que se retrotraiga la transacción de punto de comprobación. No obstante, el retardo se produce antes de invocar el método RetryListener.onRetry.

com.ibm.batch.step.retry.include.exception.class.<n>

Especifica una lista de excepciones que pueden volver a intentarse cuando falla un paso.

<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.

El ejemplo siguiente utiliza la propiedad:

<job-step name="WCGStep1">
    <classname>com.ibm.ws.batch.sample.WCGSampleBDSBatchStep</classname>
    <checkpoint-algorithm-ref name="chkpt"/>
    <results-ref name="jobsum"/>
    <props>
      <prop name="com.ibm.batch.step.retry.count" value="1" />
      <prop name="com.ibm.batch.step.retry.delay.time" value="3000" />
      <prop name="com.ibm.batch.step.retry.include.exception.class.1" value="java.sql.SQLException" />
    </props>

    ...
  </job-step>

El paso de trabajo WCGStep1 intenta un paso de trabajo de nuevo para una excepción SQL (lenguaje de consulta estructurado).

com.ibm.batch.step.retry.exclude.exception.class.<n>

Especifica una lista de excepciones que no pueden volver a intentarse cuando falla un paso.

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 no se excluya de la lista ninguna excepción.

El ejemplo siguiente utiliza la propiedad:

<job-step name="WCGStep1">
    <classname>com.ibm.ws.batch.sample.WCGSampleBDSBatchStep</classname>
    <checkpoint-algorithm-ref name="chkpt"/>
    <results-ref name="jobsum"/>
    <props>
      <prop name="com.ibm.batch.step.retry.count" value="1" />
      <prop name="com.ibm.batch.step.retry.delay.time" value="3000" />
      <prop name="com.ibm.batch.step.retry.exclude.exception.class.1" value="java.sql.SQLException" />
    </props>

    ...
  </job-step>

El paso de trabajo WCGStep1 no intenta un paso de trabajo de nuevo para una excepción SQL (lenguaje de consulta estructurado).

Escuchas de reintentos

Puede registrar un escucha de reintentos con el método JobStepContext para escuchar una excepción que puede intentarse de nuevo. El escucha de reintentos recibe el control siempre que se produce una excepción que puede intentarse de nuevo y el paso se vuelve a intentar.

El escucha de reintentos puede registrarse con el método JobStepContext a través del método addRetryListener:
 JobStepContextMgr.getContext().addRetryListener(new MyRetryListener());

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_xdbatchretrysp
File name: rgrid_xdbatchretrysp.html