Consider an ASP.NET application with has a connection pool memory leak problem (where connections are not being closed correctly for example).

Does recycling the application pool clear the connection pool (thus allowing more connections to be made)?

If the connections are left in memory until the Garbage Collector removes them, does this happen when the application pool is restarted (or are/can they left beyond that)? I also understand the Garbage Collector could clean them up at anytime as well, but are they still in use and unable to be collected until a reset or application pool restart?

I'm reviewing a system where the end goal is obviously to have the code corrected to manage the connections correctly, and I'm trying to gain more of an understanding about the garbage collection/application pool process.