List of usage examples for org.apache.commons.dbcp2 BasicDataSource setDefaultTransactionIsolation
public void setDefaultTransactionIsolation(int defaultTransactionIsolation)
Sets the default transaction isolation state for returned connections.
Note: this method currently has no effect once the pool has been initialized.
From source file:com.github.akiraly.db4j.pool.DbcpUtils.java
public static BasicDataSource newDefaultDS() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDefaultAutoCommit(false); dataSource.setDefaultQueryTimeout(1); dataSource.setValidationQueryTimeout(1); dataSource.setMaxWaitMillis(5000);// www. j av a2 s . co m dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); dataSource.setInitialSize(4); dataSource.setMinIdle(4); dataSource.setMaxIdle(8); dataSource.setMaxTotal(16); dataSource.setPoolPreparedStatements(true); dataSource.setMaxOpenPreparedStatements(128); return dataSource; }
From source file:com.zaxxer.hikari.benchmark.BenchBase.java
private void setupDBCP2basic() throws SQLException { BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName(dbDriver);//w ww .ja v a 2 s . c o m ds.setUsername("sa"); ds.setPassword(""); ds.setUrl(jdbcURL); ds.setMaxTotal(maxPoolSize); ds.setDefaultAutoCommit(false); ds.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); ds.getConnection().createStatement().execute("CREATE TABLE IF NOT EXISTS test (column varchar);"); DS = ds; }
From source file:no.kantega.publishing.common.util.database.dbConnectionFactory.java
public static void loadConfiguration() { try {//ww w . j a v a 2 s .c om setConfiguration(); verifyCompleteDatabaseConfiguration(); DriverManagerDataSource rawDataSource = new DriverManagerDataSource(); rawDataSource.setDriverClassName(dbDriver); rawDataSource.setUrl(dbUrl); if (!dbNTMLAuthentication) { rawDataSource.setUsername(dbUsername); rawDataSource.setPassword(dbPassword); } if (dbEnablePooling) { // Enable DBCP pooling BasicDataSource bds = new BasicDataSource(); bds.setMaxTotal(dbMaxConnections); bds.setMaxIdle(dbMaxIdleConnections); bds.setMinIdle(dbMinIdleConnections); if (dbMaxWait != -1) { bds.setMaxWaitMillis(1000 * dbMaxWait); } if (dbDefaultQueryTimeout != -1) { bds.setDefaultQueryTimeout(dbDefaultQueryTimeout); } bds.setDriverClassName(dbDriver); if (!dbNTMLAuthentication) { bds.setUsername(dbUsername); bds.setPassword(dbPassword); } bds.setUrl(dbUrl); if (dbUseTransactions) { bds.setDefaultTransactionIsolation(dbTransactionIsolationLevel); } if (dbCheckConnections) { // Gjr at connections frigjres ved lukking fra database/brannmur bds.setValidationQuery("SELECT max(ContentId) from content"); bds.setTimeBetweenEvictionRunsMillis(1000 * 60 * 2); bds.setMinEvictableIdleTimeMillis(1000 * 60 * 5); bds.setNumTestsPerEvictionRun(dbMaxConnections); if (dbRemoveAbandonedTimeout > 0) { bds.setRemoveAbandonedTimeout(dbRemoveAbandonedTimeout); bds.setLogAbandoned(true); } } ds = bds; } else { ds = rawDataSource; } // Use non-pooled datasource for table creation since validation query might fail ensureDatabaseExists(rawDataSource); if (shouldMigrateDatabase) { migrateDatabase(servletContext, rawDataSource); } if (dbUseTransactions) { log.info("Using transactions, database transaction isolation level set to " + dbTransactionIsolationLevel); } else { log.info("Not using transactions"); } if (debugConnections) { proxyDs = (DataSource) Proxy.newProxyInstance(DataSource.class.getClassLoader(), new Class[] { DataSource.class }, new DataSourceWrapper(ds)); } } catch (Exception e) { log.error("********* could not read aksess.conf **********", e); } }
From source file:org.apache.jmeter.protocol.jdbc.config.DataSourceElement.java
private BasicDataSource initPool(String maxPool) { BasicDataSource dataSource = new BasicDataSource(); if (log.isDebugEnabled()) { StringBuilder sb = new StringBuilder(40); sb.append("MaxPool: "); sb.append(maxPool);//from www. jav a2 s .c o m sb.append(" Timeout: "); sb.append(getTimeout()); sb.append(" TrimInt: "); sb.append(getTrimInterval()); sb.append(" Auto-Commit: "); sb.append(isAutocommit()); log.debug(sb.toString()); } int poolSize = Integer.parseInt(maxPool); dataSource.setMinIdle(0); dataSource.setInitialSize(poolSize); dataSource.setMaxIdle(poolSize); dataSource.setMaxTotal(poolSize); dataSource.setMaxWaitMillis(Long.parseLong(getTimeout())); dataSource.setDefaultAutoCommit(Boolean.valueOf(isAutocommit())); if (log.isDebugEnabled()) { StringBuilder sb = new StringBuilder(40); sb.append("KeepAlive: "); sb.append(isKeepAlive()); sb.append(" Age: "); sb.append(getConnectionAge()); sb.append(" CheckQuery: "); sb.append(getCheckQuery()); log.debug(sb.toString()); } dataSource.setTestOnBorrow(false); dataSource.setTestOnReturn(false); dataSource.setTestOnCreate(false); dataSource.setTestWhileIdle(false); if (isKeepAlive()) { dataSource.setTestWhileIdle(true); dataSource.setValidationQuery(getCheckQuery()); dataSource.setSoftMinEvictableIdleTimeMillis(Long.parseLong(getConnectionAge())); dataSource.setTimeBetweenEvictionRunsMillis(Integer.parseInt(getTrimInterval())); } int transactionIsolation = DataSourceElementBeanInfo.getTransactionIsolationMode(getTransactionIsolation()); if (transactionIsolation >= 0) { dataSource.setDefaultTransactionIsolation(transactionIsolation); } String _username = getUsername(); if (log.isDebugEnabled()) { StringBuilder sb = new StringBuilder(40); sb.append("Driver: "); sb.append(getDriver()); sb.append(" DbUrl: "); sb.append(getDbUrl()); sb.append(" User: "); sb.append(_username); log.debug(sb.toString()); } dataSource.setDriverClassName(getDriver()); dataSource.setUrl(getDbUrl()); if (_username.length() > 0) { dataSource.setUsername(_username); dataSource.setPassword(getPassword()); } // log is required to ensure errors are available //source.enableLogging(new LogKitLogger(log)); if (log.isDebugEnabled()) { log.debug("PoolConfiguration:" + this.dataSource); } return dataSource; }
From source file:org.everit.osgi.jdbc.commons.dbcp.internal.Util.java
public static void applyPropertiesOnBasicDataSource(final BasicDataSource basicDataSource, final Map<String, Object> componentProperties) { setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_ACCESS_TO_UNDERLYING_CONNECTION_ALLOWED, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_DEFAULT_AUTO_COMMIT, Boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_DEFAULT_CATALOG, String.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_DEFAULT_READ_ONLY, Boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_DEFAULT_QUERY_TIMEOUT, Integer.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_INITIAL_SIZE, int.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_LOG_ABANDONED, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_MAX_TOTAL, int.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_MAX_IDLE, int.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_MAX_OPEN_PREPARED_STATEMENTS, int.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_MAX_WAIT_MILLIS, long.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_MIN_EVICTABLE_IDLE_TIME_MILLIS, long.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_MIN_IDLE, int.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_NUM_TESTS_PER_EVICTION_RUN, int.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_POOL_PREPARED_STATEMENTS, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_REMOVE_ABANDONED_ON_BORROW, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_REMOVE_ABANDONED_ON_MAINTENANCE, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_REMOVE_ABANDONED_TIMEOUT, int.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_TEST_ON_BORROW, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_TEST_ON_RETURN, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_TEST_WHILE_IDLE, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_TIME_BETWEEN_EVICTION_RUNS_MILLIS, long.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_VALIDATION_QUERY, String.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_VALIDATION_QUERY_TIMEOUT, int.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_LIFO, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_CACHE_STATE, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_TEST_ON_CREATE, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS, long.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_MAX_CONN_LIFETIME_MILLIS, long.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_JMX_NAME, String.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_ENABLE_AUTO_COMMIT_ON_RETURN, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_ROLLBACK_ON_RETURN, boolean.class); setPropertyIfNotNull(basicDataSource, componentProperties, DSFConstants.PROP_ABANDONED_USAGE_TRACKING, boolean.class); Object connectionInitSqlsObject = componentProperties.get(DSFConstants.PROP_CONNECTION_INIT_SQLS); if (connectionInitSqlsObject != null) { if (!(connectionInitSqlsObject instanceof Collection)) { throw new RuntimeException("Expected type of " + DSFConstants.PROP_CONNECTION_INIT_SQLS + "' is Collection but " + connectionInitSqlsObject.getClass() + " provided"); }// ww w. jav a 2 s .co m @SuppressWarnings("unchecked") Collection<String> connectionInitSqls = (Collection<String>) connectionInitSqlsObject; basicDataSource.setConnectionInitSqls(connectionInitSqls); } Object transactionIsolationObject = componentProperties .get(DSFConstants.PROP_DEFAULT_TRANSACTION_ISOLATION); if (transactionIsolationObject != null) { if (DSFConstants.VALUE_READ_COMMITED.equals(transactionIsolationObject)) { basicDataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); } else if (DSFConstants.VALUE_READ_UNCOMMITTED.equals(transactionIsolationObject)) { basicDataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); } else if (DSFConstants.VALUE_REPEATABLE_READ.equals(transactionIsolationObject)) { basicDataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ); } else if (DSFConstants.VALUE_SERIALIZABLE.equals(transactionIsolationObject)) { basicDataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); } else if (DSFConstants.VALUE_TRANSACTION_NONE.equals(transactionIsolationObject)) { basicDataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_NONE); } else { throw new RuntimeException("Unknown value '" + transactionIsolationObject + "' for the property key '" + DSFConstants.PROP_DEFAULT_TRANSACTION_ISOLATION + " during datasource configuration."); } } }
From source file:org.everit.persistence.jdbc.commons.dbcp.ecm.internal.Util.java
private static void applyTransactionIsolationPropertyOnBasicDataSource(final BasicDataSource basicDataSource, final Object transactionIsolationObject) { if (transactionIsolationObject != null) { if (DSFConstants.VALUE_READ_COMMITED.equals(transactionIsolationObject)) { basicDataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); } else if (DSFConstants.VALUE_READ_UNCOMMITTED.equals(transactionIsolationObject)) { basicDataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); } else if (DSFConstants.VALUE_REPEATABLE_READ.equals(transactionIsolationObject)) { basicDataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ); } else if (DSFConstants.VALUE_SERIALIZABLE.equals(transactionIsolationObject)) { basicDataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); } else if (DSFConstants.VALUE_TRANSACTION_NONE.equals(transactionIsolationObject)) { basicDataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_NONE); } else {//ww w .j ava2 s . c o m throw new RuntimeException("Unknown value '" + transactionIsolationObject + "' for the property key '" + DSFConstants.ATTR_DEFAULT_TRANSACTION_ISOLATION + " during datasource configuration."); } } }
From source file:org.lib4j.dbcp.DataSources.java
/** * Create a <code>BasicDataSource</code> given a dbcp JAXB binding. * * @param dbcp JAXB dbcp binding.//from www .j a v a 2 s . c o m * @param driverClassLoader Class loader to be used to load the JDBC driver. * @return the <code>BasicDataSource</code> instance. * @throws SQLException If a database access error occurs. */ public static BasicDataSource createDataSource(final Dbcp dbcp, final ClassLoader driverClassLoader) throws SQLException { final BasicDataSource dataSource = new BasicDataSource(); final Dbcp.Jdbc jdbc = dbcp.getJdbc(); dataSource.setDriverClassName(jdbc.getDriverClassName()); dataSource.setDriverClassLoader(driverClassLoader); dataSource.setUrl(jdbc.getUrl()); dataSource.setUsername(jdbc.getUsername()); dataSource.setPassword(jdbc.getPassword()); final Dbcp.Default _default = dbcp.getDefault(); if (_default != null && _default.getCatalog() != null) dataSource.setDefaultCatalog(_default.getCatalog()); dataSource.setDefaultAutoCommit( _default == null || _default.getAutoCommit() == null || _default.getAutoCommit()); dataSource.setDefaultReadOnly(_default != null && _default.getReadOnly() != null && _default.getReadOnly()); if (_default != null && _default.getQueryTimeout() != null) dataSource.setDefaultQueryTimeout(_default.getQueryTimeout()); if (_default != null && _default.getTransactionIsolation() != null) { if ("NONE".equals(_default.getTransactionIsolation())) dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_NONE); else if ("READ_COMMITTED".equals(_default.getTransactionIsolation())) dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); else if ("READ_UNCOMMITTED".equals(_default.getTransactionIsolation())) dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); else if ("REPEATABLE_READ".equals(_default.getTransactionIsolation())) dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ); else if ("SERIALIZABLE".equals(_default.getTransactionIsolation())) dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); else throw new UnsupportedOperationException( "Unsupported transaction isolation: " + _default.getTransactionIsolation()); } final Dbcp.Connection connection = dbcp.getConnection(); if (connection != null) { if (connection.getProperties() != null) for (final Dbcp.Connection.Properties.Property property : connection.getProperties().getProperty()) if (property.getName() != null && property.getValue() != null) dataSource.addConnectionProperty(property.getName(), property.getValue()); if (connection.getInitSqls() != null) { final List<String> initSqls = new ArrayList<>(); for (final String initSql : connection.getInitSqls().getInitSql()) initSqls.add(initSql); dataSource.setConnectionInitSqls(initSqls); } } final Dbcp.Size size = dbcp.getSize(); dataSource.setInitialSize(size == null || size.getInitialSize() == null ? 0 : size.getInitialSize()); dataSource.setMaxTotal(size == null || size.getMaxTotal() == null ? 8 : INDEFINITE.equals(size.getMaxTotal()) ? -1 : Integer.parseInt(size.getMaxTotal())); dataSource.setMaxIdle(size == null || size.getMaxIdle() == null ? 8 : INDEFINITE.equals(size.getMaxIdle()) ? -1 : Integer.parseInt(size.getMaxIdle())); dataSource.setMinIdle(size == null || size.getMinIdle() == null ? 9 : size.getMinIdle()); if (size == null || size.getMaxOpenPreparedStatements() == null || INDEFINITE.equals(size.getMaxOpenPreparedStatements())) { dataSource.setPoolPreparedStatements(false); } else { dataSource.setPoolPreparedStatements(true); dataSource.setMaxOpenPreparedStatements(Integer.parseInt(size.getMaxOpenPreparedStatements())); } final Dbcp.Pool pool = dbcp.getPool(); if (pool == null || pool.getQueue() == null || "lifo".equals(pool.getQueue())) dataSource.setLifo(true); else if ("fifo".equals(pool.getQueue())) dataSource.setLifo(false); else throw new UnsupportedOperationException("Unsupported queue spec: " + pool.getQueue()); dataSource.setCacheState(pool != null && pool.getCacheState() != null && pool.getCacheState()); dataSource.setMaxWaitMillis( pool == null || pool.getMaxWait() != null || INDEFINITE.equals(pool.getMaxWait()) ? -1 : Long.parseLong(pool.getMaxWait())); dataSource.setMaxConnLifetimeMillis(pool == null || pool.getMaxConnectionLifetime() == null || INDEFINITE.equals(pool.getMaxConnectionLifetime()) ? 0 : Long.parseLong(pool.getMaxConnectionLifetime())); dataSource.setEnableAutoCommitOnReturn(_default == null || pool.getEnableAutoCommitOnReturn() == null || pool.getEnableAutoCommitOnReturn()); dataSource.setRollbackOnReturn( pool == null || pool.getRollbackOnReturn() == null || pool.getRollbackOnReturn()); if (pool != null && pool.getRemoveAbandoned() != null) { if ("borrow".equals(pool.getRemoveAbandoned().getOn())) dataSource.setRemoveAbandonedOnBorrow(true); else if ("maintenance".equals(pool.getRemoveAbandoned().getOn())) dataSource.setRemoveAbandonedOnMaintenance(true); else throw new UnsupportedOperationException( "Unsupported remove abandoned spec: " + pool.getRemoveAbandoned().getOn()); dataSource.setRemoveAbandonedTimeout(pool.getRemoveAbandoned().getTimeout()); } dataSource.setAbandonedUsageTracking( pool != null && pool.getAbandonedUsageTracking() != null && pool.getAbandonedUsageTracking()); dataSource.setAccessToUnderlyingConnectionAllowed( pool != null && pool.getAllowAccessToUnderlyingConnection() != null && pool.getAllowAccessToUnderlyingConnection()); final Dbcp.Pool.Eviction evictor = pool != null && pool.getEviction() != null ? pool.getEviction() : null; if (evictor != null) { dataSource.setTimeBetweenEvictionRunsMillis(evictor.getTimeBetweenRuns()); dataSource.setNumTestsPerEvictionRun(evictor.getNumTestsPerRun()); dataSource.setMinEvictableIdleTimeMillis( evictor.getMinIdleTime() == null ? 1800000 : evictor.getMinIdleTime()); dataSource.setSoftMinEvictableIdleTimeMillis( evictor.getSoftMinIdleTime() == null || INDEFINITE.equals(evictor.getSoftMinIdleTime()) ? -1 : Long.parseLong(evictor.getSoftMinIdleTime())); if (evictor.getPolicyClassName() != null) dataSource.setEvictionPolicyClassName(evictor.getPolicyClassName()); } final Dbcp.Validation validation = dbcp.getValidation(); if (validation != null && validation.getQuery() != null) dataSource.setValidationQuery(validation.getQuery()); dataSource.setTestOnBorrow( validation == null || validation.getTestOnBorrow() == null || validation.getTestOnBorrow()); dataSource.setTestOnReturn( validation != null && validation.getTestOnReturn() != null && validation.getTestOnReturn()); dataSource.setTestWhileIdle( validation != null && validation.getTestWhileIdle() != null && validation.getTestWhileIdle()); if (validation != null && validation.getFastFail() != null) { dataSource.setFastFailValidation(true); if (validation.getFastFail().getDisconnectionSqlCodes() != null) dataSource.setDisconnectionSqlCodes( Arrays.asList(validation.getFastFail().getDisconnectionSqlCodes().split(" "))); } final Dbcp.Logging logging = dbcp.getLogging(); if (logging != null) { final Logger logger = LoggerFactory.getLogger(DataSources.class); final LoggerPrintWriter loggerPrintWriter = new LoggerPrintWriter(logger, Level.valueOf(logging.getLevel().toString())); dataSource.setLogWriter(loggerPrintWriter); dataSource.setLogExpiredConnections(logging.isLogExpiredConnections()); if (logging.isLogAbandoned()) { dataSource.setAbandonedLogWriter(loggerPrintWriter); dataSource.setLogAbandoned(true); } } return dataSource; }
From source file:org.libx4j.dbcp.DataSources.java
public static BasicDataSource createDataSource(final $dbcp_dbcp dbcp) throws SQLException { if (dbcp.isNull()) throw new BindingRuntimeException("/dbcp:jdbc is missing"); final dbcp_dbcp._jdbc jdbc = dbcp._jdbc(0); final BasicDataSource dataSource = new BasicDataSource() { @Override//from ww w.j av a2 s .c om public Connection getConnection() throws SQLException { // try { return super.getConnection(); // } // catch (final SQLException e) { // // TODO: Finish this! // if ("Cannot get a connection, pool error Timeout waiting for idle object".equals(e.getMessage())) // Throwables.set(e, "XX" + e.getMessage()); // // throw e; // } } }; if (jdbc._driverClassName(0).isNull()) throw new BindingRuntimeException("/dbcp:jdbc/dbcp:driverClassName is missing"); dataSource.setDriverClassName(jdbc._driverClassName(0).text()); // if (jdbc._loginTimeout() != null && jdbc._loginTimeout().size() != 0 && jdbc._loginTimeout(0).text() != null) { // FIXME: This causes a ClassNotFoundException: com.sybase.jdbc3.jdbc.SybDriver // try { // dataSource.setLoginTimeout(jdbc._loginTimeout(0).text()); // } // catch(final SQLException e) { // throw new SQLException(e); // } // } if (jdbc._url(0).isNull()) throw new BindingRuntimeException("/dbcp:jdbc/dbcp:url is missing"); dataSource.setUrl(jdbc._url(0).text()); if (jdbc._username(0).isNull()) throw new BindingRuntimeException("/dbcp:jdbc/dbcp:username is missing"); dataSource.setUsername(jdbc._username(0).text()); if (jdbc._password(0).isNull()) throw new BindingRuntimeException("/dbcp:jdbc/dbcp:password is missing"); dataSource.setPassword(jdbc._password(0).text()); final dbcp_dbcp._default defaults = dbcp._default(0); if (!defaults._connectionProperties(0).isNull()) for (final dbcp_dbcp._default._connectionProperties._property property : defaults ._connectionProperties(0)._property()) if (property._name$() != null && property._name$().text() != null && property._value$() != null && property._value$().text() != null) dataSource.addConnectionProperty(property._name$().text(), property._value$().text()); if (!defaults._autoCommit(0).isNull()) dataSource.setDefaultAutoCommit(defaults._autoCommit(0).text()); if (!defaults._readOnly(0).isNull()) dataSource.setDefaultReadOnly(defaults._readOnly(0).text()); if (!defaults._transactionIsolation(0).isNull()) { if (dbcp_dbcp._default._transactionIsolation.NONE.text() .equals(defaults._transactionIsolation(0).text())) dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_NONE); else if (dbcp_dbcp._default._transactionIsolation.READ_5FCOMMITTED.text() .equals(defaults._transactionIsolation(0).text())) dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); else if (dbcp_dbcp._default._transactionIsolation.READ_5FUNCOMMITTED.text() .equals(defaults._transactionIsolation(0).text())) dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); else if (dbcp_dbcp._default._transactionIsolation.REPEATABLE_5FREAD.text() .equals(defaults._transactionIsolation(0).text())) dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ); else if (dbcp_dbcp._default._transactionIsolation.SERIALIZABLE.text() .equals(defaults._transactionIsolation(0).text())) dataSource.setDefaultTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); else throw new UnsupportedOperationException( "Unsupported transaction isolation: " + defaults._transactionIsolation(0).text()); } final dbcp_dbcp._size size = dbcp._size(0); if (!size.isNull()) { if (!size._initialSize(0).isNull()) dataSource.setInitialSize(size._initialSize(0).text().intValue()); if (!size._maxActive(0).isNull()) dataSource.setMaxTotal(size._maxActive(0).text().intValue()); if (!size._maxIdle(0).isNull()) dataSource.setMaxIdle(size._maxIdle(0).text().intValue()); if (!size._minIdle(0).isNull()) dataSource.setMinIdle(size._minIdle(0).text().intValue()); if (!size._maxWait(0).isNull()) dataSource.setMaxWaitMillis(size._maxWait(0).text().intValue()); } final dbcp_dbcp._management management = dbcp._management(0); if (!management.isNull()) { if (!management._validationQuery(0).isNull()) dataSource.setValidationQuery(management._validationQuery(0).text()); if (!management._testOnBorrow(0).isNull()) dataSource.setTestOnBorrow(management._testOnBorrow(0).text()); if (!management._testOnReturn(0).isNull()) dataSource.setTestOnReturn(management._testOnReturn(0).text()); if (!management._testWhileIdle(0).isNull()) dataSource.setTestWhileIdle(management._testWhileIdle(0).text()); if (!management._timeBetweenEvictionRuns(0).isNull()) dataSource .setTimeBetweenEvictionRunsMillis(management._timeBetweenEvictionRuns(0).text().intValue()); if (!management._numTestsPerEvictionRun(0).isNull()) dataSource.setNumTestsPerEvictionRun(management._numTestsPerEvictionRun(0).text().intValue()); if (!management._minEvictableIdleTime(0).isNull()) dataSource.setMinEvictableIdleTimeMillis(management._minEvictableIdleTime(0).text().intValue()); } final dbcp_dbcp._preparedStatements preparedStatements = dbcp._preparedStatements(0); if (!preparedStatements.isNull()) { if (!preparedStatements._poolPreparedStatements(0).isNull()) dataSource.setPoolPreparedStatements(preparedStatements._poolPreparedStatements(0).text()); if (!preparedStatements._maxOpenPreparedStatements(0).isNull()) dataSource.setMaxOpenPreparedStatements( preparedStatements._maxOpenPreparedStatements(0).text().intValue()); } final dbcp_dbcp._removal removal = dbcp._removal(0); if (!removal.isNull()) { if (!removal._removeAbandoned(0).isNull()) dataSource.setRemoveAbandonedOnBorrow(removal._removeAbandoned(0).text()); if (!removal._removeAbandonedTimeout(0).isNull()) dataSource.setRemoveAbandonedTimeout(removal._removeAbandonedTimeout(0).text().intValue()); if (!removal._logAbandoned(0).isNull()) dataSource.setLogAbandoned(removal._logAbandoned(0).text()); } final dbcp_dbcp._logging logging = dbcp._logging(0); if (!logging.isNull()) { final Logger logger = LoggerFactory.getLogger(DataSources.class); final LoggerPrintWriter loggerPrintWriter = new LoggerPrintWriter(logger, Level.valueOf(logging._level(0).text())); dataSource.setLogWriter(loggerPrintWriter); dataSource.setLogExpiredConnections( !logging._logExpiredConnections(0).isNull() && logging._logExpiredConnections(0).text()); if (!logging._logAbandoned(0).isNull() && logging._logAbandoned(0).text()) { dataSource.setAbandonedLogWriter(loggerPrintWriter); dataSource.setLogAbandoned(true); } } return dataSource; }
From source file:org.ofbiz.core.entity.transaction.DBCPConnectionFactory.java
private static BasicDataSource createDataSource(JdbcDatasourceInfo jdbcDatasource) throws Exception { final Properties dbcpProperties = loadDbcpProperties(); final BasicDataSource dataSource = BasicDataSourceFactory.createDataSource(dbcpProperties); dataSource.setDriverClassLoader(Thread.currentThread().getContextClassLoader()); dataSource.setDriverClassName(jdbcDatasource.getDriverClassName()); dataSource.setUrl(jdbcDatasource.getUri()); dataSource.setUsername(jdbcDatasource.getUsername()); dataSource.setPassword(jdbcDatasource.getPassword()); if (isNotEmpty(jdbcDatasource.getIsolationLevel())) { dataSource.setDefaultTransactionIsolation( TransactionIsolations.fromString(jdbcDatasource.getIsolationLevel())); }// w w w . ja v a 2 s .c o m if (dbcpProperties.containsKey(PROP_JMX) && Boolean.valueOf(dbcpProperties.getProperty(PROP_JMX))) { dataSource.setJmxName( ObjectName.getInstance(dbcpProperties.getProperty(PROP_MBEANNAME)).getCanonicalName()); } return dataSource; }
From source file:tilda.db.ConnectionPool.java
public static void init(String Id, String Driver, String DB, String User, String Pswd, int InitialSize, int MaxSize) { if (_DataSourcesById.get(Id) == null) synchronized (_DataSourcesById) { if (_DataSourcesById.get(Id) == null) // Definitely no connection pool by that name {// ww w . j a v a 2s. co m String Sig = DB + "``" + User; BasicDataSource BDS = _DataSourcesBySig.get(Sig); // Let's see if that DB definition is already there if (BDS == null) { LOG.info("Initializing a fresh pool for Id=" + Id + ", DB=" + DB + ", User=" + User + ", and Pswd=Shhhhhhh!"); BDS = new BasicDataSource(); BDS.setDriverClassName(Driver); BDS.setUrl(DB); if (TextUtil.isNullOrEmpty(Pswd) == false && TextUtil.isNullOrEmpty(User) == false) { BDS.setUsername(User); BDS.setPassword(Pswd); } BDS.setInitialSize(InitialSize); BDS.setMaxTotal(MaxSize); BDS.setDefaultAutoCommit(false); BDS.setDefaultTransactionIsolation(java.sql.Connection.TRANSACTION_READ_COMMITTED); BDS.setDefaultQueryTimeout(20000); _DataSourcesBySig.put(Sig, BDS); } else { LOG.info("Merging pool with ID " + Id + " into prexisting pool " + Sig); if (BDS.getInitialSize() < InitialSize) BDS.setInitialSize(InitialSize); if (BDS.getMaxTotal() < MaxSize) BDS.setMaxTotal(MaxSize); } _DataSourcesById.put(Id, BDS); } } }