I am still getting weird behavior between seam and c3p0.  Is there any logging on c3p0 apis especially on the method calls getConnection and close and hopefully running the test sql as well.  I looked at C3P0ConnectionProvider.java which didn't seem to have logging on the basics getConnection and close :(.

My settings are at the bottom of the email(most are the defaults), but I can use all pages of the seam application that are dynamic and don't need the database just fine right up until I use the database 6 times(minPoolSize=5).  I do see c3p0 testing the connection after the db failures!!!! sweeeet!!! that is working, but then after 6 times, the application is no longer accessible by anyone :(.  I believe the problem and I don't know if this is solvable is that seam uses a pretty standard pattern on every request...getConnection.....close regardless of if it needs the database or not.  It works fine with postgres driver but when I use c3p0, after all the connections have been tested and discarded, seam ends up with an infinite redirect problem...http request, get connection failure, redirect to error page, http request for error page, get connection failure and all over again and again.  I would like the non-database pages to still be usable while the db is down though :(.  It is probably too much to ask that c3p0 have proxy connections it gives out(as many as it needs) and only give those proxies a real connection from the pool when it actually runs some sql.....that would be a pain.  I wonder if there is some other way of solving this though?????  getConnection can't fail or seam ends up in infinite redirect.  any ideas on getting around that?

INFO: N/A Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@386edb0 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@962472a [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hge1zq881xl954rz6htee|4ace42, idleConnectionTestPeriod -> 0, initialPoolSize -> 5, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 20, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 5, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@376b610 [ description -> null, driverClass -> null, factoryClassLocation -> null, identityToken -> 1hge1zq881xl954rz6htee|936f52, jdbcUrl -> jdbc:log4jdbc:postgresql://localhost/saasplatform, properties -> {user=******, password=******, autocommit=true, release_mode=auto} ], preferredTestQuery -> select 1, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, factoryClassLocation -> null, identityToken -> 1hge1zq881xl954rz6htee|92325d, numHelperThreads -> 3 ]

thanks,
Dean