Jeśli chodzi o mnie, masz źle skonfigurowany c3p0.
Właściwości takie jak c3p0.preferredTestQuery muszą znajdować się w pliku c3p0.properties ze ścieżki klasy (np. WEB-INF/classes).
Poniżej znajduje się mój przykład pliku c3p0.properties, który działa dobrze w Oracle:
c3p0.preferredTestQuery=SELECT 1 from dual
c3p0.maxConnectionAge=3600
c3p0.testConnectionOnCheckout=true
c3p0.acquireRetryDelay=1000
c3p0.acquireRetryAttempts=30
c3p0.breakAfterAcquireFailure=false
Zobacz także oficjalny dokument dla c3p0 tutaj .
I proszę zwrócić uwagę na wersję c3p0, której używasz. Mieli problem z przywróceniem połączenia we wczesnych wydaniach c3p0 0.9.