Passage à un schéma multiligne

La configuration du schéma multiligne prend en charge un nombre illimité de données qui ne dépend que des capacités de la base de données d'une application. L'application peut lire des zones individuelles plutôt que l'enregistrement entier, ce qui peut améliorer les performances en évitant une sérialisation inutile d'objets Java™. Configurez l'utilitaire de gestion des sessions pour stocker chaque attribut dans un objet de session dans sa propre ligne de la base de données en utilisant la configuration du schéma multiligne.

Pourquoi et quand exécuter cette tâche

La seule limite pratique est celle qui est imposée à la taille des objets (ou attributs) de la session. Le schéma multiligne présente un potentiel de gain de performances dans certains scénarios d'utilisation. C'est le cas lorsque de grandes quantités de données sont stockées dans la session, mais que seule une petite partie de ces données est sollicitée au cours du traitement d'une requête HTTP particulière par le servlet. Dans un tel cas de figure, vous pouvez obtenir un gain de performances en évitant de sérialiser inutilement les objets Java.

Outre qu'il autorise des enregistrements de données plus importants pour les sessions, le schéma multiligne peut se révéler utile en termes de performances. Cependant, comme le montre le tableau suivant, le passage du schéma monoligne au schéma multiligne nécessite une petite intervention.

Par défaut, à chaque session correspond une ligne unique dans la table de la base de données utilisée pour le stockage de l'état des sessions. Avec cette configuration, certaines limites absolues sont imposées au volume des données propres à l'application et définies par l'utilisateur, auxquelles WebSphere Application Server peut accéder.

Vous pouvez tester le schéma monoligne sur une base de données et le schéma multiligne sur une autre base de données, puis déterminer laquelle de ces deux options répond le mieux aux besoins de votre application. Pour cela, commutez la source de données utilisée, puis surveillez les performances.

Tableau 1. Choisir une configuration de schéma monoligne ou multiligne. Configuration de schéma monoligne ou multiligne
Choix de programmation Scénario
Motifs d'utilisation du schéma monoligne
  • Vous pouvez lire ou écrire toutes les valeurs en une seule opération de lecture et d'écriture d'enregistrement.
  • Cette solution prend moins de place dans la base de données, car vous êtes certain que les données de chaque session occuperont un seul enregistrement.
Motifs de non-utilisation du schéma monoligne Les données stockées sont limitées à 2 méga-octets par session.
Motifs d'utilisation du schéma multiligne
  • L'application peut stocker une quantité illimitée de données. Vous n'êtes limité que par la taille de la base de données elle-même et par la limite de 2 Mo par enregistrement.
  • L'application peut lire des zones individuelles plutôt que l'enregistrement entier. Lorsque d'importantes quantités de données sont stockées dans la session, mais que seule une petite partie de ces données est lue ou écrite au cours du traitement d'une requête HTTP par un servlet, le recours au schéma multiligne peut représenter un gain de performances, car il évite alors une sérialisation inutile des objets Java.
Motifs de non-utilisation du schéma multiligne Si les données stockées pour chaque session sont relativement compactes, vous souhaiterez certainement éviter le surcroît de temps de traitement nécessaire à la lecture de plusieurs lignes alors que vous pouvez stocker toutes les données sur une seule ligne.

Dans le cas du schéma multiligne, concevez les objets de données de votre application de sorte qu'ils ne se référencent pas mutuellement, ceci afin d'éviter les références en boucle. Par exemple, supposons que vous stockiez deux objets A et B dans la session en utilisant la méthode HttpSession.put(..) et que A contienne une référence à B. Dans le cas du schéma multiligne, comme les objets sont stockés dans des lignes distinctes de la base de données, quand les objets A et B sont récupérés plus tard, le graphique entre les objets A et B est différent de ce qui est stocké. A et B se comportent comme des objets indépendants.

Procédure

  1. Modifiez les propriétés de l'utilitaire de gestion de session pour passer d'un schéma monoligne à un schéma multiligne.
  2. Supprimez manuellement la table.

    [AIX Solaris HP-UX Linux Windows][IBM i]Pour supprimer la table :

    1. Déterminez quelle configuration de source de données est utilisée par l'utilitaire de gestion de session.
    2. Dans la configuration de source de données, recherchez le nom de la base de données.
    3. Utilisez les fonctions de la base de données pour vous connecter à celle-ci.
    4. Supprimez la table SESSIONS.
  3. [z/OS]Recréez la table de la base de données ou supprimez toutes les lignes de la table que le produit utilise pour gérer les objets HttpSession.

    Voir DB2 UDB for OS/390 and z/OS V7 Administration Guide pour obtenir une description de la façon de quitter une table de base de données DB2.

    La rubrique Création d'une table DB2 pour la persistance des sessions explique comment créer une nouvelle table de base de données DB2.


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_swsk
Nom du fichier : tprs_swsk.html