Migration du code des beans enterprise de la version 1.1 à la version 2.1

Les beans compatibles EJB (Enterprise JavaBeans) version 2.1 ne peuvent être assemblés que dans un module compatible EJB 2.100, bien que ce dernier puisse contenir des beans de la version 1.x et de la version 2.1.

Pourquoi et quand exécuter cette tâche

La spécification EJB version 2.1 spécifie que pour qu'une demande de méthode findBy du conteneur d'EJB soit lancée, l'état de tous les beans enterprise répertoriés dans la transaction en cours doit être synchronisé avec le système de stockage persistant. (Ceci pour que la requête soit exécutée sur les données actuelles). Si les beans de la version 1.1 sont à nouveau assemblés dans un module compatible avec EJB 2.1, le conteneur d'EJB synchronise l'état des beans de la version 1.1 et celui des beans de la version 2.1. Le comportement des applications peut donc être modifié, même si le code d'application des beans de la version 1.1 n'a pas été modifié.

Les informations suivantes s'appliquent généralement aux beans enterprise compatibles avec la version 1.1 de la spécification EJB. Pour plus d'informations sur la migration du code des beans générés à l'aide de l'outil Rational Application Developer, voir la documentation de ce produit.

Procédure

  1. Dans les beans CMP version 1.x, remplacez chaque zone CMP par des méthodes get et set abstraites. Lors de ce remplacement, vous devez rendre chaque classe de bean abstraite.
  2. Dans les beans CMP version 1.x, modifiez toutes les occurrences this.field = valeur par setField(valeur).
  3. Dans chaque bean CMP, créez des méthodes get et set abstraites pour la clé primaire.
  4. Dans les beans CMP version 1.x, créez une instruction sous forme de requête d'EJB pour chaque méthode de recherche.
    Remarque : Dans la version 5 d'Application Developer, le langage de requête EJB présente les limites suivantes :
    • Les requêtes EJB Query Language impliquant des beans avec des clés constituées de relations avec d'autres beans sont considérées invalides et génèrent des erreurs lors du déploiement.
    • Le support du langage de requête IBM EJB étend les spécifications EJB 2.1 de plusieurs façons : il est plus permissif, prend en charge des fonctions DB2 supplémentaires, etc. Si la portabilité entre bases de données tierces ou entre outils de déploiement EJB pose problème, veillez à écrire toutes les requêtes EJB Query Language conformément aux instructions du chapitre 11 de la spécification EJB 2.1.
  5. Dans les méthodes de recherche des beans CMP version 1.x, renvoyez java.util.Collection au lieu de java.util.Enumeration.
  6. Mettez à jour le traitement des exceptions non liées à l'application.
    • Pour signaler les exceptions non liées à l'application, générez javax.ejb.EJBException au lieu de java.rmi.RemoteException.
    • Modifiez le comportement d'annulation si nécessaire : Dans EJB version 1.1 et 2.1, les exceptions non liées à l'application générées par l'instance de bean entraînent l'annulation de la transaction dans laquelle l'instance est exécutée ; l'instance est supprimée. Dans EJB 1.0, le conteneur n'annule pas la transaction et n'annule pas l'instance lorsqu'il génère java.rmi.RemoteException.
  7. Mettez à jour le comportement d'annulation en fonction des exceptions de l'application.
    • Dans EJB version 1.1 et 2.1, une exception d'application n'entraîne pas l'annulation automatique d'une transaction par le conteneur d'EJB.
    • Dans EJB version 1.1, le conteneur ne procède à l'annulation que si l'instance a appelé la méthode setRollbackOnly() sur son objet EJBContext.
    • Dans EJB version 1.0, le conteneur doit annuler une transaction lorsqu'une exception d'application est transmise via une limite de transaction initiée par le conteneur.
  8. Mettez à jour tout paramètre CMP de valeurs par défaut applicatives spécifiques pour l'intégrer à ejbCreate (sans utiliser de variables globales, car les conteneurs EJB 1.1 définissent des valeurs par défaut pour toutes les zones avant d'appeler ejbCreate, ce qui écrase toutes les valeurs applicatives par défaut précédentes). Cette approche est également valable pour les objets CMP EJB 1.0.

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_migr20
Nom du fichier : tejb_migr20.html