Assemblage permettant le partage des données de session

Par défaut, l'utilitaire de gestion de session prend en charge la configuration de portée des sessions par module Web, conformément à la spécification d'API Servlet 2.3 et aux versions suivantes. Seuls les servlets d'un même module Web peuvent accéder aux données associées à une session particulière. Toutefois, vous pouvez utiliser l'objet IBMApplicationSession ou l'extension IBM®, contexte de session partagé, pour partager des données hors de portée du module Web.

Pourquoi et quand exécuter cette tâche

L'objet IBMApplicationSession est un objet parent qui peut être extrait par une session du module Web et peut partager des attributs de session entre tous les modules Web dans une application de niveau métier. La portée par défaut de l'application de niveau métier est l'application d'entreprise. L'option contexte de session partagé étend également la portée des attributs de session. Lors de l'utilisation de l'extension de contexte de session partagé, il n'y a qu'un objet de session pour toute l'application de niveau métier ou pour l'application d'entreprise par défaut.

Si vous utilisez une session partagée pour une application de niveau métier, les fichiers classe de tous les objets placés dans la session doivent exister dans une bibliothèque partagée isolée et être communs à toutes les applications.

L'avantage de la méthode IBMApplicationSession est que chaque module Web peut gérer sa propre session et posséder une référence à la session partagée.

Avec cette méthode, si vous faites migrer une application provenant d'une version précédente du produit, il faut modifier la logique applicative de l'application.

Restriction : Pour utiliser une session partagée, vous devez installer toutes les applications dans une application de niveau métier sur un serveur. Vous ne pouvez pas répartir l'application d'entreprise sur plusieurs serveurs. Par exemple, vous ne pouvez pas utiliser cette option lorsqu'une application d'entreprise en “BLA1” est installée sur un serveur et qu'une autre application d'entreprise également en “BLA1” est installée sur un serveur différent. Dans une installation partagée de ce type, il se peut que les applications partagent des attributs de sessions d'un module Web à l'autre à l'aide de sessions réparties ; cependant, l'intégrité des données de session sera perdue lorsque l'accès simultané à une session s'effectue dans des modules Web différents. Elle restreint également considérablement l'utilisation de certaines fonctions de l'utilitaire de gestion de session, telles que TIME_BASED_WRITES.

Pour les applications d'entreprise sur lesquelles cette extension de contexte de session partagée est activée, la configuration de la gestion de session sur le module Web dans une application d'entreprise est ignorée. Ensuite, la configuration de gestion de session définie sur une application d'entreprise est utilisée si la gestion de session est remplacée au niveau de l'application d'entreprise. Autrement, la configuration de la gestion de session dans le conteneur Web est utilisée. Si vous utilisez des applications d'entreprise multiples sur une application de niveau métier, la configuration de la gestion de session doit être la même pour toutes les applications et les modules Web sur cette application de niveau métier.

Les programmes d'écoute HttpSession définis dans tous les modules Web dans l'application de niveau métier ou l'application d'entreprise sont appelés pour les événements de session. L'ordre dans lequel les modules d'écoute sont appelés n'est pas garanti.

Pour partager les données des sessions dans toute l'application de niveau métier, procédez comme suit.

Procédure

  1. Pour partager les données des sessions à l'aide de l'objet IBMApplicationSession dans le code de l'application, procédez comme suit.
    1. Extrayez l'objet de session
      HttpSession session = request.getSession();
    2. Transtypez cet objet dans un objet IBMSession et appelez la méthode getIBMApplicationSession.
      IBMApplicationSession appSession = ((IBMSession)session).getIBMApplicationSession();
    3. Utilisez appSession comme un objet de session normal.
  2. Pour partager des données de session grâce à l'extension de contexte de session partagé, procédez comme suit.
    1. Démarrez un outil d'assemblage.
    2. Dans l'outil d'assemblage, cliquez à l'aide du bouton droit sur l'application (fichier EAR) à partager, puis cliquez sur Ouvrir avec > Editeur de descripteur de déploiement.
    3. Dans l'éditeur de descripteur de déploiement d'application de l'outil d'assemblage, sélectionnez Contexte de session partagé sous Extensions WebSphere. Assurez-vous que la définition de classe des attributs placés dans la session sont accessibles à tous les modules Web de l'application d'entreprise. Le contexte de session partagé ne répond pas pleinement aux exigences des spécifications.
    4. Sauvegardez le fichier d'application (EAR). Après avoir fermé l'éditeur de descripteur de déploiement d'application, dans l'outil d'assemblage, confirmez les modifications apportées à l'application.

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=tprs_sharing_data
Nom du fichier : tprs_sharing_data.html