Skip to main content

Posts

Showing posts with the label connection pool

Better tracing of Npgsql connection pool usage in the works

Sometimes, Npgsql users receive errors when working with connection pooling. The problem appears when they try to open a new connection and receive the following message:   "Timeout while getting a connection from pool." This is caused when an attempt is made to get a connection from a pool which  has all its connections used. Most of the time this problem is a difficult one to track because it generally happens when the system is in production and not in the development phase. Of course. :) Some time ago, I received a report from Miłosz Kubański about such a problem. I told him I would work in a way to get more information so we could check what was happening. In order to help us find the problem, I added a little  "hack" to  Npgsql: Whenever an error while getting a connection from the pool occurs, Npgsql would log a stacktrace of the allocation of all the connections which were in the pool. Theoretically, those connections which were allo...

Committed fix to make Npgsql use Pool when running under Mono

Yes, you read it right, Npgsql wasn't using connection pool when running under Mono!! The problem seemed to be that Npgsql was using one key to get a connection to pool and another one to return it back. The issue is that although it is wrong, those two values were supposed to be the same. You can see here and here bug reports about it. Well, the fix is already on cvs, so if you were using Npgsql on Mono, you should definitely give it a try so you can see if your code works ok. Sorry for this problem. Later I will bring a full analysis of what can be the problem.