Understanding the Server-side Pooling Connection Process

Server-side pooling is the process by which the object spawner maintains a pool of servers available for a client. (The object spawner maintains a port bank to facilitate client connections to this server pool.) The usage of servers in this pool is governed by the authorization rules that are set on the servers in the metadata. The following process describes how an application retrieves and uses a pooled workspace server to handle a user request:
  1. A user accesses a SAS client application, and the application requests a connection to a workspace server.
  2. The spawner receives the application connection request (on behalf of the user) and decides which server to send the request to based on two criteria:
    • the application user's identity (On which servers does the user have authorization?)
    • the load-balancing algorithm
  3. The spawner receives the user connection request and passes the user's credentials to the SAS Metadata Server to determine what servers in the pool the user is authorized to access.
  4. The spawner decides which server to send the user to based on the selected load-balancing algorithm, the user's identity, and which servers the user is authorized to use.
  5. The spawner performs one of the following actions based on server availability:
    • If there are servers available, then the spawner redirects the user to an available server.
    • If there are no servers available in the pool and one can be started, then the spawner starts a new server under the launch credentials, adds this new server to the pool, and redirects the user to this server.
    • If the pool has reached it maximum size, then the spawner cannot add any more servers to the pool. The user must wait until there is an available server in the pool or fail after an amount of time. (The maximum size of the pool is determined by the Server Process maximum property for each server. The application wait time is determined by the Availability timeout property that is found on the Logical Pooled Workspace server.)
  6. The workspace server is available to the application to run SAS code. Because the pooled workspace server runs under an administrator-defined host identity, any physical file access that is done by the workspace server process is done under that host identity. This includes access to SAS data sets.
  7. When the user has finished using the pooled workspace server, the server is returned to the pool, and it can be reused by other users.