I was recently demonstrating an example of how connection pooling (with SqlConnection) is local to an application domain. That means that you can effectively reuse connections in a component host, or ASP.NET web service or web page, but you can't reuse connections between different users who are connecting directly to a database in a client-server style app.
This got me thinking. By default, connection pooling is enabled with SqlConnection, and when you release a connection it's held in the connection pool on the local computer until the application shuts down. Doesn't that mean that in a client-server application, even if you are careful to close the connection after every operation, the connection will actually remain open in the pool? Performance monitoring with SQL Server:General Statistics:User Connections seems to suggest so. So if someone is designing a client-server app (for example, a WinForms client that connects directly to a database), shouldn't they explicitly disable connection pooling to decrease connection lifetime and increase scalability? Thoughts appreciated, Matthew =================================== This list is hosted by DevelopMentorŪ http://www.develop.com Some .NET courses you may be interested in: Guerrilla ASP.NET, 10 Nov 2003 in London and 26 Jan 2004, in Los Angeles http://www.develop.com/courses/gaspdotnet Guerrilla .NET, 8 Dec 2003, in Los Angeles http://www.develop.com/courses/gdotnet View archives and manage your subscription(s) at http://discuss.develop.com