Puede crear una aplicación por lotes transaccionales como un trabajo y dividir el trabajo en trabajos subordinados para que los trabajos
subordinados puedan ejecutarse de forma independiente y en paralelo. Utilice el gestor de trabajos paralelos para someter y gestionar los trabajos por lotes
transaccionales.
Antes de empezar
For transitioning users: Las aplicaciones de gestión de trabajos paralelos creadas
para versiones anteriores de WebSphere Batch se pueden ejecutar como tales en
WebSphere Application Server Versión 8.5. Sin embargo, siga
el mismo procedimiento que si tuviera dos archivos xJCL, un archivo
xd.spi.properties y una biblioteca compartida configurada para dos
implementaciones de SPI. Si utiliza la aplicación tal cual, no siga los pasos del procedimiento siguiente.
trns
For transitioning users: Puede migrar aplicaciones de gestión de trabajos paralelos a
WebSphere Application Server Versión 8.5. Añada las clases de
implementación de API al EAR de la aplicación. Vuelva a crear el xJCL tal como se
describe en el procedimiento siguiente.
trns
Acerca de esta tarea
Desarrollará trabajos subordinados para el trabajo de modo que los trabajos subordinados puedan ejecutarse de forma independiente y en paralelo.
En primer lugar, desarrolle los criterios de división de los trabajos en trabajos subordinados. A continuación, cree una aplicación por lotes simple y
convierta en paralelas las partes de la aplicación. Finalmente, cree el xJCL de los trabajos subordinados de modo que, en otro procedimiento, pueda desplegar
la
aplicación a continuación del otro procedimiento.
Procedimiento
- Desarrolle los criterios de división de los trabajos en trabajos subordinados.
Por ejemplo, divida los trabajos en trabajos subordinados basados en sucursales bancarias, con el trabajo subordinado para cada sucursal basado en la
ubicación de la misma. Para una sucursal bancaria determinada, haga que el trabajo subordinado calcule el saldo de cada cuenta al final del día
según las transacciones diarias de la misma.
- Cree una aplicación de proceso por lotes simple para procesar la información como un trabajo.
- Convierta en paralelas las partes de la aplicación.
Implemente la API de parámetros para dividir el trabajo de la aplicación de proceso por lotes en varios trabajos subordinados.
- Opcional: Recopile información acerca de un trabajo subordinado en ejecución.
Utilice la API SubJobCollector para recopilar la información.
- Opcional: Analice la información recopilada acerca del trabajo subordinado.
Utilice la API SubJobAnalyzer para analizar la información.
- Cree el xJCL.
Inicie el xJCL desde el trabajo que ha creado para la aplicación de proceso por lotes simple.
- Especifique el elemento de ejecución (run) como hijo del elemento de trabajo (job).
- Establezca el atributo instances del elemento run en multiple.
- Establezca el atributo de máquina virtual Java™ (JVM) del elemento run en single o
multiple.
Utilice el atributo single para ejecutar todos los trabajos subordinados en la misma JVM. Utilice el atributo multiple para
ejecutar los trabajos subordinados en cualquier JVM válida.
<run instances="multiple" jvm="multiple">
Puede especificar el elemento run como hijo de un paso. En este caso, el paso se ejecutará como trabajo paralelo. El contenido del xJCL del paso se
utiliza para generar xJCL de trabajo subordinado de un paso.
- Especifique un elemento prop como hijo del elemento run para cada API de PJM.
- Especifique la API de PJM en el atributo name.
Las API siguientes son válidas para el PJM:
- com.ibm.websphere.batch.parallel.parameterizer
- com.ibm.websphere.batch.parallel.synchronization
- com.ibm.websphere.batch.parallel.subjobanalyzer
- com.ibm.websphere.batch.parallel.subjobcollector
- Establezca el atributo value en un nombre para la API.
- Incluya un elemento prop para especificar el nombre del trabajo subordinado.
- Establezca el atributo name en com.ibm.wsspi.batch.parallel.subjob.name.
- Establezca el atributo value en el nombre del trabajo.
- Opcional: Incluya un elemento prop para indicar el número de trabajos.
- Establezca el atributo name en parallel.jobcount.
- Establezca el atributo value en un valor para el número de trabajos.
- Especifique el resto de propiedades de nivel de trabajo.
<run instances="multiple" jvm="multiple">
<props>
<prop name="com.ibm.websphere.batch.parallel.parameterizer"
value="com.ibm.websphere.samples.spi.MailerParameterizer"/>
<prop name="com.ibm.websphere.batch.parallel.synchronization"
value="com.ibm.websphere.samples.spi.MailerTXSynchronization"/>
<prop name="com.ibm.websphere.batch.parallel.subjobanalyzer"
value="com.ibm.websphere.samples.spi.MailerSubJobAnalyzer"/>
<prop name="com.ibm.websphere.batch.parallel.subjobcollector"
value="com.ibm.websphere.samples.spi.MailerSubJobCollector"/>
<prop name="com.ibm.wsspi.batch.parallel.subjob.name"
value="MailerSampleSubJob" />
<!-- El número de subtrabajos paralelos que deben someterse -->
<prop name="parallel.jobcount" value="3" />
</props>
</run>
- Incluya las tres mismas propiedades de nivel de paso en cada paso en el xJCL.
<prop name="com.ibm.wsspi.batch.parallel.jobname" value="${parallel.jobname}" />
<prop name="com.ibm.wsspi.batch.parallel.logicalTXID" value="${logicalTXID}" />
<prop name="com.ibm.wsspi.batch.parallel.jobmanager" value="${parallel.jobmanager}" />
Resultados
Ha creado un trabajo con trabajos subordinados que pueden ejecutarse independiente y en paralelo.
Qué hacer a continuación
Despliegue la aplicación como haría con otras aplicaciones de proceso por lotes.