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:
-
A user accesses a SAS
client application, and the application requests a connection to a
workspace server.
-
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
-
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.
-
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.
-
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.)
-
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.
-
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.