public DataSource createMCSConnectionPool( MCSConnectionPoolConfiguration configuration, DataSource dataSource) throws RepositoryException { // Create and configure a Connection pool if there is one. if (configuration == null || !configuration.isEnabled()) { return dataSource; } int maxConnections = configuration.getMaxConnections(); int maxFreeConnections = configuration.getMaxFreeConnections(); // int optimalFreeConnections; int minFreeConnections = configuration.getMinFreeConnections(); int initialConnections = configuration.getInitialConnections(); boolean keepConnectionsAlive = configuration.isKeepAliveActive(); ConnectionPool connectionPool = new ConnectionPool(dataSource); if (keepConnectionsAlive) { connectionPool.setKeepConnectionsAlive(true); int connectionPollInterval = configuration.getKeepAlivePollInterval(); if (connectionPollInterval > 0) { connectionPool.setConnectionPollInterval(connectionPollInterval); } } connectionPool.setMaxConnections(maxConnections); connectionPool.setMaxFreeConnections(maxFreeConnections); // connectionPool.setOptimalFreeConnections (optimalFreeConnections); connectionPool.setMinFreeConnections(minFreeConnections); connectionPool.setInitialConnections(initialConnections); connectionPool.start(); return connectionPool; }