--- source-trees/wsrf-cvs/ws-transfer/reliable/service/java/source/src/org/globus/transfer/reliable/service/database/RFTDatabaseSetup.java 2 May 2005 21:22:59 -0000 1.12.4.1 +++ source-trees/wsrf-cvs/ws-transfer/reliable/service/java/source/src/org/globus/transfer/reliable/service/database/RFTDatabaseSetup.java 6 Feb 2006 23:45:16 -0000 1.12.4.3 @@ -13,6 +13,7 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.sql.Statement; import org.apache.commons.dbcp.ConnectionFactory; import org.apache.commons.dbcp.DriverManagerConnectionFactory; @@ -192,11 +193,13 @@ * @throws RftDBException */ public static Connection getDBConnection() throws RftDBException { + Connection connection = null; if (rftDatabaseOptions == null) throw new RftDBException(i18n.getMessage("driverNotInitErr")); try { - Connection connection = DriverManager.getConnection(baseURI + connection = DriverManager.getConnection(baseURI + rftURI); + return connection; } catch (SQLException e) { logger.error(i18n.getMessage("dbConnErr") + e.getMessage(), e); @@ -205,21 +208,25 @@ } } + private static void setupDriver(String connectURI, String username, String password, int activeConnections, byte onExhaustAction, long maxWait, int idleConnections) throws Exception { // Object pool which is a pool of conection connectionPool = new GenericObjectPool(null, activeConnections, - onExhaustAction, maxWait, idleConnections); + onExhaustAction, maxWait, idleConnections, true, false); // ConnectionFactory that pool uses to create connectiosn ConnectionFactory connectionFactory = new DriverManagerConnectionFactory( connectURI, username, password); // PoolableConnectionFactory used for pooling functionality + + String validationQuery = "SELECT max(request_id) from requestid "; PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory( - connectionFactory, (ObjectPool) connectionPool, null, null, + connectionFactory, (ObjectPool) connectionPool, null, + validationQuery, false, true); // Create and Register PoolingDriver