Cambio a un esquema de varias filas
La configuración del esquema de varias filas soporta el almacenamiento de una cantidad ilimitada de datos que sólo se enlazan por las capacidades de la base de datos en una aplicación. La aplicación puede leer campos individuales en lugar de todo el registro, que puede ayudarle a mejorar el rendimiento evitando la serialización innecesaria de objetos Java™. Configure el recurso de gestión de sesiones para almacenar cada atributo de un objeto de sesión en su propia fila de la base de datos mediante la configuración del esquema de varias filas.
Acerca de esta tarea
El único límite práctico que se conserva es el tamaño del objeto de atributo de la sesión. El esquema de varias filas tiene beneficios potenciales en algunos escenarios de uso, como cuando se almacenan grandes cantidades de datos en la sesión pero sólo se accede específicamente a pequeñas cantidades durante el proceso de una petición HTTP por parte de un servlet determinado. En un escenario así, evitar la serialización innecesaria de objetos Java es beneficioso para el rendimiento.
Además de permitir registros de sesiones más grandes, la utilización de un esquema de varias filas puede proporcionar ventajas en el rendimiento. Sin embargo, es preciso efectuar determinados pasos para conmutar del esquema de una sola fila al de varias filas, tal como se indica en la tabla siguiente.
De forma predeterminada, una sola sesión se correlaciona con una sola fila en la tabla de base de datos utilizada para mantener sesiones. En esta configuración, existen límites establecidos para la cantidad de datos específicos de la aplicación y definidos por el usuario a los que WebSphere Application Server puede acceder.
Tal vez desee establecer la configuración para usar una sola fila en una base de datos y varias filas en otra base de datos, mientras verifica qué opción se adapta a las necesidades de la aplicación. Esta acción se realiza en el código cambiando el origen de datos utilizado; a continuación, debe supervisarse el rendimiento.
Cuestiones de programación | Caso de aplicación |
---|---|
Motivos para usar una sola fila |
|
Motivos para no utilizar una sola fila | Límite de 2 megabytes de datos almacenados por sesión. |
Motivos para utilizar varias filas |
|
Motivos para no utilizar varias filas | Si los datos son de tamaño pequeño, probablemente no querrá la actividad adicional de tener que leer varias filas cuando puede almacenar todo en una sola fila. |
En el caso de la utilización de varias filas, diseñe los objetos de datos de la aplicación para que no tengan referencias mutuas y de este modo se eviten las referencias circulares. Por ejemplo, suponga que almacena dos objetos, A y B, en la sesión utilizando el método HttpSession.put(..). A contiene una referencia a B. En el caso de varias filas, puesto que los objetos se almacenan en filas diferentes de la base de datos, cuando posteriormente se recuperen los objetos A y B, el gráfico de objeto entre A y B será diferente que el que se almacenó. A y B se comportan como objetos diferentes.