Les applications à traitement lourd sont des applications qui effectuent des tâches lourdes auxquelles le concept traditionnel "demande/réponse" de J2EE n'apporte pas toujours la réponse appropriée.
Le concept de travail est partagé par toutes les applications à exécution longue et est décrit dans une autre section. Les sections suivantes fournissent des informations complémentaires sur les extensions apportées au modèle de programmation par beans asynchrones.
Etapes des travaux à traitement lourd
A l'instar des travaux à exécution longue, les travaux à traitements lourds se composent de plusieurs étapes. Dans le cas des travaux à traitement lourd, chaque étape est représentée par l'instance d'une classe qui implémente l'interface com.ibm.websphere.ci.CIWork. L'interface CIWork étend l'interface de tâche commonj.Work du modèle de programmation des beans asynchrones WebSphere et de JSR 237. Ces extensions se composent de deux méthodes qui permettent de transmettre à l'objet CIWork les propriétés de chaque étape du travail.
Pour plus d'informations, reportez-vous à la documentation de l'API.
Pour plus d'informations sur les beans asynchrones, reportez-vous à la section Utilisation de beans asynchrones dans le centre de documentation de WebSphere Application Server.
Bean contrôleur
<session id="supply a suitable name here"> <ejb-name>CIController</ejb-name> <home>com.ibm.ws.ci.CIControllerHome</home> <remote>com.ibm.ws.ci.CIController</remote> <ejb-class>com.ibm.ws.ci.CIControllerBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Bean</transaction-type> <resource-ref id="WorkManager_ResourceRef"> <description> Gestionnaire de tâches utilisé pour exécuter les travaux. <res-ref-name>wm/CIWorkManager</res-ref-name> <res-type>commonj.work.WorkManager</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope>
Intégration d'une application à traitement lourd
La logique d'une application à traitement lourd (série d'objets CIWork et classes prenant en charge ces objets CIWork) est intégrée dans un module de bean enterprise dans un fichier EAR de l'application J2EE. Le descripteur de déploiement du module de bean enterprise doit comporter la définition du bean session sans état, comme indiqué ci-dessus. Si l'application utilise elle-même d'autres beans enterprise ou d'autres ressources, les définitions correspondantes peuvent également apparaître dans le descripteur de déploiement. Des outils de développement J2EE, tels qu'IBM Rational Application Developer, peuvent être utilisés pour développer et intégrer des applications à traitement lourd comme pour construire des applications J2EE contenant des modules de beans enterprise et des beans asynchrones.
Cycle de vie d'une application à traitement lourd
Si le travail est annulé avant le renvoi de la méthode run(), le bean CIControllerBean appelle la méthode release() de l'objet CIWork dans une unité d'exécution distincte. Il revient au développeur de l'application à exécution longue de définir la logique de la méthode release() de manière à obtenir un renvoi rapide de la méthode run(). Le travail reste à l'état en attente d'annulation jusqu'au renvoi de la méthode run().
Si le travail est annulé et que la méthode run() renvoie des données sans générer d'exception, on considère que le travail s'est exécuté correctement. Si la méthode run() génère une exception, le travail est associé à la mention échec de l'exécution. A l'issue du renvoi de la méthode run() (procédure normale ou génération d'une exception), aucun autre appel à l'objet CIWork n'est effectué et toutes les références associées sont supprimées.
Related concepts
Développement des applications à exécution longue