The Connection Manager coordinates & manages the connections to the underlying database or databases. This includes handling the definitions of the connections, setting the behaviour of the connection pool and creating & releasing the actual connections.
Typically a single, global, Connection Manager exists which is then used application wide.
The Data Service acquires a connection from the Connection Manager's connection pool and then when communications are finished, the Data Service then releases that connection back to the global pool.
Note that depending on the platform the Connection Manager may use ADO.NET to handle the pooling. With the .NET version of Data Abstract, if the
PoolingEnabled property is set to
False then it will use the ADO.NET pool, otherwise if
True then it will use Data Abstract's own pool.
There are a number of configuration options available for the data pool using the properties
PoolingBehavior, PoolTimeoutSeconds, WaitIntervalSeconds and MaxPoolSize. Those are available on both .NET and Delphi versions.