Example usage for org.apache.commons.dbcp.datasources SharedPoolDataSource setMaxWait

List of usage examples for org.apache.commons.dbcp.datasources SharedPoolDataSource setMaxWait

Introduction

In this page you can find the example usage for org.apache.commons.dbcp.datasources SharedPoolDataSource setMaxWait.

Prototype

public void setMaxWait(int maxWait) 

Source Link

Document

The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception, or -1 to wait indefinitely.

Usage

From source file:com.silverpeas.wysiwyg.dynamicvalue.pool.ConnectionPoolWithJDBC.java

/**
 * Initializes the datasource. This datasource is based on the SharedPoolDataSource class, a dbcp
 * implementation//from ww w.  j  a  v  a 2s  .  c o  m
 */
private synchronized static void initializeDatasource() {
    SilverTrace.debug("wysiwyg", ConnectionPoolWithJDBC.class.toString(),
            " Datasource initialization : starting ...");
    if (ds == null) {
        // check if the information for the pool creation is present.
        if (poolInfo == null) {
            SilverTrace.error("wysiwig", ConnectionPoolWithJDBC.class.toString(),
                    "wysiwig.CONNECTION_INIALIZATION_FAILED");
            throw new TechnicalException(ConnectionPoolWithJDBC.class.toString()
                    + " : An error occurred  during the connection initialization. The Pool information must be set");
        }
        SilverTrace.debug("wysiwyg", ConnectionPoolWithJDBC.class.toString(),
                " Datasource initialization : poolInfo detail :: " + poolInfo.toString());

        // driver registration
        DriverAdapterCPDS cpds = new DriverAdapterCPDS();
        try {
            cpds.setDriver(poolInfo.getDriver());
        } catch (ClassNotFoundException e) {
            SilverTrace.error("wysiwig", ConnectionPoolWithJDBC.class.toString(), "wysiwig.DRIVER_MISSING");
            throw new TechnicalException(ConnectionPoolWithJDBC.class.toString()
                    + " : An error occurred  during the connection initializatoin. The JDBC driver isn't in the classpath",
                    e);
        }
        cpds.setUrl(poolInfo.getUrl());
        cpds.setUser(poolInfo.getUser());
        cpds.setPassword(poolInfo.getPassword());

        // datasource object creation
        SharedPoolDataSource tds = new SharedPoolDataSource();
        tds.setConnectionPoolDataSource(cpds);
        tds.setMaxActive(poolInfo.getMaxActive());
        tds.setMaxWait(poolInfo.getMaxWait());
        tds.setMaxIdle(poolInfo.getMaxIdle());
        tds.setTimeBetweenEvictionRunsMillis(poolInfo.getTimeBetweenEvictionRunsMillis());
        tds.setNumTestsPerEvictionRun(poolInfo.getNumTestsPerEvictionRun());
        tds.setMinEvictableIdleTimeMillis(poolInfo.getMinEvictableIdleTimeMillis());
        ds = tds;
        SilverTrace.debug("wysiwyg", ConnectionPoolWithJDBC.class.toString(),
                " Datasource initialization : ending ...");
    }
}

From source file:com.mvdit.framework.database.datasources.LocalDatasourceFactory.java

@Override
public DataSource initDatasource(String dbId, PropertiesRepository props) {
    DriverAdapterCPDS cpds = new DriverAdapterCPDS();
    try {/* www . ja va  2  s .  c  om*/
        cpds.setDriver(props.getProperty(dbId + ".driver", JDBCDatasource.DATABASES_FILE));
    } catch (ClassNotFoundException e) {
        throw new MvditRuntimeException(e);
    }
    String url = props.getProperty(dbId + ".url", JDBCDatasource.DATABASES_FILE);
    cpds.setUrl(url);
    cpds.setUser(props.getProperty(dbId + ".username", JDBCDatasource.DATABASES_FILE));
    cpds.setPassword(props.getProperty(dbId + ".password", JDBCDatasource.DATABASES_FILE));

    SharedPoolDataSource tds = new SharedPoolDataSource();
    tds.setConnectionPoolDataSource(cpds);
    tds.setMaxActive(
            Integer.valueOf(props.getProperty(dbId + ".pool.maxActive", JDBCDatasource.DATABASES_FILE)));
    tds.setMaxWait(Integer.valueOf(props.getProperty(dbId + ".pool.maxWait", JDBCDatasource.DATABASES_FILE)));

    DataSource ds = tds;
    return ds;
}

