INFO: OLE DB Session Pooling Timeout Configuration

This article was previously published under Q237977
This article has been archived. It is offered "as is" and will no longer be updated.
Beginning with MDAC 2.1, session pooling timeouts for OLE DB providers can now be configured in a manner very similar to ODBC connection pooling. This permits control over the length of time that an unused session will be retained in the pool of open sessions for a particular provider, and is configurable on a per-provider basis.

Prior to MDAC 2.1, this value was hard coded at 60 seconds, and was not configurable.
The session pooling timeout values are controlled through registry entries. There are two entries that are global to all providers, and one that can be made for each individual provider. Currently, there is no user interface available to create and configure these registry entries, so these entries must be added to the registry manually.

The following registry entry should be created for each provider for which you want to configure session pooling timeouts:
This value represents the number of seconds that an unused session remains in the pool before being timed out and closed. This is a DWORD value and will default to 60 if no registry value is present.

CLSID's for some of the common Microsoft providers are:
SQLOLEDB (SQL Server native provider)     HKEY_CLASSES_ROOT\CLSID\{0C7FF16C-38E3-11d0-97AB-00C04FC2AD98}Microsoft.Jet.OLEDB.4.0 (Jet native provider)     HKEY_CLASSES_ROOT\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}MSDAORA (Oracle native provider)     HKEY_CLASSES_ROOT\CLSID\{e8cc4cbe-fdff-11d0-b865-00a0c9081c1d}MSDASQL (OLE DB Provider for ODBC)     HKEY_CLASSES_ROOT\CLSID\{c8b522cb-5cf3-11ce-ade5-00aa0044773d}				
The following two registry entries are global to all providers:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataAccess\Session Pooling\Retry Wait
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataAccess\Session Pooling\ExpBackOff
Retry Wait is identical to the ODBC RetryWait setting that can be seen in the ODBC Administrator, and determines the amount of time that the service components will wait until attempting to contact the server again, in the event of a failed connection. This is a DWORD value and will default to 64 if no registry value is present.

ExpBackOff determines the factor by which the service components will increase the wait time between attempts to contact the server, in the event of a failed connection. This is a DWORD value and and will default to 2 if no registry value is present.

The ability to configure session pooling timeouts requires a hotfix for MDAC 2.1 SP1 (version 2.10.3711), but has been rolled into MDAC 2.1 SP2. Please note that no hotfix is required for MDAC 2.1 SP2. If you require this hotfix for MDAC 2.1 SP1, please contact a Technical Support representative. Additional information about the hotfix is provided in the following.

A supported fix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Apply it only to computers that are experiencing this specific problem. This fix may receive additional testing. Therefore, if you are not severely affected by this problem, Microsoft recommends that you wait for the next Microsoft Data Access Components Service Pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English version of the fix for MDAC 2.1 SP1 should have the following file attributes or later:
   Date      Time    Version      Size    File name     Platform   -------------------------------------------------------------   6/10/99           2.10.4210     6KB    Msdadc.dll   6/10/99           2.10.4210     6KB    Msdaenum.dll   6/10/99           2.10.4210     6KB    Msdaer.dll   6/10/99           2.10.4210     6KB    Msdasc.dll   6/10/99           2.10.4210   359KB    Oledb32.dll   6/10/99           2.10.4210    40KB    Oledb32r.dll   6/10/99           2.10.4210     6KB    Oledb32x.dll				

session pooling timeout configure configurable sptimeout ole db provider