We're having a problem introducing connection manager to our existing application. While root objects usually share the SqlConnection with their children, there are a lot of places where other BOs get involved, which end up opening their own connection. We've introduced ConnectionManager in another application successfully and this resolved the connection pool being exhausted (it was already set to 500) and seemed to improve performance a bit too.
However we're having trouble in our main app, which has a much larger user base. I think we've narrowed the issue to some BOs which are used by the client to get updated information frequently, approximately every minute or so.
The issue seems to be that sometimes under high load, the Asp.Net AppPool hosting the remoting (yes, remoting) site hangs. New remoting connections are accepted, but stay forever at waiting for response, and everything just stops. The only solution is doing an IISRESET, which hard kills the w3p.exe process hosting the remoting site (it doesn't response to a normal recycle either, although IIS still thinks things are fine).
I've had a look at the Csla code, and I see its doing some locking which is necessary on 2-tier apps but probably less relevant for hosting under Asp.net. I've seen the thread around that here too so I think its unlikely to be our issue. I'm wondering if somehow async / await in combination with ConnectionManager is causing connections not to be returned to the pool (we have some errors logged indicating this).
Anyone else encountered this?