commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Zoetebier <john.zoeteb...@transparent.co.nz>
Subject Re: DBCP oracle connections less than minActive ?
Date Wed, 03 Dec 2003 20:16:53 GMT
On Wed, 03 Dec 2003 12:40:32 -0500, Arun Natarajan <anatara1@gmu.edu> 
wrote:

> Hi,
> I am using DBCP for a web application. I have a class that initializes 
> the
> connection parameters(min/max values for idle/active) and also provides a
> getConnection() method. In getConnection() I have debug statements that
> print the numActive & maxActive connections and also the numIdle & 
> maxIdle
> connection values. I have a test method that requests for 15 connections 
> in
> a loop and executes a simple qry; i am not closing any of the 
> connections.
>
> At the end of the loop this is the debug message:
> getNumActive/getMaxActive 15/20 getNumIdle/getMaxIdle0/20.
>
> The parameters I had set are:
> 		connectionPool.setMaxActive(20);
> 		connectionPool.setMinIdle(5);
> 		connectionPool.setMaxIdle(20);
> When i look at the connections in oracle, I see only 4 connections from 
> the
> java user. Should I not be seeing the 15 active connections? Am i missing
> some other parameters ?

Your code differs from what you say :)
> 		connectionPool = new GenericObjectPool(null);
> 		connectionPool.setMaxActive(maxConn);//5
> 		connectionPool.setMinIdle(minConn);//20
> 		connectionPool.setMaxIdle(maxConn);//20

If you are passing 5 to MaxIdle, the results of Oracle are in line with 
the DBCP settings.

-- 
John Zoetebier
Web site: http://www.transparent.co.nz



