Ensamblaje para que se puedan compartir los datos de sesión

De forma predeterminada, el recurso de Gestión de sesiones soporta el ámbito de sesión por módulo web de acuerdo con la especificación de API de Servlet 2.3 y posterior. Sólo los servlets del mismo módulo web pueden acceder a los datos relacionados con una determinada sesión. Sin embargo, puede utilizar el objeto IBMApplicationSession o la extensión de IBM®, contexto de sesión compartido, para compartir datos fuera del ámbito del módulo web.

Acerca de esta tarea

El objeto IBMApplicationSession es un objeto de sesión padre que la sesión de un módulo web puede recuperar y que puede compartir atributos de sesión en todos los módulos web de una aplicación de nivel empresarial. El ámbito predeterminado de la aplicación de nivel empresaria es la aplicación de empresa. La opción de contexto de sesión compartida también extiende el ámbito de los atributos de sesión. Utilizando la extensión de contexto de sesión compartida, sólo hay un objeto de sesión para toda la aplicación de nivel empresarial o para la aplicación de empresa predeterminada.

Si utiliza una sesión compartida para una aplicación de nivel empresarial, los archivos de clase para todos los objetos colocados en la sesión deben estar en una biblioteca compartida aislada y ser comunes a todas las aplicaciones.

La ventaja de utilizar el método IBMApplicationSession es que cada módulo web puede mantener su propia sesión así como tener una referencia a la sesión compartida.

Si está migrando una aplicación de una versión anterior del producto, el método IBMApplicationSession requiere un cambio en la lógica de la aplicación.

Restricción: Para utilizar una sesión compartida, debe instalar todas las aplicaciones dentro de una aplicación de nivel empresarial en un servidor dado. No puede subdividir la aplicación de empresa por servidores. Por ejemplo, no puede utilizar esta opción cuando una aplicación de empresa en “BLA1” está instalada en un servidor y una segunda aplicación de empresa también en “BLA1” está instalada en un servidor distinto. En dichas instalaciones subdivididas, es posible que las aplicaciones compartan atributos de sesión en módulos web utilizando sesiones distribuidas, pero la integridad de datos de sesión se pierde cuando se realiza el acceso simultáneo a una sesión en distintos módulos web. También se restringirá estrictamente el uso de algunas de las características de la Gestión de sesiones, como TIME_BASED_WRITES.

Para aplicaciones de empresa en las que se habilita esta extensión de contexto de sesión compartida, se ignora la configuración de gestión de sesiones en el módulo web dentro de la aplicación de empresa. A continuación, se utilizará la configuración de Gestión de sesiones definida en la aplicación de empresa si se graba encima de la Gestión de sesiones en el nivel de aplicación de empresa. De lo contrario, se utiliza la configuración de gestión de sesiones en el contenedor web. Si se utilizan varias aplicaciones de empresa en una aplicación de nivel empresarial, la configuración de gestión de sesiones debe ser común entre todas las aplicaciones y los módulos web de esta aplicación de nivel empresarial.

Los escuchas de HttpSession definidos en todos los módulos web dentro de la aplicación de nivel empresarial o aplicación de empresa se invocan para los sucesos de sesión. No se garantiza el orden de invocación de los escuchas.

Realice lo siguiente para compartir dados de sesión entre la aplicación de nivel empresarial.

Procedimiento

  1. Realice lo siguiente para compartir datos de sesión utilizando el objeto IBMApplicationSession dentro del código de aplicación.
    1. Recupere el objeto de sesión
      HttpSession session = request.getSession();
    2. Convierta este objeto en un objeto IBMSession y llame al método getIBMApplicationSession.
      IBMApplicationSession appSession = ((IBMSession)session).getIBMApplicationSession();
    3. Utilice appSession como un objeto de sesión normal.
  2. Efectúe lo siguiente para compartir datos utilizando la extensión de contexto de sesión.
    1. Inicie la herramienta de ensamblaje.
    2. En la herramienta de ensamblaje, pulse el botón derecho del ratón en la aplicación (archivo EAR) que desea compartir y pulse Abrir con > Editor de descriptor de despliegue.
    3. En el editor del descriptor de despliegue de la aplicación de la herramienta de ensamblaje, seleccione Contexto de sesión compartida en Extensiones WebSphere. Asegúrese de que la definición de clase de atributos que se incluyen en una sesión están disponibles para todos los módulos web de la aplicación de empresa. El contexto de sesión compartida no cumple completamente los requisitos de las especificaciones.
    4. Guarde el archivo (EAR) de aplicación. En la herramienta de ensamblaje, después de cerrar el editor de descriptor de despliegue de aplicaciones, confirme que desea guardar los cambios realizados en la aplicación.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprs_sharing_data
File name: tprs_sharing_data.html