From source file:hk.hku.cecid.piazza.commons.dao.ds.SimpleDSDAOFactory.java

/**
 * Initializes this DAOFactory./*from  w  w w.j  a  v a2s.  c  o  m*/
 */
public void initFactory() throws DAOException {
    try {
        String driver = null;
        String url = null;
        String username = null;
        String password = null;

        boolean isPooling = true;
        int maxIdle = 0;
        int maxActive = 10;
        int maxWait = 50;

        boolean testOnBorrow = false;
        boolean testOnReturn = false;
        boolean testWhileIdle = false;
        String validationQuery = null;

        try {
            driver = getParameter("driver");
            url = getParameter("url");
            username = getParameter("username", null);
            password = getParameter("password", null);

            maxIdle = StringUtilities.parseInt(getParameter("maxIdle", null), 0);
            maxActive = StringUtilities.parseInt(getParameter("maxActive", null), 0);
            maxWait = StringUtilities.parseInt(getParameter("maxWait", null), -1);

            validationQuery = StringUtilities.trim(getParameter("validationQuery", null));
            if (validationQuery != null) {
                testOnBorrow = StringUtilities.parseBoolean(getParameter("testOnBorrow", "false"));
                testOnReturn = StringUtilities.parseBoolean(getParameter("testOnReturn", "false"));
                testWhileIdle = StringUtilities.parseBoolean(getParameter("testWhileIdle", "false"));
            }

        } catch (Exception e) {
            throw new DAOException("Invalid parameter for SimpleDSDAOFactory.");
        }

        if (getParameter("pooling", null) != null) {
            if (!getParameter("pooling").equalsIgnoreCase("true")
                    && !getParameter("pooling").equalsIgnoreCase("false")) {
                throw new DAOException("Invalid parameter for SimpleDSDAOFactory.");
            }
            isPooling = StringUtilities.parseBoolean(getParameter("pooling", "true"));
        }

        DataSource datasource;

        if (isPooling) {
            DriverAdapterCPDS cpds = new DriverAdapterCPDS();
            cpds.setDriver(driver);
            cpds.setUrl(url);
            cpds.setUser(username);
            cpds.setPassword(password);

            SharedPoolDataSource sds = new SharedPoolDataSource();
            sds.setConnectionPoolDataSource(cpds);
            sds.setMaxIdle(maxIdle);
            sds.setMaxActive(maxActive);
            sds.setMaxWait(maxWait);

            sds.setTestOnBorrow(testOnBorrow);
            sds.setTestOnReturn(testOnReturn);
            sds.setTestWhileIdle(testWhileIdle);
            sds.setValidationQuery(validationQuery);

            datasource = sds;
        } else {
            datasource = new SimpleDataSource(driver, url, username, password);
        }

        setDataSource(datasource);
    } catch (Exception e) {
        throw new DAOException("Cannot initialize SimpleDSDAOFactory!", e);
    }
}

From source file:com.smartmarmot.orabbix.Configurator.java

