Product overview > Cache integration overview
HTTP session management
The session replication manager that is shipped with WebSphere eXtreme Scale can work with the default session manager in the application server to replicate session data from one process to another process to support user session data high availability.
The session manager has been designed so that it can run in any Java™ Platform, Enterprise Edition v1.4 container. Because the session manager does not have any dependencies on WebSphere APIs, it can support various versions of WAS, as well as vendor application server environments.
The HTTP session manager provides session replication capabilities for an associated application. The session replication manager works with the web container's session manager to create HTTP sessions and manage the life cycles of HTTP sessions that are associated with the application. These life cycle management activities include: the invalidation of sessions based on a timeout or an explicit servlet or JavaServer Pages (JSP) call and the invocation of session listeners that are associated with the session or the web application. The session manager persists its sessions in an ObjectGrid instance. This instance can be a local, in-memory instance or a fully replicated, clustered and partitioned instance. The use of the latter topology enables the session manager to provide HTTP session failover support when application servers are shut down or end unexpectedly. The session manager can also work in environments that do not support affinity, when affinity is not enforced by a load balancer tier that sprays requests to the application server tier.
Usage scenariosThe session manager can be used in the following scenarios:
- In environments that use application servers at different versions of WAS, such as in a classic migration scenario.
- In deployments that use application servers from different vendors. For example, an application that is being developed on open source application servers and that is hosted on WAS. Another example is an application that is being promoted from staging to production. Seamless migration of these application server versions is possible while all HTTP sessions are live and being serviced.
- In environments that require the user to persist sessions with higher quality of service (QoS) levels and better guarantees of session availability during server failover than default WAS QoS levels.
- In an environment where session affinity cannot be guaranteed, or environments in which affinity is maintained by a vendor load balancer and the affinity mechanism must be customized to that load balancer.
- In an environment to offload the overhead of session management and storage to an external Java process.
- In multiple cells to enable session failover between cells.
- In multiple data centers or multiple zones.
How the session manager works
The session replication manager uses standard session listener to listen on the changes of session data, and persists the session data into an ObjectGrid instance either locally or remotely. The session data is reloaded in the request path through the standard servlet from the ObjectGrid instance either locally or remotely. You can add the session listener and servlet filter to every web module in the application with tooling that ships with WebSphere eXtreme Scale. You can also manually add these listeners and filters to the web deployment descriptor of the application.
This session replication manager works with each vendor's web container session manager to replicate session data across JVMs. When the original server dies, users can retrieve session data from other servers.
Figure 1. HTTP session management topology with a remote container configuration
Deployment topologiesThe session manager can be configured using two different dynamic deployment scenarios:
- Embedded, network attached eXtreme Scale containers
In this scenario, the eXtreme Scale servers are collocated in the same processes as the servlets. The session manager can communicate directly to the local ObjectGrid instance, avoiding costly network delays. This scenario is preferable when running with affinity and performance is critical
- Remote, network attached eXtreme Scale containers
In this scenario, the eXtreme Scale servers run in external processes the process in which the servlets run. The session manager communicates with a remote eXtreme Scale server grid. This scenario is preferable when the web container tier does not have the memory to store the session data. The session data will be offloaded to a separate tier, which will result in lower memory usage on the web container tier, but higher latency due to the remote location of the data.
Generic embedded container startup
eXtreme Scale automatically starts an embedded ObjectGrid container inside any application-server process when the web container initializes the session listener or servlet filter, if the objectGridType property is set to EMBEDDED. See Servlet context initialization parameters for details.
You are not required to package an ObjectGrid.xml file and objectGridDeployment.xml file into the web application WAR or EAR file with eXtreme Scale v7.1. The default ObjectGrid.xml and objectGridDeployment.xml files are packaged in the product JAR. Dynamic maps are created for various web application contexts by default. Static eXtreme Scale maps continue to be supported.
This approach for starting embedded ObjectGrid containers applies to any type of application server. The approaches involving aWAS component or WAS Community Edition GBean are deprecated.
Parent topic:Cache integration overview
JPA cache plug-in
Listener-based session replication manager
Dynamic cache provider
Use Sessions to access data in the grid
Configure HTTP session managers