The general interaction between a state-free AppServer and client proceeds as follows:
1. The client sends a request to a NameServer to return a logical connection to a specified application service.
2. The NameServer returns to the client a list of AppServers that support the application service.
Note: The algorithm the NameServer uses to choose the list of AppServers depends on whether the NameServer is configured for load balancing. For more information, see the Loadbalancing and session models.
3. The client creates a certain number of physical connections for each AppServer in the list and maintains them in a connection pool, depending on pool connection parameter settings.
Note: Each physical connection in the pool is a separate TCP/IP connection to an AppServer broker in the list provided by the NameServer.
4. The client invokes an application service request (synchronously or asynchronously).
5. The client chooses an AppServer to handle the request based on the list returned by the NameServer and selects a physical connection that is available to send requests to the AppServer broker (a free connection). If there is no free connection to the AppServer broker, the client creates one (limited by the pool connection parameter settings).
6. The client sends the request to the AppServer broker over the selected connection (which is now unavailable for other client requests).
7. The connected AppServer broker passes the client request to an available AppServer agent. The broker continues to be available to handle other client requests.
8. The agent executes the request and returns the results to the broker, which forwards the results back to the client. The connection used by the client to the broker is freed and returned to the connection pool on the client. The AppServer agent is immediately available to handle a request from any client that sends one to the broker.
9. The client handles the results of the application service request and either invokes another request as in Step 4 or disconnects from the application service as in Step 10.
10. When the client no longer requires the application service, it disconnects from the application service and cleans up the connection pool and all resources associated with the logical connection.
The number of available simultaneous logical connections to a state-free application service is limited only by the performance required for each client that connects to the application service. The performance of each client connection depends on the availability of a free physical connection to an AppServer. The availability of free physical connections depends on:
The number and availability of AppServers on the application service list
The resources of each AppServer machine
The number of agents each AppServer is configured to start up and manage at one time
The number and types of client requests to the state-free application service