Java Code Examples for com.mchange.v2.c3p0.ComboPooledDataSource#setMaxIdleTimeExcessConnections()
The following examples show how to use
com.mchange.v2.c3p0.ComboPooledDataSource#setMaxIdleTimeExcessConnections() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: PGDb.java From hortonmachine with GNU General Public License v3.0 | 4 votes |
public boolean open( String dbPath ) throws Exception { this.mDbPath = dbPath; connectionData = new ConnectionData(); connectionData.connectionLabel = dbPath; connectionData.connectionUrl = new String(dbPath); connectionData.user = user; connectionData.password = password; connectionData.dbType = getType().getCode(); boolean dbExists = true; String jdbcUrl = EDb.POSTGRES.getJdbcPrefix() + dbPath; if (makePooled) { Properties p = new Properties(System.getProperties()); p.put("com.mchange.v2.log.MLog", "com.mchange.v2.log.FallbackMLog"); p.put("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL", "OFF"); // Off or any // other level System.setProperties(p); // testConnectionOnCheckin validates the connection when it is returned to the pool. // idleConnectionTestPeriod sets a limit to how long a connection will stay idle before testing it. // maxIdleTimeExcessConnections will bring back the connectionCount back down to minPoolSize after a spike in activity. comboPooledDataSource = new ComboPooledDataSource(); comboPooledDataSource.setDriverClass(DRIVER_CLASS); comboPooledDataSource.setJdbcUrl(jdbcUrl); if (user != null && password != null) { comboPooledDataSource.setUser(user); comboPooledDataSource.setPassword(password); } comboPooledDataSource.setMinPoolSize(5); comboPooledDataSource.setMaxPoolSize(30); comboPooledDataSource.setAcquireIncrement(1); comboPooledDataSource.setInitialPoolSize(10); comboPooledDataSource.setMaxStatements(100); comboPooledDataSource.setTestConnectionOnCheckin(true); comboPooledDataSource.setIdleConnectionTestPeriod(300); comboPooledDataSource.setMaxIdleTimeExcessConnections(240); // comboPooledDataSource.setCheckoutTimeout(2000); comboPooledDataSource.setAcquireRetryAttempts(1); // comboPooledDataSource.setBreakAfterAcquireFailure(false); // TODO remove after debug // comboPooledDataSource.setUnreturnedConnectionTimeout(180); } else { if (user != null && password != null) { singleJdbcConn = DriverManager.getConnection(jdbcUrl, user, password); } else { singleJdbcConn = DriverManager.getConnection(jdbcUrl); } } if (mPrintInfos) { String[] dbInfo = getDbInfo(); Logger.INSTANCE.insertDebug(null, "Postgresql Version: " + dbInfo[0] + "(" + dbPath + ")"); } return dbExists; }
Example 2
Source File: C3P0DataSourceAdapter.java From cloudhopper-commons with Apache License 2.0 | 4 votes |
public ManagedDataSource create(DataSourceConfiguration config) throws SQLMissingDependencyException, SQLConfigurationException { // // http://www.mchange.com/projects/c3p0/index.html#configuration_properties // // // these system properties need turned off prior to creating our first // instance of the ComboPooledDataSource, otherwise, they are ignored // turn off VMID stuff (causes long ugly names for datasources) System.setProperty("com.mchange.v2.c3p0.VMID", "NONE"); // jmx is off by default if (!config.getJmx()) { // apparently, c3p0 does this with a system-wide property // com.mchange.v2.c3p0.management.ManagementCoordinator=com.mchange.v2.c3p0.management.NullManagementCoordinator System.setProperty("com.mchange.v2.c3p0.management.ManagementCoordinator", "com.mchange.v2.c3p0.management.NullManagementCoordinator"); } else { System.setProperty("com.mchange.v2.c3p0.management.ManagementCoordinator", "com.cloudhopper.commons.sql.c3p0.C3P0CustomManagementCoordinator"); } // set the JMX domain for the C3P0 C3P0CustomManagementCoordinator.setJmxDomainOnce(config.getJmxDomain()); // create a new instance of the c3p0 datasource ComboPooledDataSource cpds = new ComboPooledDataSource(true); // set properties try { // set required properties cpds.setDriverClass(config.getDriver()); cpds.setUser(config.getUsername()); cpds.setPassword(config.getPassword()); cpds.setJdbcUrl(config.getUrl()); // set optional properties cpds.setDataSourceName(config.getName()); cpds.setMinPoolSize(config.getMinPoolSize()); cpds.setMaxPoolSize(config.getMaxPoolSize()); // we'll set the initial pool size to the minimum size cpds.setInitialPoolSize(config.getMinPoolSize()); // set the validation query cpds.setPreferredTestQuery(config.getValidationQuery()); // amount of time (in ms) to wait for getConnection() to succeed cpds.setCheckoutTimeout((int)config.getCheckoutTimeout()); // checkin validation cpds.setTestConnectionOnCheckin(config.getValidateOnCheckin()); // checkout validation cpds.setTestConnectionOnCheckout(config.getValidateOnCheckout()); // amount of time to wait to validate connections // NOTE: in seconds int seconds = (int)(config.getValidateIdleConnectionTimeout()/1000); cpds.setIdleConnectionTestPeriod(seconds); // set idleConnectionTimeout // NOTE: in seconds seconds = (int)(config.getIdleConnectionTimeout()/1000); cpds.setMaxIdleTimeExcessConnections(seconds); // set activeConnectionTimeout seconds = (int)(config.getActiveConnectionTimeout()/1000); cpds.setUnreturnedConnectionTimeout(seconds); if (config.getDebug()) { cpds.setDebugUnreturnedConnectionStackTraces(true); } else { cpds.setDebugUnreturnedConnectionStackTraces(false); } // properties I think aren't valid for c3p0 // defines how many times c3p0 will try to acquire a new Connection from the database before giving up. cpds.setAcquireRetryAttempts(10); } catch (PropertyVetoException e) { throw new SQLConfigurationException("Property was vetoed during configuration", e); } /** // configure c3p0 defaults that seem to make more sense /** * c3p0.acquireIncrement hibernate.c3p0.acquire_increment c3p0.idleConnectionTestPeriod hibernate.c3p0.idle_test_period c3p0.initialPoolSize not available -- uses minimum size c3p0.maxIdleTime hibernate.c3p0.timeout c3p0.maxPoolSize hibernate.c3p0.max_size c3p0.maxStatements hibernate.c3p0.max_statements c3p0.minPoolSize hibernate.c3p0.min_size c3p0.testConnectionsOnCheckout hibernate.c3p0.validate hibernate 2.x only! */ return new C3P0ManagedDataSource(this, config, cpds); }