When you configure an AppServer instance, you must specify an operating mode for it. The operating mode determines how client requests are dispatched to individual AppServer agents running on the AppServer instance. Each operating mode features different performance and design trade-offs.
The AppServer supports the following four operating modes, in increasing order of complexity:
1. State-reset — All requests sent by a client connected to this AppServer go to the same AppServer agent. This AppServer agent remains dedicated to the same client for the life of the connection. When the client disconnects, the AppServer agent resets its context to what it was at startup, removing all context created during the terminated client connection.
Note: This operating mode is conceptually similar to the operation of AppServers prior to Progress Version 9, which run in only one operating mode.
2. State-aware — All requests sent by a client connected to this AppServer go to the same AppServer agent. This AppServer agent remains dedicated to the same client for the life of the connection. When the client disconnects, the AppServer agent deletes any remote persistent procedures that are still active in its context. However, it maintains all other context created during the terminated client connection for access during future client connections. This context remains available until it is removed during a future client connection or the AppServer agent terminates.
3. Stateless — An AppServer agent is not dedicated to a specific client. The AppServer agent can execute a request from any client that has an outstanding request to the AppServer. Because a client request can execute in an AppServer agent that is different from any that executed previous requests for the same client, session context established for this client during a previous request might not be available. Because OpenEdge does not automatically clean up any session context between requests, the session context in which a client request runs might have been established by a request from a different client.
4. State-free — The AppServer is not dedicated to a specific client, but executes requests from all clients that connect to an application service that the AppServer supports. Its AppServer agents can execute a requests from any client that is logically connected to and sends request to the application service that the AppServer supports. Because a client request can execute a request on any AppServer and agent that supports the application service, session context is usually not available from one request to the next for the same client.
For more information on the functional, performance, and design trade-offs among these operating modes, see OpenEdge Application Server: Developing AppServer Applications.