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.
Choix de programmation | Scénario |
---|---|
Motifs d'utilisation du schéma monoligne |
|
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 |
|
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.