in addition to below answer:- Session Migration: In Session Migration session is passivated in one VM and activated in another VM within a distributed app. In clustered environiments, load-balancing container will decide to send the request to which Container the request has to be sent for processing. There is only one HttpSession object for the entire web application regardles of how many VM's the application is distributed across and that session object move from one Virtual Machine to the other. These all will be take care by the HttpSessionActivationListener. HttpSessionActivationListener is an interface which consists of sessionDidActivate(HttpSessionEvent) sessionWillPassivate(HttpSessionEvent).