List of usage examples for java.sql Connection TRANSACTION_READ_UNCOMMITTED
int TRANSACTION_READ_UNCOMMITTED
To view the source code for java.sql Connection TRANSACTION_READ_UNCOMMITTED.
Click Source Link
From source file:org.executequery.gui.browser.ConnectionPanel.java
private int isolationLevelFromSelection(int index) { int isolationLevel = -1; switch (index) { case 1://from w w w. j a v a 2 s . co m isolationLevel = Connection.TRANSACTION_NONE; break; case 2: isolationLevel = Connection.TRANSACTION_READ_UNCOMMITTED; break; case 3: isolationLevel = Connection.TRANSACTION_READ_COMMITTED; break; case 4: isolationLevel = Connection.TRANSACTION_REPEATABLE_READ; break; case 5: isolationLevel = Connection.TRANSACTION_SERIALIZABLE; break; } return isolationLevel; }
From source file:org.executequery.gui.browser.ConnectionPanel.java
/** * Sets the values for the tx level on the tx combo * based on the tx level in the connection object. *//*from www.j ava2s. co m*/ private void setTransactionIsolationLevel() { int index = 0; int isolationLevel = databaseConnection.getTransactionIsolation(); switch (isolationLevel) { case Connection.TRANSACTION_NONE: index = 1; break; case Connection.TRANSACTION_READ_UNCOMMITTED: index = 2; break; case Connection.TRANSACTION_READ_COMMITTED: index = 3; break; case Connection.TRANSACTION_REPEATABLE_READ: index = 4; break; case Connection.TRANSACTION_SERIALIZABLE: index = 5; break; } txCombo.setSelectedIndex(index); }
From source file:org.freebxml.omar.server.persistence.rdb.SQLPersistenceManagerImpl.java
private SQLPersistenceManagerImpl() { loadUsernamePassword();//from w ww . j ava 2s. co m constructDatabaseURL(); // define transaction isolation if ("TRANSACTION_READ_COMMITTED".equalsIgnoreCase( RegistryProperties.getInstance().getProperty("omar.persistence.rdb.transactionIsolation"))) { transactionIsolation = Connection.TRANSACTION_READ_COMMITTED; } else { transactionIsolation = Connection.TRANSACTION_READ_UNCOMMITTED; } useConnectionPool = Boolean.valueOf( RegistryProperties.getInstance().getProperty("omar.persistence.rdb.useConnectionPooling", "true")) .booleanValue(); skipReferenceCheckOnRemove = Boolean.valueOf(RegistryProperties.getInstance() .getProperty("omar.persistence.rdb.skipReferenceCheckOnRemove", "false")).booleanValue(); dumpStackOnQuery = Boolean.valueOf( RegistryProperties.getInstance().getProperty("omar.persistence.rdb.dumpStackOnQuery", "false")) .booleanValue(); boolean debugConnectionPool = Boolean .valueOf(RegistryProperties.getInstance().getProperty("omar.persistence.rdb.pool.debug", "false")) .booleanValue(); //Create JNDI context if (useConnectionPool) { if (!debugConnectionPool) { // Use Container's connection pooling String omarName = RegistryProperties.getInstance().getProperty("omar.name", "omar"); String envName = "java:comp/env"; String dataSourceName = "jdbc/" + omarName + "-registry"; Context ctx = null; try { ctx = new InitialContext(); if (null == ctx) { log.info(ServerResourceBundle.getInstance().getString("message.UnableToGetInitialContext")); } } catch (NamingException e) { log.info(ServerResourceBundle.getInstance().getString("message.UnableToGetInitialContext"), e); ctx = null; } /* HIEOS/BHT: DISABLED if (null != ctx) { try { ctx = (Context)ctx.lookup(envName); if (null == ctx) { log.info(ServerResourceBundle.getInstance(). getString("message.UnableToGetJNDIContextForDataSource", new Object[]{envName})); } } catch (NamingException e) { log.info(ServerResourceBundle.getInstance(). getString("message.UnableToGetJNDIContextForDataSource", new Object[]{envName}), e); ctx = null; } } */ if (null != ctx) { try { ds = (DataSource) ctx.lookup(dataSourceName); if (null == ds) { log.info(ServerResourceBundle.getInstance().getString( "message.UnableToGetJNDIContextForDataSource", new Object[] { envName + "/" + dataSourceName })); } } catch (NamingException e) { log.info(ServerResourceBundle.getInstance().getString( "message.UnableToGetJNDIContextForDataSource", new Object[] { envName + "/" + dataSourceName }), e); ds = null; } } if (null != ds) { // Create a test connection to make sure all is well with DataSource Connection connection = null; try { connection = ds.getConnection(); } catch (Exception e) { log.info(ServerResourceBundle.getInstance().getString( "message.UnableToCreateTestConnectionForDataSource", new Object[] { envName + "/" + dataSourceName }), e); ds = null; } finally { if (connection != null) { try { connection.close(); } catch (Exception e1) { //Do nothing. } } } } } if (ds == null) { // No DataSource available so create our own ConnectionPool loadDatabaseDriver(); createConnectionPool(); } } else { loadDatabaseDriver(); } }
From source file:org.geotools.data.spatialite.SpatiaLiteTestSetup.java
@Override protected void initializeDataSource(BasicDataSource ds, Properties db) { super.initializeDataSource(ds, db); try {//www . j a v a 2 s . co m SpatiaLiteDataStoreFactory.addConnectionProperties(ds); SpatiaLiteDataStoreFactory.initializeDataSource(ds); } catch (IOException e) { throw new RuntimeException(e); } ds.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); }
From source file:org.jxstar.dao.pool.PooledConnection.java
/** * ???JDBC// w w w . j a v a 2 s .c o m * Connection.TRANSACTION_NONE * ???? * Connection.TRANSACTION_READ_UNCOMMITTED * ????????? * Connection.TRANSACTION_READ_COMMITTED(?) * ????????? * Connection.TRANSACTION_REPEATABLE_READ * ????????? * Connection.TRANSACTION_SERIALIZABLE * ???????? * * @param sTranLevel * @return */ private int getTranLevelConstant(String sTranLevel) { if (sTranLevel == null || sTranLevel.length() == 0) { return Connection.TRANSACTION_READ_COMMITTED; } String sTmpLevel = sTranLevel.toUpperCase(); if (sTmpLevel.equals("TRANSACTION_NONE")) { return Connection.TRANSACTION_NONE; } else if (sTmpLevel.equals("TRANSACTION_READ_UNCOMMITTED")) { return Connection.TRANSACTION_READ_UNCOMMITTED; } else if (sTmpLevel.equals("TRANSACTION_READ_COMMITTED")) { return Connection.TRANSACTION_READ_COMMITTED; } else if (sTmpLevel.equals("TRANSACTION_REPEATABLE_READ")) { return Connection.TRANSACTION_REPEATABLE_READ; } else if (sTmpLevel.equals("TRANSACTION_SERIALIZABLE")) { return Connection.TRANSACTION_SERIALIZABLE; } return Connection.TRANSACTION_READ_COMMITTED; }
From source file:org.kawanfw.sql.jdbc.ConnectionHttp.java
/** * Attempts to change the transaction isolation level for this * <code>Connection</code> object to the one given. The constants defined in * the interface <code>Connection</code> are the possible transaction * isolation levels./*w w w . ja v a2 s. c o m*/ * <P> * <B>Note:</B> If this method is called during a transaction, the result is * implementation-defined. * * @param level * one of the following <code>Connection</code> constants: * <code>Connection.TRANSACTION_READ_UNCOMMITTED</code>, * <code>Connection.TRANSACTION_READ_COMMITTED</code>, * <code>Connection.TRANSACTION_REPEATABLE_READ</code>, or * <code>Connection.TRANSACTION_SERIALIZABLE</code>. (Note that * <code>Connection.TRANSACTION_NONE</code> cannot be used * because it specifies that transactions are not supported.) * @exception SQLException * if a database access error occurs, this method is called * on a closed connection or the given parameter is not one * of the <code>Connection</code> constants * @see DatabaseMetaData#supportsTransactionIsolationLevel * @see #getTransactionIsolation */ @Override public void setTransactionIsolation(int level) throws SQLException { testIfClosed(); if (level != Connection.TRANSACTION_READ_UNCOMMITTED && level != Connection.TRANSACTION_READ_COMMITTED && level != Connection.TRANSACTION_REPEATABLE_READ && level != Connection.TRANSACTION_SERIALIZABLE) { throw new SQLException("Illegal transaction isolation level: " + level); } if (!statelessMode) { JdbcHttpTransactionTransfer jdbcHttpTransactionTransfer = new JdbcHttpTransactionTransfer(this, authenticationToken); jdbcHttpTransactionTransfer.setTransactionIsolation(level); } this.transactionIsolation = level; }
From source file:org.kawanfw.test.api.client.DatabaseMetaDataTest.java
public void test(Connection connection) throws Exception { MessageDisplayer.initClassDisplay(this.getClass().getSimpleName()); DatabaseMetaData databaseMetaData = connection.getMetaData(); // Test that getMetaData() will return value from cache databaseMetaData = connection.getMetaData(); if (connection instanceof RemoteConnection) { MessageDisplayer.display("Java Version : " + System.getProperty("java.version")); MessageDisplayer.display("AceQL Version: " + ((RemoteConnection) connection).getVersion()); MessageDisplayer.display("AceQL Url : " + ((RemoteConnection) connection).getUrl()); MessageDisplayer.display(""); }/*from w w w . jav a 2 s . c o m*/ if (connection instanceof RemoteConnection) { MessageDisplayer.display("((RemoteConnection)connection).clone();"); Connection connection2 = ((RemoteConnection) connection).clone(); @SuppressWarnings("unused") DatabaseMetaData databaseMetaData2 = connection2.getMetaData(); connection2.close(); } MessageDisplayer.display("General info (no Assert done):"); MessageDisplayer.display("connection.getCatalog() : " + connection.getCatalog()); MessageDisplayer.display( "databaseMetaData.getDatabaseProductName() : " + databaseMetaData.getDatabaseProductName()); MessageDisplayer.display( "databaseMetaData.getDatabaseProductVersion(): " + databaseMetaData.getDatabaseProductVersion()); MessageDisplayer.display( "databaseMetaData.getDatabaseMajorVersion() : " + databaseMetaData.getDatabaseMajorVersion()); MessageDisplayer.display( "databaseMetaData.getDatabaseMinorVersion() : " + databaseMetaData.getDatabaseMinorVersion()); MessageDisplayer.display( "databaseMetaData.allProceduresAreCallable() : " + databaseMetaData.allProceduresAreCallable()); // SystemOutHandle.display(DatabaseMetaData.bestRowSession); MessageDisplayer.display(""); // SystemOutHandle.display(databaseMetaData.autoCommitFailureClosesAllResultSets()); MessageDisplayer.display("databaseMetaData.getCatalogTerm(): " + databaseMetaData.getCatalogTerm()); try { MessageDisplayer.display( "databaseMetaData.supportsStoredProcedures(): " + databaseMetaData.supportsStoredProcedures()); MessageDisplayer.display("databaseMetaData.supportsStoredFunctionsUsingCallSyntax(): " + databaseMetaData.supportsStoredFunctionsUsingCallSyntax()); } catch (Throwable e) { MessageDisplayer.display(e.toString()); } MessageDisplayer.display("connection.getAutoCommit(): " + connection.getAutoCommit()); MessageDisplayer.display("databaseMetaData.getDefaultTransactionIsolation() : " + databaseMetaData.getDefaultTransactionIsolation()); MessageDisplayer .display("databaseMetaData.supportsTransactionIsolationLevel(TRANSACTION_READ_UNCOMMITTED): " + databaseMetaData .supportsTransactionIsolationLevel(Connection.TRANSACTION_READ_UNCOMMITTED)); MessageDisplayer.display("databaseMetaData.supportsTransactionIsolationLevel(TRANSACTION_READ_COMMITTED): " + databaseMetaData.supportsTransactionIsolationLevel(Connection.TRANSACTION_READ_COMMITTED)); MessageDisplayer.display("databaseMetaData.supportsTransactionIsolationLevel(TRANSACTION_REPEATABLE_READ): " + databaseMetaData.supportsTransactionIsolationLevel(Connection.TRANSACTION_REPEATABLE_READ)); MessageDisplayer.display("databaseMetaData.supportsTransactionIsolationLevel(TRANSACTION_SERIALIZABLE): " + databaseMetaData.supportsTransactionIsolationLevel(Connection.TRANSACTION_SERIALIZABLE)); MessageDisplayer .display("databaseMetaData.supportsBatchUpdates() : " + databaseMetaData.supportsBatchUpdates()); MessageDisplayer .display("databaseMetaData.supportsSavepoints() : " + databaseMetaData.supportsSavepoints()); MessageDisplayer.display( "databaseMetaData.supportsGetGeneratedKeys(): " + databaseMetaData.supportsGetGeneratedKeys()); if (!new SqlUtil(connection).isTeradata() && !new SqlUtil(connection).isInformix()) { Assert.assertEquals(true, databaseMetaData.supportsTransactionIsolationLevel(Connection.TRANSACTION_READ_COMMITTED)); } Assert.assertEquals("databaseMetaData.supportsBatchUpdates()", true, databaseMetaData.supportsBatchUpdates()); if (!new SqlUtil(connection).isSQLAnywhere() && !new SqlUtil(connection).isAccess()) { Assert.assertEquals("databaseMetaData.supportsGetGeneratedKeys()", true, databaseMetaData.supportsGetGeneratedKeys()); } // Informix does not support savepoints SqlUtil sqlUtil = new SqlUtil(connection); if (!sqlUtil.isInformix() && !sqlUtil.isTeradata() && !new SqlUtil(connection).isAccess()) { Assert.assertEquals(true, databaseMetaData.supportsSavepoints()); } MessageDisplayer.display(""); String catalog = null; String schema = null; String table = "customer"; // Table name must be uppercase for Oracle & DB2, lowercase for MySQL // and PostgreSQL if (new SqlUtil(connection).isOracle() || new SqlUtil(connection).isHSQLDB() || new SqlUtil(connection).isDB2()) { table = table.toUpperCase(); } ResultSet rs = null; if (!new SqlUtil(connection).isAccess()) { rs = databaseMetaData.getPrimaryKeys(catalog, schema, table); printResultSet(rs); boolean rsNext = false; while (rs.next()) { rsNext = true; String keyColumnName = rs.getString("COLUMN_NAME"); MessageDisplayer.display("Primary Key is: " + keyColumnName + " for Table: " + table); Assert.assertEquals("customer_id", keyColumnName.toLowerCase()); } if (!new SqlUtil(connection).isH2()) { Assert.assertEquals(true, rsNext); } rs.close(); } // boolean returnNow = true; // if (returnNow) return; String[] types = { "TABLE", "VIEW" }; rs = databaseMetaData.getTables(null, null, null, types); Set<String> tablesSet = new HashSet<String>(); Set<String> ourTables = new HashSet<String>(); ourTables.add("banned_usernames"); ourTables.add("customer"); ourTables.add("customer_auto"); ourTables.add("orderlog"); ourTables.add("user_login"); MessageDisplayer.display(""); while (rs.next()) { table = rs.getString("TABLE_NAME"); if (ourTables.contains(table.toLowerCase())) { MessageDisplayer.display("Table: " + table); } tablesSet.add(table.toLowerCase()); } // printResultSet(rs); testTable("banned_usernames", tablesSet); testTable("customer", tablesSet); testTable("orderlog", tablesSet); testTable("user_login", tablesSet); rs.close(); }
From source file:org.lib4j.dbcp.DataSources.java
/** * Create a <code>BasicDataSource</code> given a dbcp JAXB binding. * * @param dbcp JAXB dbcp binding.//from w w w . j a v a2s . 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 w w w .jav a2s.c o m 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.noerp.entity.connection.DBCPConnectionFactory.java
public Connection getConnection(GenericHelperInfo helperInfo, JdbcElement abstractJdbc) throws SQLException, GenericEntityException { String cacheKey = helperInfo.getHelperFullName(); ManagedDataSource mds = dsCache.get(cacheKey); if (mds != null) { return TransactionUtil.getCursorConnection(helperInfo, mds.getConnection()); }/*from ww w . j a v a 2 s . co m*/ if (!(abstractJdbc instanceof InlineJdbc)) { throw new GenericEntityConfException( "DBCP requires an <inline-jdbc> child element in the <datasource> element"); } InlineJdbc jdbcElement = (InlineJdbc) abstractJdbc; // connection properties TransactionManager txMgr = TransactionFactoryLoader.getInstance().getTransactionManager(); String driverName = jdbcElement.getJdbcDriver(); String jdbcUri = helperInfo.getOverrideJdbcUri(jdbcElement.getJdbcUri()); String jdbcUsername = helperInfo.getOverrideUsername(jdbcElement.getJdbcUsername()); String jdbcPassword = helperInfo.getOverridePassword(EntityConfig.getJdbcPassword(jdbcElement)); // pool settings int maxSize = jdbcElement.getPoolMaxsize(); int minSize = jdbcElement.getPoolMinsize(); int maxIdle = jdbcElement.getIdleMaxsize(); // maxIdle must be greater than pool-minsize maxIdle = maxIdle > minSize ? maxIdle : minSize; // load the driver Driver jdbcDriver; synchronized (DBCPConnectionFactory.class) { // Sync needed for MS SQL JDBC driver. See OFBIZ-5216. try { jdbcDriver = (Driver) Class .forName(driverName, true, Thread.currentThread().getContextClassLoader()).newInstance(); } catch (Exception e) { Debug.logError(e, module); throw new GenericEntityException(e.getMessage(), e); } } // connection factory properties Properties cfProps = new Properties(); cfProps.put("user", jdbcUsername); cfProps.put("password", jdbcPassword); // create the connection factory org.apache.commons.dbcp2.ConnectionFactory cf = new DriverConnectionFactory(jdbcDriver, jdbcUri, cfProps); // wrap it with a LocalXAConnectionFactory XAConnectionFactory xacf = new LocalXAConnectionFactory(txMgr, cf); // create the pool object factory PoolableConnectionFactory factory = new PoolableManagedConnectionFactory(xacf, null); factory.setValidationQuery(jdbcElement.getPoolJdbcTestStmt()); factory.setDefaultReadOnly(false); String transIso = jdbcElement.getIsolationLevel(); if (!transIso.isEmpty()) { if ("Serializable".equals(transIso)) { factory.setDefaultTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); } else if ("RepeatableRead".equals(transIso)) { factory.setDefaultTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ); } else if ("ReadUncommitted".equals(transIso)) { factory.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); } else if ("ReadCommitted".equals(transIso)) { factory.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); } else if ("None".equals(transIso)) { factory.setDefaultTransactionIsolation(Connection.TRANSACTION_NONE); } } // configure the pool settings GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig.setMaxTotal(maxSize); // settings for idle connections poolConfig.setMaxIdle(maxIdle); poolConfig.setMinIdle(minSize); poolConfig.setTimeBetweenEvictionRunsMillis(jdbcElement.getTimeBetweenEvictionRunsMillis()); poolConfig.setMinEvictableIdleTimeMillis(-1); // disabled in favour of setSoftMinEvictableIdleTimeMillis(...) poolConfig.setSoftMinEvictableIdleTimeMillis(jdbcElement.getSoftMinEvictableIdleTimeMillis()); poolConfig.setNumTestsPerEvictionRun(maxSize); // test all the idle connections // settings for when the pool is exhausted poolConfig.setBlockWhenExhausted(true); // the thread requesting the connection waits if no connection is available poolConfig.setMaxWaitMillis(jdbcElement.getPoolSleeptime()); // throw an exception if, after getPoolSleeptime() ms, no connection is available for the requesting thread // settings for the execution of the validation query poolConfig.setTestOnCreate(jdbcElement.getTestOnCreate()); poolConfig.setTestOnBorrow(jdbcElement.getTestOnBorrow()); poolConfig.setTestOnReturn(jdbcElement.getTestOnReturn()); poolConfig.setTestWhileIdle(jdbcElement.getTestWhileIdle()); GenericObjectPool pool = new GenericObjectPool(factory, poolConfig); factory.setPool(pool); mds = new ManagedDataSource(pool, xacf.getTransactionRegistry()); //mds = new DebugManagedDataSource(pool, xacf.getTransactionRegistry()); // Useful to debug the usage of connections in the pool mds.setAccessToUnderlyingConnectionAllowed(true); // cache the pool dsCache.putIfAbsent(cacheKey, mds); mds = dsCache.get(cacheKey); return TransactionUtil.getCursorConnection(helperInfo, mds.getConnection()); }