Search Postgresql Archives

Re: Applications that leak connections

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



you are perfectly right, fixing the source of the problem is the best way to 
fix this. i always make it a habit to close my connections as soon as i'm 
done with it. if foxpro won't do it for you, you have to manage your own 
resources, always a good practice for unmanaged applications.

i suggest you parse your code for all lines that opens the connection and 
close it where it's not needed anymore.

good luck.

regards,


On Thu, 03 Feb 2005 18:27:46 -0500, Paul Tillotson wrote
> Does anyone have any useful info about dealing with applications 
> which "leak" connections, eventually causing "connection limit 
> exceeded for non superusers?"
> 
> Obviously fixing the app is the best choice, but I have a feeling 
> that this is going to recur again and again since the app is poorly 
> maintained but still under active development (code base too large 
> for the developer assigned to it).  The developer is likely to 
> accidentally cause connection leaks in the future.
> 
> This problem is also very easy to cause because doing this:
> 
> c = sqlconnect("database")
> c = sqlconnect("database")
> 
> Causes TWO connections to be made, and the first connection made is 
> now 
> (as far as I can see) impossible to close without closing the 
> application.  The language (Visual Foxpro) does not garbage collect 
> connections and so any connection whose handle is lost still takes 
> up one of the slots.
> 
> On the server side, I can detect this condition using ps -A or lsof; 
> but I have not thought of a good solution to use when this is 
> noticed.  One possibility is to just shut down the database and 
> restart it when this happens.  I did some research into finding out 
> if it was possible to break a specific TCP connection (this is linux 
> 2.6 kernel--platform specific tools/commands ok).  For example,
>  could I use hping to break the connections?
> 
> Does anyone know a safe way to shutdown just one backend (if it is 
> idle)?
> 
> Another possibility that I can think of is per ip address connection 
> limits.  How hard would that be?
> 
> Paul Tillotson
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> 
>     (send "unregister YourEmailAddressHere" to 
> majordomo@xxxxxxxxxxxxxx)


--
Jonel Rienton
http://blogs.road14.com
Software Developer, *nix Advocate


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux