Interopérabilité du conteneur
L'interopérabilité du conteneur décrit la possibilité des clients et des serveurs du produit de différentes versions de prendre en charge les différences des méthodes de localisation EJB (Enterprise JavaBeans) natives et de la compatibilité de Java EE.
Interopérabilité des formats de descripteur dans WebSphere Application Server, version 5 et version 5.0.1
Les applications qui tentent de conserver les descripteurs des beans enterprise et de l'objet EJBHome devaient sous-classer ObjectInputStream dans WebSphere Application Server version 5. Ceci permettait à la sous-classe ObjectInputStream d'utiliser le chargeur de classe du contexte pour résoudre les classes des beans enterprise et des raccords EJBHome.
En outre, les descripteurs créés et conservés dans WebSphere Application Server version 5, ne fonctionnent qu'avec des objets dont l'interface éloignée est inchangée. Si l'interface a été modifiée, le descripteur n'est plus valide car le raccord est sérialisé à l'intérieur du descripteur et son UID version de série est modifié si l'interface éloignée est modifiée.
Cette version introduit un nouveau mécanisme de persistance du descripteur qui ne présente pas les inconvénients de la version précédente. Toutefois, si des descripteurs sont utilisés pour ce déploiement de WebSphere Application Server, vous devez tenir compte des points suivants lors de l'application de cette mise à jour, des futurs groupes de correctifs de WebSphere Application Server et des correctifs cumulatifs de WebSphere Application Server version 5.
Si un système WebSphere Application Server version 5.0.1 rencontre un descripteur conservé ou un descripteur home WebSphere Application Server version 5, il peut le lire et l'utiliser. En outre, il est converti au format WebSphere Application Server version 5.0.1 s'il est de nouveau conservé. Le format de WebSphere Application Server version 5.0.1 ne peut pas être lu par un système WebSphere Application Server version 5, sauf si PQ72184 est appliqué.
Des problèmes surviennent si les descripteurs sont conservés et partagés sur des systèmes qui ne comportent pas les versions 5.0.1 ou ultérieures de WebSphere Application Server. Toutefois, un système doté de la version 5 peut recevoir à distance un descripteur provenant de la version 5.0.1 à l'aide d'un appel sur un bean enterprise ou d'un getHomeHandle sur un EJBHome. L'appel éloigné aboutira, même si toute tentative de conserver le descripteur sur le système de la version 5 sera soumis aux mêmes règles concernant l'utilisation de ObjectInputStream et l'invalidation du descripteur en raison de changements dans l'interface éloignée.
Si votre application stocke des descripteurs de façon persistante et partage cette persistance avec plusieurs clients ou serveurs d'applications, appliquez WebSphere Application Server, version 5.0.1 ou PQ72184 aux systèmes client et serveur à la fois. Si vous ne le faites pas, les systèmes non mis à jour seront incapables de lire les données de descripteur stockées par les systèmes mis à jour. En outre, les descripteurs stockés par WebSphere Application Server version 5 peuvent forcer les applications du système mis à jour à continuer de sous-classer ObjectInputStream. Les applications qui utilisent les modules Scheduler et Process Choreographer de WebSphere Application Server Enterprise version 5 sont concernées par ces changements. Ces utilisateurs doivent simultanément mettre à jour leurs systèmes version 5 avec la version 5.0.1 ou PQ72184.
Si les applications stockent des descripteurs dans le contexte de session ou localement, dans un fichier du même système non partagé par d'autres applications de systèmes différents, elles pourront peut-être mettre à jour leur système individuellement au lieu de le faire toutes à la fois. Si des applications Conteneur client ou client partiel ne partagent pas les données de descripteur persistant, elles peuvent également être mises à jour comme requis. Toutefois, les descripteurs créés et conservés dans WebSphere Application Server version 5, version 4.0.3 et ultérieure (avec l'indicateur de propriété défini), ou version 3.5.7 et ultérieure (avec l'indicateur de propriété défini) sont inutilisables si l'interface home ou éloignée est modifiée.
Si la version 3.5.7, 4.0.3 ou ultérieure de WebSphere Application Server attribue à la propriété système com.ibm.websphere.container.portable la valeur true, les descripteurs des objets de ce serveur sont soumis aux mêmes restrictions en termes d'interopérabilité. En outre, si des applications WebSphere Application Server version 3.5.7 ou ultérieure ou des applications version 4.0.3 stockent un descripteur provenant de WebSphere Application Server version 5 ou version 5.0.1, les mêmes restrictions s'appliquent concernant la nécessité de sous-classer ObjectInputStream et la possibilité d'utiliser les descripteurs après une modification de l'interface éloignée.
Réplication de la session Http et des descripteurs
Cette remarque ne s'applique que si vous placez des descripteurs dans des interfaces home ou des EJB, ou des références d'EJB ou d'EJBHome dans la session Http de votre application et que vous utilisez la réplication de session Http. Si vous voulez répliquer un environnement mixte de machines version 5.0.0 et version 5.0.1 ou 5.0.2, vous devez appliquer le correctif électronique de conteneur version 5.0.0 aux machines version 5.0.0 avant d'intégrer le serveur version 5.0.1 ou 5.0.2 dans la topologie. En effet, les serveurs version 5.0.0 ne comprennent pas le format des descripteurs conservés utilisés sur les serveurs version 5.0.1 et 5.0.2. Cette restriction est similaire à celle mentionnée plus haut, où des systèmes version 5.0.0 et version 5.0.1 ou 5.0.2 essayent d'utiliser une base de données partagée. Cependant, dans le cas présent, c'est l'objet de session Http et non la base de données qui offre la persistance.
Mappage de déploiement descendant
La taille des objets de descripteur est plus importante en raison du correctif intégré pour permettre la sérialisation et la désérialisation sans les exigences précédentes en matière de sous-classement d'ObjectInputStream, etc. Le déploiement descendant d'un objet contenant des références EJB et EJBHome crée un fichier ddl de table de base de données possédant une zone de 1 000 octets de données VARCHAR pour BITDATA qui contiendra le descripteur. Il se peut que le descripteur de votre objet ne tienne pas dans cette zone par défaut de 1 000 octets et que vous ayez à choisir une valeur plus élevée. Vous pouvez essayer des incréments de 250 octets (1250, 1500, etc.)