Ik kwam hetzelfde probleem tegen. In mijn geval werd dit veroorzaakt doordat het JDBC-stuurprogramma niet was ingesteld op een time-out bij socketfouten. Ik heb de volgende toevoegingen gedaan aan mijn C3P0 ComboPooledDataSource
configuratie:
cpds = new ComboPooledDataSource();
...
//--------------------------------------------------------------------------------------
// NOTE: Once you decide to use cpds.setProperties() to set some connection properties,
// all properties must be set, including user/password, otherwise an exception
// will be thrown
Properties prop = new Properties();
prop.setProperty("oracle.net.CONNECT_TIMEOUT",
Integer.toString(JDBC_CONNECTION_TIMEOUT_IN_MILLISECONDS));
prop.setProperty("oracle.jdbc.ReadTimeout",
Integer.toString(JDBC_SOCKET_TIMEOUT_IN_MILLISECONDS));
prop.setProperty("user", username);
prop.setProperty("password", password);
cpds.setProperties(prop);
//--------------------------------------------------------------------------------------
...
De eigenschappen van het Oracle-stuurprogramma worden toegepast wanneer C3P0 de Connection
maakt object. Met name deze twee eigenschappen zorgen ervoor dat er een uitzondering wordt gegenereerd als de socketverbinding langer dan 30 seconden inactief is.
Als u geen verbinding maakt met een Oracle-database, zijn er vergelijkbare eigenschappen voor andere JDBC-stuurprogramma's voor andere databaseleveranciers. Sommigen van hen worden weergegeven onderaan deze pagina .