MDAC Technical Articles

Other Features

The following features are designed into the MDAC components:

Session Pooling

Session pooling (sometimes called resource pooling) is a new feature of the OLE DB service components that ADO developers can benefit from. (An OLE DB session corresponds to the ADO Connection object.) Session pooling is designed for the Web scenario. It is intended to improve the performance of connecting and disconnecting in large applications by keeping a pool of live connections open for a short period of time and then reusing them for new connection requests. This is an alternative to completely reconnecting to the data source. In session pooling, the security and other properties of the connection are respected. Pooled connections are reused only if the newly requested connection properties match the properties of the pooled connections.

The ADO developer does not have to do anything to use pooling with the OLE DB providers included in the MDAC SDK. For providers not included, the developer may need to create a registry setting to notify the service components that the provider can safely be pooled. For more information about session pooling and service components, the technical article "Pooling in the Microsoft Data Access Components" in the MDAC SDK.

In addition to tuning the individual components, MDAC includes session pooling at the OLE DB level. Connections and transaction enlistment are preserved between uses. Because of this, middle-tier applications that rely on quick, individual database actions can share connections rather than having to create and release connections for each action. This sophisticated session pooling maintains multiple, homogeneous pools of connections, reducing contention and improving throughput. Additional information, such as the provider's initialization properties, support for aggregation, and even the provider's class factory, are cached after the first connection to the provider to further improve performance and scalability.

Automatic Transaction Enlistment

The service components support automatic transaction enlistment in a Component Services (MTS, if you are using Microsoft Windows NT®) environment, if the provider was invoked using ADO, or, for OLE DB, using the IDataInitialize or IDBPromptInitialize interfaces.

Connection Information User Interface

MDAC has a universal Data Link component that provides a common user interface for specifying connection information to any provider. The connection information can be represented by using a common string format. Applications can use the Universal Data Link dialog box to collect information from the user, and users can use the Universal Data Link dialog box to create or edit connection information persisted in a universal Data Link (.udl) file. Because this component is used by ADO to parse the connection string, ADO users can pass a connection string directly or can specify a .udl file containing the connection information.

Data Conversion

The core services include a common data conversion component that can be used by any OLE DB provider to perform the conversions designated in the OLE DB specification. This component, which originally shipped as part of the OLE DB 1.0 SDK, was enhanced to support a number of additional conversions.

Support for Analyzer

Support for the Visual Studio Analyzer is included in both the ODBC Driver Manager and the ADO libraries.