Vous pouvez créer une application par lots transactionnelle en tant que travail et scinder celui-ci en travaux subordonnés de sorte que ces derniers puissent s'exécuter indépendamment et en parallèle. Vous utilisez le gestionnaire de travaux parallèles pour soumettre et gérer les travaux par lots transactionnels.
Avant de commencer
Pour les utilisateurs en transition: Les applications de gestion de travaux parallèles élaborées pour des versions antérieures peuvent s'exécuter telles que sur
WebSphere
Application Server Version 8.5. Toutefois, suivez la même procédure que celle qui s'applique avec deux fichiers xJCl, un fichier
xd.spi.properties et une bibliothèque partagée configurée pour deux implémentations SPI. Lorsque vous utilisez l'application telle quelle, n'exécutez pas les étapes de la procédure ci-après.
trns
Pour les utilisateurs en transition: Vous pouvez faire migrer des applications de travaux parallèles vers
WebSphere
Application Server version 8.5. Ajoutez les classes d'implémentation d'API au fichier EAR de l'application. Recréez le xJCL comme indiqué dans la procédure ci-après.
trns
Pourquoi et quand exécuter cette tâche
Vous développez des travaux subordonnés pour votre travail de sorte que ceux-ci puissent s'exécuter indépendamment et en parallèle. Commencez par développer les critères qui permettent de scinder des travaux en travaux subordonnés.
Générez ensuite une simple application par lots et rassemblez les parties de l'application parallèle. Enfin, créez le fichier xJCl pour les travaux subordonnés de sorte que vous puissiez déployer l'application en suivant une autre procédure.
Procédure
- Développez les critères qui permettent de scinder des travaux en travaux subordonnés.
Par exemple, scindez des travaux en travaux subordonnés en fonction d'agences bancaires, chaque travail subordonné de chaque agence étant
basé sur l'emplacement de cette dernière.Pour une agence bancaire donnée, faites en sorte que le travail subordonné calcule le solde de chaque compte
à la fin de la journée selon les transactions réalisées chaque jour pour chaque compte.
- Créez une application par lots simple pour traiter les informations comme un travail.
- Rassemblez les parties de l'application parallèle.
Implémentez l'API de paramètre pour scinder le travail de l'application par lots en plusieurs travaux subordonnés.
- Facultatif : Collectez les informations sur un travail subordonné en cours d'exécution.
Utilisez l'API SubJobCollector pour collecter des informations.
- Facultatif : Analysez les informations collectées au sujet du travail subordonné.
Utilisez l'API SubJobAnalyzer pour analyser les informations.
- Créez le code xJCL.
Pour le xJCL, commencez par le travail que vous avez créé pour l'application par lots simple.
- Spécifiez l'élément d'exécution en tant qu'enfant de l'élément de travail.
- Affectez la valeur multiple à l'attribut des instances sur l'élément d'exécution.
- Affectez la valeur single ou multiple à l'attribut JVM (machine virtuelle Java™) sur l'élément d'exécution.
Utilisez la valeur d'attribut single pour exécuter tous les travaux subordonnés dans la même machine virtuelle Java. Utilisez la valeur d'attribut pour exécuter les travaux subordonnés sur n'importe quelle machine virtuelle valide.
<run instances="multiple" jvm="multiple">
Vous pouvez spécifier l'élément d'exécution en tant qu'enfant d'une étape. Dans ce cas, l'étape est exécutée comme un travail parallèle. Le contenu xJCL de l'étape est utilisé pour générer un xJCL de travail subordonné à une étape.
- Spécifiez un élément prop en tant qu'enfant de l'élément d'exécution pour chaque API de gestionnaire de travaux parallèles.
- Spécifiez l'API de gestionnaire de travaux parallèles sur l'attribut de nom.
Les API suivantes sont valides pour le gestionnaire de travaux parallèles :
- com.ibm.websphere.batch.parallel.parameterizer
- com.ibm.websphere.batch.parallel.synchronization
- com.ibm.websphere.batch.parallel.subjobanalyzer
- com.ibm.websphere.batch.parallel.subjobcollector
- Affectez un nom d'API à l'attribut de valeur.
- Ajoutez un élément prop pour spécifier le nom de travail subordonné.
- Affectez la valeur com.ibm.wsspi.batch.parallel.subjob.name à l'attribut de nom.
- Affectez le nom du travail à l'attribut de valeur.
- Facultatif : Ajoutez un élément prop pour spécifier le nombre de travaux.
- Affectez la valeur parallel.jobcount à l'attribut de nom.
- Affectez une valeur de nombre de travaux à l'attribut de valeur.
- Spécifiez les autres propriétés de niveau travail.
<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" />
<!-- The count of parallel sub jobs to be submitted -->
<prop name="parallel.jobcount" value="3" />
</props>
</run>
- Ajoutez les trois mêmes propriétés de niveau étape à chaque étape du 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}" />
Résultats
Vous avez créé un travail avec des travaux subordonnés qui peuvent s'exécuter indépendamment ou en parallèle.
Que faire ensuite
Déployez l'application en procédant comme pour d'autres applications par lots.