Connection pooling manages database connections for multiple users, improving server performance and query response times. Users are assigned to pools with similar configurations and queued if necessary. Pool fragmentation can slow response times, but can be solved by creating multiple pools. Idle or lost connections are returned to the pool as invalid objects.
Connection pooling is the term for managing the connections of users querying databases. While many users may not notice it, when there are large numbers of users seeking access to an application server on which a database resides, the sheer volume of connections can make it nearly impossible for a server to maintain a good connection with all connections at these times. Software engineering that enables connection pooling allows a server to handle connections well regardless of the high volume of connections querying, and allows these queries to be answered at sub-second speeds.
Connections must be of identical configuration to be included in a connection pool, so most server connection pooling programs have several connection pools running at the same time. When a user tries to connect, they are assigned to a pool with similar configurations, if space is available. If there is no space available, the request is queued to be filled as soon as it becomes available. A user may not be aware that they are in a queue, but may simply notice that the database seems slow in responding to the query; however, in the database management systems back office, the pools are scanned for space for the user to find an open connection. Most connection pooling programs have a list of maximum users per pool and minimum time settings for which a connection can be idle before it is dropped and availability is returned to the pool.
When a connection pool is created, a number of connection objects are created and added to the pool. For a pool to be considered active, a minimum number of objects is required. These connection objects are the availability seats that attach a connection to the pool and can be created and added to the pool as needed up to the maximum allowed within a pool. As users are satisfied with their query and release their connection object, the objects are returned to the pool by connection pooling programs for use by another user or by the same user when he returns.
One factor that can slow down response times in connection pooling is what is known as pool fragmentation. Pool fragmentation usually occurs due to built-in security or too many databases residing on an existing set of servers. A database management system that authenticates users and then queues or assigns them to existing connection pool objects runs out of memory, and tighter system design for logins often solves the problem of too many databases. The built-in security design of Windows-based programs in many connection pooling programs requires that only one Windows-based user reside within a pool at a time. This can be fixed by creating multiple pools to service additional requests that need to be answered at the same time.
If the connection pooler detects that a user has been idle for more than a certain amount of time or the connection has been lost, it will return the connection object to the pool as an invalid object. If a server goes down while a connection is active, the connection can still be withdrawn even if the connection pool is unaware of the down connection. ActiveX connection pooling programs then usually proceed to clear the pool of these connections when the server is restarted.
Protect your devices with Threat Protection by NordVPN