Session pools allow you to configure a number of host sessions that connect to the host and navigate to a startup entity, waiting to be called upon by a client application. A session pool's configuration includes the two settings Count and Max number of sessions.
The Count setting defines the number of sessions to preload and maintain in the idle pool. The idle pool is where sessions wait for a client to request a host connection. The Maximum number of sessions setting defines the maximum number of active (in use by a client) sessions allowed for the pool. Count cannot be larger than the Maximum number of sessions, and the Maximum number of sessions cannot be larger than the server's global setting Maximum concurrent sessions.
The server loads, initializes, connects, and navigates each host session in the idle pool to the startup entity when the server is started and when the server exits Config mode. When a client application requests a session, a session in the idle pool connects to the host and navigates to the startup entity. Once a session makes a connection to the host, it will maintain that connection from then on. Once a session pool session is released by the client application, it automatically navigates back to the startup entity in preparation for the next client request.
If contact with the host is lost while there are sessions in the idle pool, they will wait to connect and navigate to the startup entity until called upon by a client application and then remain connected once released, just as when the session pool is first initialized. This is done to reduce server and host resource consumption when maintenance on the host is performed.
When a client requests a session from a pool and the idle pool is empty (all pooled sessions are active), the server will create a new session, as long as the number of active sessions is below the maximum. As sessions are released from their clients, the server will return them to the idle pool until the idle pool contains the number of sessions specified by the Count property. If the idle pool is full when a session is released, the session will be terminated.