El gestor de trabajos paralelos (PJM)

El gestor de trabajos paralelos (PJM) proporciona un recurso y una infraestructura para enviar y gestionar trabajos por lotes transaccionales que se ejecutan como una colección coordinada de trabajos subordinados paralelos independientes.

Conceptos básicos de PJM

  • El gestor de trabajos paralelos está en el contenedor por lotes en lugar de en una aplicación del sistema independiente.
  • Sólo se necesita un único archivo xJCL. El xJCL combina el contenido del xJCL del trabajo de nivel superior con el contenido de los xJCL de los trabajos subordinados.
  • No es necesario crear una base de datos independiente.
  • Puesto que el PJM forma parte del contenedor por lotes, no es necesario instalarlo y configurarlo.
  • Las API de PJM se empaquetan en la aplicación por lotes como un archivo JAR (archivo Java™) de utilidad. No es necesaria ninguna biblioteca compartida.
  • El contenido del archivo xd.spi.properties forma parte del xJCL. No es necesario ningún archivo xd.spi.properties.

Operativa del PJM e invocación de las API

Las dos imágenes siguientes muestran la arquitectura del PJM y la secuencia de un trabajo paralelo. En primer lugar, se envía el xJCL al planificador de trabajos. El planificador de trabajos asigna el xJCL a un punto final que ejecuta la aplicación a la que hace referencia el xJCL. El contenedor por lotes determina que el trabajo va a tener trabajos subordinados ejecutados en paralelo a partir de la inspección de la propiedad de ejecución del trabajo en el xJCL. El contenedor por lotes delega la ejecución en el subcomponente de PJM. El PJM invoca el API de parametrización y utiliza la información del xJCL para ayudar a dividir el trabajo en trabajos subordinados. A continuación, el PJM invoca el API de sincronización LogicalTX para indicar el inicio de la transacción lógica. El PJM genera el xJCL de trabajo subordinado y envía los trabajos subordinados al planificador de trabajos. El planificador de trabajos asigna los trabajos subordinados a los puntos finales del contenedor por lotes para que puedan ejecutarse. El contenedor por lotes ejecuta el trabajo subordinado. Cuando se toma un punto de comprobación, se invoca el API del recopilador de trabajos subordinados. Esta API recopila información de estado relevante sobre el trabajo subordinado. Estos datos se envían al API del analizador de trabajos subordinados para su interpretación. Una vez que todos los trabajos subordinados han alcanzado un estado final, se invocan las API de sincronización beforeCompletion y afterCompletion. Las API del analizador también se invocan para calcular el código de retorno del trabajo.

Una transacción lógica es una unidad de demarcación de trabajo que abarca la ejecución de un trabajo paralelo. Su ciclo de vida corresponde al ciclo de vida combinado de los trabajos subordinados del trabajo paralelo. Gracias a un mecanismo de extensión, se pueden personalizar los recursos gestionados por aplicación de modo que se puedan controlar en el ámbito de esta unidad de trabajo a efectos confirmación y retrotracción.

Arquitectura del PJM y modelo de programación

En la siguiente imagen se resume la arquitectura del PJM, que muestra dónde se invocan las API.

Arquitectura del PJM

Secuencia de un trabajo paralelo

La siguiente imagen muestra el orden de los sucesos en un trabajo paralelo:

Secuencia de un trabajo paralelo

Gestión de trabajos de PJM

El trabajo de nivel superior envía los trabajos subordinados y supervisa su finalización. El estado final del trabajo de nivel superior está influenciado por el resultado de los trabajos subordinados de la manera siguiente:
  1. Si todos los trabajos subordinados se completan en estado finalizado, es decir, en una conclusión satisfactoria, el trabajo de nivel superior se completará en estado finalizado.
  2. Si algún trabajo subordinado se completa en estado reiniciable y ningún trabajo subordinado ha finalizado en estado de fallo, el trabajo de nivel superior se completará en estado reiniciable.
  3. Si algún trabajo subordinado se completa en estado de fallo, el trabajo de nivel superior se completará en estado de fallo.
  4. Si el trabajo de nivel superior y los trabajos subordinados se encuentran en estado reiniciable, reinicie solo el trabajo de nivel superior. Si algún trabajo subordinado se reinicia manualmente, el trabajo de nivel superior no procesará la transacción lógica correctamente.

Icon that indicates the type of topic Concept topic



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