MDAC 2.5 SDK - Technical Articles
The following features are designed into the MDAC components:
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 matching requests are made from each side of the connection.
The ADO developer does not have to do anything to use pooling with the OLE DB providers included in the MDAC SDK, but for providers not included, the developer must 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.
MDAC also includes a common set of service components for providing guaranteed functionality against any provider. One such service is the previously described session pooling component. In addition, the service components support automatic transaction enlistment in a Component Services (MTS, if you are using Microsoft Windows NT®) environment. A service component manager provides guaranteed functionality—such as scrolling, find support, and updatability of SQL data—by invoking components that provide such functionality when requested by the consumer if not supported by the provider.
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.
The core services include a common service for enumerating registered OLE DB providers and 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 the Visual Studio Analyzer is included in both the ODBC Driver Manager and the ADO libraries.