private DBConn getConnection(String dbName) throws Exception {
    try {/* www  . jav a  2  s  . co m*/
        verifyConfig();

        SmartLogger.logThis(Level.DEBUG, "getConnection for database " + dbName);
        String url = "";
        try {
            url = new String(_props.getProperty(dbName + "." + Constants.CONN_URL));
        } catch (Exception ex) {
            SmartLogger.logThis(Level.ERROR, "Error on Configurator getConnection while getting " + dbName + "."
                    + Constants.CONN_URL + " " + ex.getMessage());
        }

        String uname = "";
        try {
            uname = new String(_props.getProperty(dbName + "." + Constants.CONN_USERNAME));
        } catch (Exception ex) {
            try {
                SmartLogger.logThis(Level.DEBUG, "Error on Configurator getConnection while getting " + dbName
                        + "." + Constants.CONN_USERNAME + " " + ex.getMessage());

                uname = new String(_props.getProperty(Constants.CONN_DEFAULT_USERNAME));
            } catch (Exception ex1) {
                SmartLogger.logThis(Level.ERROR, "Error on Configurator getConnection while getting "
                        + Constants.CONN_DEFAULT_USERNAME + " " + ex1.getMessage());
            }
        }
        String password = "";
        try {
            password = new String(_props.getProperty(dbName + "." + Constants.CONN_PASSWORD));
        } catch (Exception ex) {
            try {
                SmartLogger.logThis(Level.DEBUG, "Error on Configurator getConnection while getting " + dbName
                        + "." + Constants.CONN_PASSWORD + " " + ex.getMessage());
                password = new String(_props.getProperty(Constants.CONN_DEFAULT_PASSWORD));
            } catch (Exception ex1) {
                SmartLogger.logThis(Level.ERROR, "Error on Configurator getConnection while getting " + dbName
                        + "." + Constants.CONN_PASSWORD + " " + ex.getMessage());
            }
        }
        DriverAdapterCPDS cpds = new DriverAdapterCPDS();
        cpds.setDriver(Constants.ORACLE_DRIVER);
        cpds.setUrl(url.toString());
        cpds.setUser(uname.toString());
        cpds.setPassword(password.toString());
        SharedPoolDataSource tds = new SharedPoolDataSource();
        tds.setConnectionPoolDataSource(cpds);
        // tds.setMaxActive(5);
        Integer maxActive = new Integer(5);
        try {
            maxActive = new Integer(_props.getProperty(dbName + "." + Constants.CONN_MAX_ACTIVE));
        } catch (Exception ex) {
            SmartLogger.logThis(Level.DEBUG,
                    "Note: " + dbName + "." + Constants.CONN_MAX_ACTIVE + " " + ex.getMessage());
            try {
                maxActive = new Integer(
                        _props.getProperty(Constants.DATABASES_LIST + "." + Constants.CONN_MAX_ACTIVE));
            } catch (Exception e) {
                SmartLogger.logThis(Level.WARN, "Note: " + Constants.DATABASES_LIST + "."
                        + Constants.CONN_MAX_ACTIVE + " " + e.getMessage());
                SmartLogger.logThis(Level.WARN, "Warning I will use default value " + maxActive);
            }
        }
        tds.setMaxActive(maxActive.intValue());
        Integer maxWait = new Integer(100);
        try {
            maxWait = new Integer(_props.getProperty(dbName + "." + Constants.CONN_MAX_WAIT));
        } catch (Exception ex) {
            SmartLogger.logThis(Level.DEBUG,
                    "Note: " + dbName + "." + Constants.CONN_MAX_WAIT + " " + ex.getMessage());
            try {
                maxWait = new Integer(
                        _props.getProperty(Constants.DATABASES_LIST + "." + Constants.CONN_MAX_WAIT));
            } catch (Exception e) {
                SmartLogger.logThis(Level.WARN, "Note: " + Constants.DATABASES_LIST + "."
                        + Constants.CONN_MAX_WAIT + " " + e.getMessage());
                SmartLogger.logThis(Level.WARN, "Warning I will use default value " + maxWait);
            }
        }
        tds.setMaxWait(maxWait.intValue());
        Integer maxIdle = new Integer(1);
        try {
            maxIdle = new Integer(_props.getProperty(dbName + "." + Constants.CONN_MAX_IDLE));
        } catch (Exception ex) {
            SmartLogger.logThis(Level.DEBUG,
                    "Note: " + dbName + "." + Constants.CONN_MAX_IDLE + " " + ex.getMessage());
            try {
                maxIdle = new Integer(
                        _props.getProperty(Constants.DATABASES_LIST + "." + Constants.CONN_MAX_IDLE));
            } catch (Exception e) {
                SmartLogger.logThis(Level.WARN, "Note: " + Constants.DATABASES_LIST + "."
                        + Constants.CONN_MAX_IDLE + " " + e.getMessage());
                SmartLogger.logThis(Level.WARN, "Warning I will use default value " + maxIdle);
            }
        }
        tds.setMaxIdle(maxIdle.intValue());

        SmartLogger.logThis(Level.INFO, "DB Pool created: " + tds);
        SmartLogger.logThis(Level.INFO, "URL=" + url.toString());
        SmartLogger.logThis(Level.INFO, "maxPoolSize=" + tds.getMaxActive());
        SmartLogger.logThis(Level.INFO, "maxIdleSize=" + tds.getMaxIdle());
        SmartLogger.logThis(Level.INFO, "maxIdleTime=" + tds.getMinEvictableIdleTimeMillis() + "ms");
        SmartLogger.logThis(Level.INFO, "poolTimeout=" + tds.getMaxWait());
        SmartLogger.logThis(Level.INFO,
                "timeBetweenEvictionRunsMillis=" + tds.getTimeBetweenEvictionRunsMillis());
        SmartLogger.logThis(Level.INFO, "numTestsPerEvictionRun=" + tds.getNumTestsPerEvictionRun());

        tds.setValidationQuery(Constants.ORACLE_VALIDATION_QUERY);
        Connection con = null;
        con = tds.getConnection();
        PreparedStatement p_stmt = null;
        p_stmt = con.prepareStatement(Constants.ORACLE_WHOAMI_QUERY);
        ResultSet rs = null;
        rs = p_stmt.executeQuery();
        String tempStr = new String("");
        ResultSetMetaData rsmd = rs.getMetaData();
        int numColumns = rsmd.getColumnCount();
        while (rs.next()) {
            for (int r = 1; r < numColumns + 1; r++) {
                tempStr = tempStr + rs.getObject(r).toString().trim();
            }
        }
        SmartLogger.logThis(Level.INFO, "Connected as " + tempStr);

        con.close();
        con = null;
        con = tds.getConnection();
        p_stmt = con.prepareStatement(Constants.ORACLE_DBNAME_QUERY);
        rs = p_stmt.executeQuery();
        rsmd = rs.getMetaData();
        numColumns = rsmd.getColumnCount();
        tempStr = "";
        while (rs.next()) {
            for (int r = 1; r < numColumns + 1; r++) {
                tempStr = tempStr + rs.getObject(r).toString().trim();
            }
        }
        SmartLogger.logThis(Level.INFO, "--------- on Database -> " + tempStr);
        con.close();
        con = null;
        DBConn mydbconn = new DBConn(tds, dbName.toString());
        return mydbconn;

    } catch (Exception ex) {
        SmartLogger.logThis(Level.ERROR,
                "Error on Configurator for database " + dbName + " -->" + ex.getMessage());
        return null;
    }
}