>
> Thanks in advance for any help.
> Arun N
>
> Here's the output
> *****************
> Database Drivers were loaded successfuly
> Creating conn pool, max:20  min:5
> Data source inited successfuly
> Starting to get connections
> Requesting connection0 at 1070472656437
> getNumActive/getMaxActive0/20 getNumIdle/getMaxIdle5/20
> Status after returning a connection
> getNumActive/getMaxActive1/20 getNumIdle/getMaxIdle4/20
> Obtained connection0 at 1070472656500
> Requesting connection1 at 1070472656515
> getNumActive/getMaxActive1/20 getNumIdle/getMaxIdle4/20
> Status after returning a connection
> getNumActive/getMaxActive2/20 getNumIdle/getMaxIdle3/20
> Obtained connection1 at 1070472656515
> Requesting connection2 at 1070472656531
> getNumActive/getMaxActive2/20 getNumIdle/getMaxIdle3/20
> Status after returning a connection
> getNumActive/getMaxActive3/20 getNumIdle/getMaxIdle2/20
> Obtained connection2 at 1070472656531
> Requesting connection3 at 1070472656531
> getNumActive/getMaxActive3/20 getNumIdle/getMaxIdle2/20
> Status after returning a connection
> getNumActive/getMaxActive4/20 getNumIdle/getMaxIdle1/20
> Obtained connection3 at 1070472656546
> Requesting connection4 at 1070472656546
> getNumActive/getMaxActive4/20 getNumIdle/getMaxIdle1/20
> Status after returning a connection
> getNumActive/getMaxActive5/20 getNumIdle/getMaxIdle0/20
> Obtained connection4 at 1070472656562
> Requesting connection5 at 1070472656562
> getNumActive/getMaxActive5/20 getNumIdle/getMaxIdle0/20
> Status after returning a connection
> getNumActive/getMaxActive6/20 getNumIdle/getMaxIdle0/20
> Obtained connection5 at 1070472656625
> Requesting connection6 at 1070472656625
> getNumActive/getMaxActive6/20 getNumIdle/getMaxIdle0/20
> Status after returning a connection
> getNumActive/getMaxActive7/20 getNumIdle/getMaxIdle0/20
> Obtained connection6 at 1070472656687
> Requesting connection7 at 1070472656687
> getNumActive/getMaxActive7/20 getNumIdle/getMaxIdle0/20
> Status after returning a connection
> getNumActive/getMaxActive8/20 getNumIdle/getMaxIdle0/20
> Obtained connection7 at 1070472656765
> Requesting connection8 at 1070472656765
> getNumActive/getMaxActive8/20 getNumIdle/getMaxIdle0/20
> Status after returning a connection
> getNumActive/getMaxActive9/20 getNumIdle/getMaxIdle0/20
> Obtained connection8 at 1070472656843
> Requesting connection9 at 1070472656843
> getNumActive/getMaxActive9/20 getNumIdle/getMaxIdle0/20
> Status after returning a connection
> getNumActive/getMaxActive10/20 getNumIdle/getMaxIdle0/20
> Obtained connection9 at 1070472656921
> Requesting connection10 at 1070472656921
> getNumActive/getMaxActive10/20 getNumIdle/getMaxIdle0/20
> Status after returning a connection
> getNumActive/getMaxActive11/20 getNumIdle/getMaxIdle0/20
> Obtained connection10 at 1070472656984
> Requesting connection11 at 1070472656984
> getNumActive/getMaxActive11/20 getNumIdle/getMaxIdle0/20
> Status after returning a connection
> getNumActive/getMaxActive12/20 getNumIdle/getMaxIdle0/20
> Obtained connection11 at 1070472657046
> Requesting connection12 at 1070472657046
> getNumActive/getMaxActive12/20 getNumIdle/getMaxIdle0/20
> Status after returning a connection
> getNumActive/getMaxActive13/20 getNumIdle/getMaxIdle0/20
> Obtained connection12 at 1070472657109
> Requesting connection13 at 1070472657109
> getNumActive/getMaxActive13/20 getNumIdle/getMaxIdle0/20
> Status after returning a connection
> getNumActive/getMaxActive14/20 getNumIdle/getMaxIdle0/20
> Obtained connection13 at 1070472657234
> Requesting connection14 at 1070472657234
> getNumActive/getMaxActive14/20 getNumIdle/getMaxIdle0/20
> Status after returning a connection
> getNumActive/getMaxActive15/20 getNumIdle/getMaxIdle0/20
> Obtained connection14 at 1070472657312
> Out of loop
>
> Here's the code that initializes the pool
> ******************************************
> 		//Load the Drivers.
> 		try {
> 			Class.forName(driver).newInstance();
> 			System.out.println("Database Drivers were loaded successfuly");
> 		} catch (Exception e) {
> 			System.out.println("Database Drivers could not be loaded: Class for 
> name
> failed" + e);
> 		}
> 		//Set conn pool parameters.
> 		System.out.println("Creating conn pool, max:" + maxConn + "  min:" +
> minConn);
> 		connectionPool = new GenericObjectPool(null);
> 		connectionPool.setMaxActive(maxConn);//5
> 		connectionPool.setMinIdle(minConn);//20
> 		connectionPool.setMaxIdle(maxConn);//20
>
> 		ConnectionFactory connectionFactory = new
> DriverManagerConnectionFactory(URL,null);
> 		PoolableConnectionFactory poolableConnectionFactory = new
> PoolableConnectionFactory
> (connectionFactory,connectionPool,null,null,false,true);
> 		ds = new PoolingDataSource(connectionPool);
> 		try {
> 			//Just making sure the min Connections are created on startup
> 			for(int i=0; i<minConn; i++){
> 				connectionPool.addObject();
> 			}
> 		} catch(Exception e) {
> 			System.out.println(" Could not create conn pool objects"+e);
> 			return false;
> 		}
> 		System.out.println("Data source inited successfuly");
> 		return true;
> ******************************************
> Code that tests the conn pool
>
> 		public static boolean testPool() {
> 			 PoolDataSource ds = new PoolDataSource();
> 			 System.out.println("in the test method");
>
> ds.initDataSource("jdbc:oracle:thin:rtm/rtm@localhost:1521:arun","oracle.jdb
> c.driver.OracleDriver",20,5);
> 		try {
> 			System.out.println("Starting to get connections");
> 			String sql = "Select * from tab";
> 			for(int i=0; i<15; i++) {
> 				System.out.println("Requesting connection" + i + " at " +
> Calendar.getInstance().getTimeInMillis());
> 				Connection conn1 = ds.getConnection();
> 				System.out.println("Obtained connection" + i + " at "  +
> Calendar.getInstance().getTimeInMillis());
> 				Statement st = conn1.createStatement();
> 				st.executeQuery(sql);
> 				//PoolDataSource.CloseConnection(conn1);
> 			}
> 			System.out.println("Out of loop");
> 		} catch (Exception e) { System.out.println("DS " + e); return false;}
> 			return true;
> 		}
> ******************************************
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message