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

        

Reply via email to