/** Create dataSource object using given parameters */ public DataSource setupDataSource( String connectionURL, String username, String password, int minIdle, int maxActive) throws Exception { GenericObjectPool connectionPool = new GenericObjectPool(null); connectionPool.setMinIdle(minIdle); connectionPool.setMaxActive(maxActive); connectionPool.setMaxWait(1000 * 60); pool = connectionPool; ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectionURL, username, password); PoolableConnectionFactory factory = new PoolableConnectionFactory(connectionFactory, connectionPool, null, null, false, true); pool.setFactory(factory); PoolingDataSource dataSource = new PoolingDataSource(connectionPool); dataSource.setAccessToUnderlyingConnectionAllowed(true); return dataSource; }