domingo, 20 de enero de 2008

¡¡Se levanta la sesión!!


Hoy es el primer día en unos cuantos que ni me llaman ni pienso en los problemas de la nueva tienda online del cliente (sí, la misma de la entrada anterior). En estos últimos días han estado teniendo problemas por no liberar de manera correcta las sesiones.
El producto sobre el que está basada la tienda (ATG) no trabaja bien con las sesiones y con WebSphere. ¿Y por qué solo con WebSphere? Pues porque websphere es el único servidor de aplicaciones que permite que cualquier nodo invalide las sesiones de otro nodo.

Sobre como solucionar esto no hay modo que hayamos encontrado, aunque sí hemos visto que manteniendo los hilos de webcontainer con el nivel mínimo y máximo iguales y elevados (100,150 hilos si la maquina lo soporta) con una máquina multiprocesador se consigue mantener el servicio incluso cuando el servidor hace full gc constantemente. Al final la gente de CAP Gemini que personaliza el producto ha tenido que buscarse las castañas para solucionarlo de manera parcial porque el soporte de ATG se ha borrado completamente.

Las sesiones pueden llegar a ser un gran problema para nuestros servidores sobre todo por el consumo de memoria. En el white paper de best practices de desarrollo varias de las recomendaciones van es este sentido. Personalmente una de ellas me parece muy importante. No crear sesiones en las JSP por defecto.

En este otro documento de Kyle Brown, las top-15 best practices de J2ee y WebSphere en su recomendación 10 lo resume todo: Se prudente con las HttpSessions.

Resumen: un buen día. Ejercicio por la mañana, tarde de hacer cosas en casa y noche de hacer poco. Que bueno es un día sin tocar un servidor de aplicaciones.

No hay comentarios: