Connection pooling for the DataServer for Microsoft SQL Server is a combination of ODBC connection pooling and DataServer connection management. These connection components can be used as follows:
Individually, ODBC connection pooling or DataServer connection management provides the foundation required for firehose cursors, but enabling both provides the best performance. For more information on firehose cursors, see Firehose, Firehose block, and Fast Forward-Only Cursors.
Without a connection pool, firehose cursors would block an application until a full result set is retrieved. Because of this, when connection pooling is disabled, firehose cursors are also disabled. By maintaining multiple connections and one cursor per connection, read-only requests only block the connection on which they retrieve results, freeing ABL applications to continue processing data on the other connections.
ODBC connection pooling and DataServer connection management provide the highest performance improvements when enabled together, but they can also be enabled independent of one another.
For installations where the number of ODBC connections is limited, you might decide to enable only the DataServer connection management. For deployments in which memory constraints are a concern, enabling only the ODBC connection pool provides on-demand connections, with optimized resource efficiency. If both an ODBC connection pool and managed connections coexist in the same DataServer process, the managed connections will come from the ODBC connection pool. The managed connections are distinguished from the connection pool connections in that they are never released back to the pool for the life of an ABL session.