Getting Exception when trying to get the PrepareStatement from Connection From DBCP Pool ----------------------------------------------------------------------------------------
Key: DBCP-366 URL: https://issues.apache.org/jira/browse/DBCP-366 Project: Commons Dbcp Issue Type: Bug Affects Versions: 1.2.2 Environment: Linux machine Reporter: saroj kumar balusu Using :commons-dbcp-1.2.2.jar version with Tomcat version 6.0.29 Geting the following exception when trying to get the java.sql.PrepareStatement using a Connection from DBCP Pool. java.sql.SQLException: Connection is closed. at org.apache.commons.dbcp.PoolingDriver$PoolGuardConnectionWrapper.checkOpen(PoolingDriver.java:263) at org.apache.commons.dbcp.PoolingDriver$PoolGuardConnectionWrapper.prepareStatement(PoolingDriver.java:366) This is the configuration we are using for creating Connection Pool from DBCP ---------------------------------------------------------------------------------------------- public static void setupDriver(String connectURI, String userName, String dbPassword, String maxActive, String minIdle, String maxWait, String poolName) throws Exception { GenericObjectPool.Config config = new GenericObjectPool.Config(); config.maxActive = Integer.parseInt(maxActive); config.minIdle = Integer.parseInt(minIdle); config.maxWait = Integer.parseInt(maxWait); config.whenExhaustedAction = 2; config.minEvictableIdleTimeMillis = 1800000; config.timeBetweenEvictionRunsMillis = 1800000; config.numTestsPerEvictionRun = 3; config.testOnBorrow = true; config.testOnReturn = true; config.testWhileIdle = true; ObjectPool connectionPool = new GenericObjectPool(null, config); ConnectionFactory connectionFactory = new DriverManagerConnectionFactory( connectURI, userName, dbPassword); PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory( connectionFactory, connectionPool, null, null, false, true); poolableConnectionFactory.setValidationQuery("select 1 from dual"); driver = new PoolingDriver(); driver.registerPool(poolName, connectionPool); driver.setAccessToUnderlyingConnectionAllowed(true); // PoolingDataSource dataSource = new PoolingDataSource(connectionPool); // return dataSource; } ---------------------------------------------------------------------------------------------------------------- The following code is used to get the Connection is --------------------------------------------------------------------------------------------------------------- public java.sql.Connection getConnection(poolName){ Connection con = DriverManager.getConnection("jdbc:apache:commons:dbcp:"+poolName); return con; } ---------------------------------------------------------------------------------------------------------------- The following code is used to release the connection public void release(Connection conn) throws DBException { try { conn.close(); } catch (Exception e) { throw new Exception(e.getMessage(), e); } } ----------------------------------------------------------------------------------------------------------------- Can you let us know what might be the exact reason for the following exception -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira