Actually, if frameworks check out a connnection and c3p0 only proxies that, the performance of applications using a connection pool that only checks out on the first operation would all perform alot better I assume as there would be less contention.  I know there are quite a few pages in our app that checkout a connection, do nothing and put it back(like error.xhtml page)....just some more thoughts.

Our work around is to use a JSF page databasedown.xhtml and any other pages go there but it is like a hack as with just postgres the login page comes up fine and you can't login because the db is down.  Now that we have c3p0, we can't go to login page when db is down or any of the other pages :(.

I guess I could rethink using seam but I like the transaction being handled by the framework out pretty dang well.