From source file:net.sourceforge.myvd.inserts.jdbc.JdbcInsert.java

public void configure(String name, Properties props, NameSpace nameSpace) throws LDAPException {

    this.name = name;

    driver = props.getProperty("driver");
    logger.info("Driver : " + driver);
    url = props.getProperty("url");
    logger.info("URL : " + url);
    user = props.getProperty("user");
    logger.info("User : " + user);
    pwd = props.getProperty("password");
    logger.info("Password : **********");

    this.valQuery = props.getProperty("validationQuery");
    logger.info("Validation Query : '" + this.valQuery + "'");

    this.maxCons = Integer.parseInt(props.getProperty("maxCons", "5"));
    logger.info("Max Cons : " + this.maxCons);
    this.maxIdleCons = Integer.parseInt(props.getProperty("maxIdleCons", "5"));
    logger.info("maxIdleCons : " + this.maxIdleCons);

    DriverAdapterCPDS pool = new DriverAdapterCPDS();

    try {/*www  .  j a  v  a2s .  com*/
        pool.setDriver(driver);
    } catch (ClassNotFoundException e) {
        throw new LDAPException("Could not load JDBC Driver", LDAPException.OPERATIONS_ERROR, driver, e);
    }
    pool.setUrl(url);
    pool.setUser(user);
    pool.setPassword(pwd);
    pool.setMaxActive(maxCons);
    pool.setMaxIdle(maxIdleCons);

    SharedPoolDataSource tds = new SharedPoolDataSource();
    tds.setConnectionPoolDataSource(pool);
    tds.setMaxActive(maxCons);
    tds.setMaxWait(50);
    tds.setTestOnBorrow(true);

    if (this.valQuery != null) {
        tds.setValidationQuery(this.valQuery);
    }
    this.ds = tds;

    base = nameSpace.getBase().toString();

    rdn = props.getProperty("rdn");
    logger.info("RDN : " + rdn);

    String mapping = props.getProperty("mapping");
    logger.info("Mapping : " + mapping);
    StringTokenizer toker = new StringTokenizer(mapping, ",");

    this.ldap2db = new HashMap<String, String>();
    this.db2ldap = new HashMap<String, String>();

    while (toker.hasMoreTokens()) {
        String token = toker.nextToken();
        String ldap = token.substring(0, token.indexOf('='));
        String db = token.substring(token.indexOf('=') + 1);

        ldap2db.put(ldap.toLowerCase(), db.toLowerCase());
        db2ldap.put(db.toLowerCase(), ldap.toLowerCase());

    }

    this.objectClass = props.getProperty("objectClass");
    logger.info("objectClass : " + objectClass);
    this.rdn = props.getProperty("rdn");
    this.dbRdn = ldap2db.get(rdn);

    this.useSimple = props.getProperty("useSimple", "false").equalsIgnoreCase("true");
    logger.info("Use Simple : " + useSimple);
    this.SQL = props.getProperty("sql");
    logger.info("SQL : " + this.SQL);
    int whereEnd;

    String fields = this.SQL.substring(this.SQL.toLowerCase().indexOf("select") + "select".length() + 1,
            this.SQL.toLowerCase().indexOf("from"));
    logger.info("fields : " + fields);
    int where = this.SQL.toLowerCase().indexOf("where");
    String table = "";
    if (where == -1) {
        table = this.SQL.substring(this.SQL.toLowerCase().indexOf("from") + "from".length() + 1).trim();
    } else {
        table = this.SQL.substring(this.SQL.toLowerCase().indexOf("from") + "from".length() + 1, where).trim();
    }

    logger.info("table - " + table);

    try {
        Class.forName(this.driver).newInstance();
    } catch (Exception e) {

    }

    /*
    try {
       Connection con = DriverManager.getConnection(this.url,this.user,this.pwd);
               
       toker = new StringTokenizer(fields,",",false);
       while (toker.hasMoreTokens()) {
    String field = toker.nextToken();
    ResultSet rs = con.getMetaData().getColumns(null, null, table, field);
    rs.next();
    String type = rs.getString("TYPE_NAME");
    logger.info(field + " - " + type);
       }
               
       PreparedStatement ps = null;
       ps
               
       con.close();
    } catch (SQLException e) {
       logger.error("Error loading db schema",e);
    }
            
    */

    if (this.useSimple) {
        this.searchSQL = this.SQL.substring(this.SQL.toLowerCase().indexOf(" from "));

        int whereBegin = this.searchSQL.toLowerCase().indexOf(" where ");

        whereEnd = this.searchSQL.toLowerCase().indexOf(" order ");
        this.hasPostWhere = true;

        if (whereEnd == -1) {
            whereEnd = this.searchSQL.toLowerCase().indexOf(" group ");
        }

        if (whereEnd == -1) {
            this.hasPostWhere = false;
            whereEnd = this.searchSQL.length();
        }

        if (this.hasPostWhere) {
            this.postWhere = this.searchSQL.substring(whereEnd);
        }

        if (whereBegin != -1) {
            this.hasWhere = true;

            this.whereClause = "(" + this.searchSQL.substring(whereBegin + " where ".length(), whereEnd) + ") ";

            this.searchSQL = this.searchSQL.substring(0, whereBegin);
        } else {
            if (this.hasPostWhere) {
                this.searchSQL = this.searchSQL.substring(0, whereEnd);
            }
            this.hasWhere = false;
        }

    } else {
        this.searchSQL = "SELECT " + ldap2db.get(this.rdn.toLowerCase()) + " "
                + SQL.substring(SQL.indexOf(" FROM "));
    }

    this.baseDN = new DN(base);

    this.addBaseToFilter = Boolean.parseBoolean(props.getProperty("addBaseToFilter", "true"));
    logger.info("Add Base To Filter : " + this.addBaseToFilter);

    this.ns = nameSpace;

}