In the state-free or the (especially unbound) stateless operating modes of the AppServer, any available AppServer agent handles each remote request from an AppServer client. The agent can use a client context identifier provided by OpenEdge as a key to retrieve a previously initialized client context from a context store in order to execute the request on behalf of the originating client. On completion of the request, the agent can then update the client context in the context store for access by the client when the request returns, or pass the client context identifier to any other AppServer that might be sent a request from the agent for the same request. Agents across one or more AppServers can thus use this same client context identifier to access the context store on behalf of a given client.
OpenEdge generates an initial, globally unique value for this client context identifier when it first creates the server object that a client uses to connect to an AppServer. The client can then assign its own value for this identifier if necessary, possibly one that has been previously initialized for another AppServer connection.
For example, this identifier is typically used to identify the current user login session that a client initially establishes through an AppServer that implements the authentication service for the client. This value is then propagated in subsequent requests sent between the client and any AppServer involved in requests for that same login session.