Can a stateless WCF service benefit from built-in database connection pooling?
        Posted  
        
            by vladimir
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by vladimir
        
        
        
        Published on 2010-04-30T16:36:35Z
        Indexed on 
            2010/04/30
            16:47 UTC
        
        
        Read the original article
        Hit count: 372
        
I understand that a typical .NET application that accesses a(n SQL Server) database doesn't have to do anything in particular in order to benefit from the connection pooling. Even if an application repeatedly opens and closes database connections, they do get pooled by the framework (assuming that things such as credentials do not change from call to call).
My usage scenario seems to be a bit different. When my service gets instantiated, it opens a database connection once, does some work, closes the connection and returns the result. Then it gets torn down by the WCF, and the next incoming call creates a new instance of the service.
In other words, my service gets instantiated per client call, as in [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]. The service accesses an SQL Server 2008 database. I'm using .NET framework 3.5 SP1.
Does the connection pooling still work in this scenario, or I need to roll my own connection pool in form of a singleton or by some other means (IInstanceContextProvider?). I would rather avoid reinventing the wheel, if possible.
© Stack Overflow or respective owner