succede subito o dopo un po'? cioè, i checkout inizialmente riescono, ma poi si bloccano in questo modo? in tal caso, sembra una perdita di connessione. prova a impostare i parametri c3p0 unreturnedConnectionTimeout e debugUnreturnedConnectionStackTraces per vedere se c'è una perdita. Vedihttp://www.mchange.com/projects/c3p0/#configuring_to_debug_and_workaround_broken_clients , http://www.mchange.com/projects/c3p0/#unreturnedConnectionTimeout , http://www.mchange.com/projects/c3p0/#debugUnreturnedConnectionStackTraces .
se ciò accade immediatamente, se nessuna connessione viene estratta con successo, la domanda è se il pool riesce mai ad acquisire connessioni. per impostazione predefinita, se non riesce mai, dopo circa 30 secondi il thread dovrebbe interrompersi con un errore. (non sembra che tu l'abbia fatto, ma se, ad esempio, avessi impostato PurchaseRetryAttempts su zero, c3p0 potrebbe bloccarsi indefinitamente in attesa di Connessioni.)
per eseguire il debug dei problemi di c3p0, è utile acquisire la versione e le informazioni di configurazione che c3p0 esegue il dump nei registri a livello INFO all'inizializzazione del pool.
buona fortuna!