Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

The effects of delegation on connection pooling in Data Access Components and in the .NET Framework

View products that this article applies to.


Delegation lets you use an impersonation token to access network resources. The ability to use delegation depends on the selected authentication mechanism and an appropriate account configuration.

↑ Back to the top

More information

For Open Database Connectivity (ODBC), OLE DB, and Microsoft ADO.NET managed providers, connection pooling creates and maintains a group of connections to databases or to other data stores. Connection pooling uses connections from this group when you later request a connection to that data store.

Applications open a connection to a data store, and then release the connection. The connection is added to the pool of connections that have complete authentication information and connection properties. Then, if the connection is available, applications can reuse it for requests to the same data store. The data store has the same user authentication information and connection properties.

When connection pooling is enabled, a separate connection pool is created for each unique combination of a Windows account token and a connection string. The following table summarizes the performance concerns and scalability concerns for different connection pooling configuration settings and delegation configuration settings.
Collapse this tableExpand this table
Pooling with delegationPooling without delegationNo pooling with or without delegation
Number of poolsN (the number of users)10
Number of connections at any timeThe sum of the maximum number of connections that are opened by each account identityThe maximum number of the connections that were ever used at any timeThe number of the connections that are currently open
PerformanceThe performance is good. However, the connection pool may use more unnecessary connections, especially if many users want to change the use of the connections periodically. Connections that remain in the connection pools are dedicated to a user, even if the user is not using the operating system any longer.This option provides the best performance. A single connection pool is shared by everyone because the same account is used to connect to Microsoft SQL Server.The performance is lower than the other two options, but performance is acceptable. SQL Server must constantly process the additional logins and logouts. This can be monitored by using Performance Monitor (perfmon).
Client resources for the application on a server that is running Internet Information ServicesHighMediumLow
SQL Server resourcesHigh number of concurrent connections. Low number of logins or logouts per second.Medium number of concurrent connections. Lowest number of logins or logouts per second.Low number of concurrent connections. Higher number of logins or logouts per second.
Note Connection pooling may produce poor results in delegation scenarios where there are many unique accounts. In these situations, you can disable connection pooling to maintain scalability and stability.

↑ Back to the top

Keywords: KB947062, kbinfo, kbhowto, kbexpertiseadvanced

↑ Back to the top

Article Info
Article ID : 947062
Revision : 3
Created on : 1/21/2008
Published on : 1/21/2008
Exists online : False
Views : 544