Pasos de trabajo por lotes
Puede separar las tareas de una aplicación de proceso por lotes en pasos por lotes. Los pasos por lotes se implementan como clases de objeto Java™ simple (POJO) que implementan la interfaz com.ibm.websphere.batch.BatchJobStepInterfance. Los pasos de trabajo por lotes se ejecutan secuencialmente.
Los métodos de retorno de llamadas en la interfaz BatchJobStepInterface permiten que los puntos finales de trabajos de larga duración ejecuten pasos por lotes cuando se ejecute un trabajo por lotes.
Un paso por lotes contiene la lógica empresarial por lotes para ejecutar una parte del trabajo por lotes. Generalmente, un paso por lotes contiene código para leer un registro de una secuencia de datos por lotes, llevar a cabo la lógica empresarial con ese registro y, a continuación, continuar leyendo el siguiente registro. Los puntos finales de trabajos de larga duración en un bucle por lotes invocan al método processJobStep de una clase de paso por lotes. Este método contiene toda la lógica que se puede procesar por lotes para actuar en los datos.
Los puntos finales de trabajos de larga duración invocan los métodos del clase de pasos por lotes en una transacción global. Los puntos finales de trabajos de larga duración gestionan esta transacción global. El algoritmo de punto de control asociado con el trabajo por lotes al que pertenece el paso controla el comportamiento de la transacción como, por ejemplo, el tiempo de espera excedido de transacción o el intervalo de compromiso de transacción.
Métodos de retorno de llamada | Descripción |
---|---|
setProperties(propiedades java.util.Properties) | Deja disponibles las propiedades definidas en XML Job Control Language (xJCL) para el paso por lotes en un objeto java.util.Properties. Este método se invoca en una transacción global. |
void createJobStep() | Indica el paso que se ha inicializado. La lógica de inicialización como, por ejemplo, recuperar un manejador para una secuencia de datos por lotes, puede colocarse aquí. Este método se invoca en una transacción global. |
int processJobStep() | Repetidamente invocado por los puntos finales de trabajos de larga duración de un bucle por lotes hasta que el entero del código de retorno de este método indica que el paso ha finalizado el proceso. Revise BatchConstants en la API por lotes para ver qué códigos de retorno se pueden devolver. Un código de retorno de BatchConstants.STEP_CONTINUE indica a los puntos finales de trabajos de larga duración que continúen invocando este método del bucle por lotes. Un código de retorno de BatchConstants.STEP_COMPLETE indica a los puntos finales de trabajos de larga duración que el paso ha finalizado e invoca a destroyJobStep. |
int destroyJobStep() | Indica a los pasos que se ha producido la finalización. El código de retorno de enteros de este método es arbitrario y el desarrollador de aplicaciones de proceso por lotes puede seleccionarlo. Este código de retorno se guarda en la base de datos de los puntos finales de trabajos de larga duración y representa el código de retorno del paso por lotes. Si el algoritmo de resultados está asociado al trabajo por lotes, se le pasa este código de retorno. Si existe una lógica condicional basada en el código de retorno en xJCL del trabajo por lotes, los puntos finales de trabajos de larga duración utilizan este código de retorno para evaluar esa lógica. |
El método getProperties() de BatchJobStepInterface no es al que llaman actualmente los puntos finales de trabajos de larga duración. El método se incluye en la interfaz por simetría y para su posible uso posterior.