One of the biggest advantages of WAM session management is the ability to maintain state or data for a particular session without using server memory (which is a limited resource). WAMs provide a declarative mechanism (described in 4.3.3 The WEB_MAP *PERSIST Keyword) to identify fields and lists that must be maintained for the session beyond the scope of a single request. Fields and lists declared as session data are maintained in a database and are then moved in and out of server memory for each request from a session. This mechanism allows distinct application servers (in a multiple server configuration) to service individual requests even from the same session, as long as a single database is used for session state storage.
The time between two requests from a session must be within an inactivity timeout period. Each request resets the inactivity timeout. If a request occurs outside of the timeout period for a session, the session is deemed expired and appropriate action must be taken at the application level to handle this situation. For example, an RDMLX event handler must be written to deal with an invalid session key. (If an event handler is not provided, a generic error page is returned.)
When a session has expired, it is not immediately removed from the database. It is just flagged as expired. A separate clean up process is run to perform expired session clean up. This process can be configured as a background process that can be executed from the database at off-peak times. Refer to WAM Session Clean Up in the Web Administration Guide for information about clearing the database.