JEE 7 Batch Processing – partie #4

Nous allons voir dans cette partie comment exécuter notre traitement batch sur le serveur d’application GlasshFish. Nous pourrons ainsi découvrir que le déploiement du traitement se fait facilement sur les serveurs d’application se conformant à la spécification JEE 7, nous noterons aussi que l’on peut ainsi suivre facilement l’exécution du batch : son étape, son état, les paramètres qui lui sont passés…

Configuration du batch

Le fichier de configuration XML du batch doit se trouver dans :

  • META-INF/batch-jobs/ pour les packagings jar.
  • WEB-INF/classes/META-INF/batch-jobs/ pour les packagings war.

Par exemple :

Si on définit un Job de la façon suivante :

<job id="myJob">
[…]
</job>

Le nom du fichier XML sera : WEB-INF/classes/META-INF/batch-jobs/myJob.xml

Lancement et suivi du batch avec GlassFish

Le lancement du batch peut se faire dans le contexte d’un serveur d’application, par exemple à l’aide d’un servlet, d’un EJB ou tout autre composant JEE.

Il peut se lancer de la façon suivante :

JobOperator jobOperator = BatchRuntime.getJobOperator();
Properties props = new Properties();

// ajouter les propriétés nécessaires au batch…

jobOperator.start("myJob", props);

Ensuite on peut suivre le déroulement du batch avec la console d’administration de GlassFish.

Console d'administration GlassFish

Pour notre instance de serveur, il est possible de voir le(s) batch(s) exécuté(s) ou en cours d’exécution(s).

Console d'administration GlassFish : Monitoring

Console d'administration GlassFish : Batch

A chaque exécution d’un batch est associé un id unique. La console GlassFish va nous fournir des informations sur cette exécution particulière.

Nous pouvons ensuite voir l’ensemble des paramètres passés au batch lors de son exécution.

Console d'administration GlassFish : Batch Job Execution Details

Ainsi que les informations détaillés sur le déroulement de chaque étape du batch : les noms du Step, l’état de terminaison du Step, des métriques pour chaque Step (nombre de lecture, rollback, écritures…), etc.

Exemples d’utilisation de l’API batch :

 

Conclusion

L’API de batch que propose JEE 7 offre une grande palette de fonctionnalités à la fois simple et avancées pour la définition de traitements batch. Ces outils sont faciles à utiliser, souples et intuitifs pour permettre une mise en place de traitements complexes.

Cette brique de JEE se positionne donc clairement sur le même terrain que spring batch, mais bien que plus récente, elle bénéficie de en quelque sorte de l’expérience de son ainé et apparaît plus avancée à mon sens car elle s’intègre complètement aux serveurs d’application récents (accès au contexte serveur, aux transactions, à CDI…).

Espérons vivement que cette API arrivera à se positionner comme un standard sur les différentes plateformes JEE car elle réserve plein de promesses.

Expert Technique Java / JEE

0 commentaires

votre commentaire

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Inscription newsletter

Ne manquez plus nos derniers articles !