Techniques for managing state
Multimachine scaling techniques rely on using multiple copies of an appserver; multiple consecutive requests from various clients can be serviced by different servers. If each client request is completely independent of every other client request, it does not matter whether consecutive requests are processed on the same server. However, in practice, client requests are not independent. A client often makes a request, waits for the result, then makes one or more subsequent requests that depend on the results received from the earlier requests. This sequence of operations on behalf of a client falls into two categories:
- A server processes requests based solely on information provided with each request and does not reply on information from earlier requests. In other words, the server does not need to maintain state information between requests.
- A server processes requests based on both the information provided with each request and information stored from earlier requests. In other words, the server needs to access and maintain state information generated during the processing of an earlier request.
For stateless interactions, it does not matter whether different requests are processed by different servers. However, for stateful interactions, the server that processes a request needs access to the state information necessary to service that request. Either the same server can process all requests that are associated with the same state information, or the state information can be shared by all servers that require it. In the latter case, accessing the shared state information from the same server minimizes the processing overhead associated with accessing the shared state information from multiple servers.
The load distribution facilities in WAS use several different techniques for maintaining state information between client requests:
Session affinity The load distribution facility recognizes the existence of a client session and attempts to direct all requests within that session to the same server. Transaction affinity The load distribution facility recognizes the existence of a transaction and attempts to direct all requests within the scope of that transaction to the same server. Server affinity The load distribution facility recognizes that although multiple servers might be acceptable for a given client requests, a particular server is best suited for processing that request. The WAS Session Manager Part of each appserver. Stores client session information and takes session affinity and server affinity into account when directing client requests to the cluster members of an application server. The workload management service takes server affinity and transaction affinity into account when directing client requests among the cluster members of an application server.
Workload management (WLM)
Session management support
Balancing workloads with clusters
Managing HTTP sessions