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;
  }
Exemplo n.º 2
0
 private static synchronized Connection getConnect() throws SQLException {
   if (connectionPool == null) {
     connectionPool = new ConnectionPool(driverClassName, url, username, password);
     connectionPool.setTestTable("dual");
     if (initConn > 0 && incConn > 0 && maxConn > 0 && maxConn > initConn) {
       connectionPool.setInitialConnections(initConn);
       connectionPool.setIncrementalConnections(incConn);
       ;
       connectionPool.setMaxConnections(maxConn);
       ;
     }
     try {
       connectionPool.createPool();
     } catch (Exception e) {
       logger.fatal("can not create connection pool!system will exit..", e);
       System.exit(1);
     }
   }
   return connectionPool.getConnection();
 }