D
DCraig
I'm having a problem with one of my forms (using .Net 03 EE, SQL 2K
Standard, XP client and Windows Server03). After editing and deleting a few
records, the form starts timing out, giving me the message;
"Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occurred because all pooled
connections were in use and max pool size was reached."
Once this happens, I cannot connect to the database until I restart the
application. At the same time, I can connect to the database fine from
another application (query analyzer) or even another copy of the same
application. I understood that the 'connection pool' was a resource on the
server, not part of ADO .Net, but either the message is complete nonsense or
each instance of the application has a limited pool of connections?
I've managed to improve the situation by sharing a connection across the
tiers and passing it by reference, but I still get the message after editing
10 or so records rather than 3. I've been going over the code to be sure
that connections are being closed and transactions are terminating and it
all looks like it should: the connection is being closed in 'finally' as
recommended, previous transactions are terminating successfully.
I've monitored the connections on the server, and typically there are 40 to
60 connections (this includes connections to the live database as well as
our development copy) and 10 to 20 pools. From what I've read this is more
than sufficient, the number does not change significantly when the exception
occurs.
Has anyone seen this? Can anyone help me understand if this has to do with
the connection pool or if the message is a wild goose chase?
Thanks;
David Craig.
Standard, XP client and Windows Server03). After editing and deleting a few
records, the form starts timing out, giving me the message;
"Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occurred because all pooled
connections were in use and max pool size was reached."
Once this happens, I cannot connect to the database until I restart the
application. At the same time, I can connect to the database fine from
another application (query analyzer) or even another copy of the same
application. I understood that the 'connection pool' was a resource on the
server, not part of ADO .Net, but either the message is complete nonsense or
each instance of the application has a limited pool of connections?
I've managed to improve the situation by sharing a connection across the
tiers and passing it by reference, but I still get the message after editing
10 or so records rather than 3. I've been going over the code to be sure
that connections are being closed and transactions are terminating and it
all looks like it should: the connection is being closed in 'finally' as
recommended, previous transactions are terminating successfully.
I've monitored the connections on the server, and typically there are 40 to
60 connections (this includes connections to the live database as well as
our development copy) and 10 to 20 pools. From what I've read this is more
than sufficient, the number does not change significantly when the exception
occurs.
Has anyone seen this? Can anyone help me understand if this has to do with
the connection pool or if the message is a wild goose chase?
Thanks;
David Craig.