D
dbeavon
Guest
I have not found any way to manipulate the connection pooling behavior from a connection string. For the purpose of ADO.Net's OdbcConnection, it looks like Progress only supports the driver-based connection pooling thru ODBC driver manager. See... Progress KB - Does the Progress OpenEdge ODBC driver for Windows support DataDirect Connection Pooling? No, the Progress OpenEdge ODBC driver for Windows does not support DataDirect Connection Pooling; only the Microsoft Connection Pooling option is available. The Microsoft Connection Pooling is available in 2 flavours: driver level or application level. Driver level is enabled by default. For Application level, an ODBC application can call SQLSetEnvAttr with the SQL_ATTR_CONNECTION_POOLING attribute to enable connection pooling. This KB says a similar thing: Progress KB - Poor performance with ODBC when CPTimeout is set to zero For the Progress OpenEdge ODBC drivers on Windows, Connection Pooling is provided via Microsoft's own facility in the ODBC Data Source Administrator . In summary, the only way to manipulate the connection pooling of ODBC connections to Progress seems to be in the ODBC driver manager. It would be nice if Progress had a managed .Net provider but otherwise I will have to become more familiar with OdbcConnection in ADO.Net. Given that pooling is managed by the ODBC driver manager, there is probably no good way to customize it from one application to another (when those applications are running on the same client machine). The only thing I found in ADO.Net is a method that clears out the underlying ODBC environment: OdbcConnection.ReleaseObjectPool OdbcConnection.ReleaseObjectPool Method (System.Data.Odbc) Presumably that would give us an explicit way to close all connections in the application's connection pool. But once again this is not built into the Progress ODBC driver/provider. It is a feature that is implemented within the ODBC Driver Manager of the Windows client machine.
Continue reading...
Continue reading...