Hi,
I tried your settings, but getNumIdle() still returns 0.
Why that?
The maxActive value was 0 because i thought this is neccesary to let 
the pool never run out of connections:
http://jakarta.apache.org/commons/dbcp/configuration.html
maxActive       default:8        The maximum number of active connections that can be 
allocated from this pool at the same time, or zero for no limit.
cheers, Henrik

On Fri, 10 Sep 2004 12:23:40 -0400
"Shapira, Yoav" <[EMAIL PROTECTED]> wrote:

> 
> Hi,
> Try minIdle = 19, maxIdle = 20, maxActive = 20, initialSize = 20.  I
> think the maxActive 0 effectively means no pooling.
> 
> Yoav Shapira
> Millennium Research Informatics
> 
> 
> >-----Original Message-----
> >From: Henrik Rathje [mailto:[EMAIL PROTECTED]
> >Sent: Friday, September 10, 2004 12:20 PM
> >To: Tomcat Users List
> >Subject: Re: DBCP Performance?
> >
> >Hi,
> >seems you are rite:
> >
> >org.apache.commons.dbcp.BasicDataSource source =
> >(org.apache.commons.dbcp.BasicDataSource)ds;
> >      System.out.println("num of idle connections " +
> source.getNumIdle()
> >);
> >      System.out.println("num of max act connections " +
> >source.getMaxActive()   );
> >       System.out.println("username " +  source.getUsername()   );
> >
> >prints:
> >num of idle connections 0
> >num of max act connections 0
> >username tomcat
> >
> >but why? here is the connection pool configuration:
> ><Resource name="jdbc/sdb-login" auth="Container"
> >         type="javax.sql.DataSource"/>
> >
> >  <ResourceParams name="jdbc/sdb-login">
> >    <parameter>
> >      <name>factory</name>
> >      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
> >    </parameter>
> >    <parameter>
> >      <name>driverClassName</name>
> >      <value>ca.edbc.jdbc.EdbcDriver</value>
> >    </parameter>
> >    <parameter>
> >      <name>poolPreparedStatements</name>
> >      <value>true</value>
> >    </parameter>
> >    <parameter>
> >      <name>defaultAutoCommit</name>
> >      <value>false</value>
> >    </parameter>
> >    <parameter>
> >      <name>url</name>
> >      <value>jdbc:edbc://localhost:IJ7/sdb</value>
> >    </parameter>
> >    <parameter>
> >      <name>username</name>
> >      <value>tomcat</value>
> >    </parameter>
> >    <parameter>
> >      <name>password</name>
> >      <value>passwd ;-)</value>
> >    </parameter>
> >    <parameter>
> >      <name>initialSize</name>
> >      <value>20</value>
> >    </parameter>
> >    <parameter>
> >      <name>maxActive</name>
> >      <value>0</value>
> >    </parameter>
> >    <parameter>
> >      <name>maxIdle</name>
> >      <value>0</value>
> >    </parameter>
> >    <parameter>
> >      <name>minIdle</name>
> >      <value>20</value>
> >    </parameter>
> >    <parameter>
> >      <name>maxWait</name>
> >      <value>-1</value>
> >    </parameter>
> >    <parameter>
> >      <name>testOnBorrow</name>
> >      <value>false</value>
> >    </parameter>
> >  </ResourceParams>
> >
> >Thanks for support, Henrik
> >
> >
> >
> >On Fri, 10 Sep 2004 11:51:05 -0400
> >"Shapira, Yoav" <[EMAIL PROTECTED]> wrote:
> >
> >>
> >> Hi,
> >> Hmm, with minIdle set to 20 and assuming your test gets one
> connection
> >> at a time (or less than 20 at a time), I'm a bit confused.
> >>
> >> One next step would be to really verify that the pool has available
> >> connections before the get connection call.  You obviously wouldn't
> do
> >> this in a production application, but this is just for debugging a
> >> performance test.  Cast the DataSource to the concrete implementation
> >> type, probably org.apache.commons.dbcp.BasicDataSource, and call
> >> getNumIdle on it to verify it's a positive number before calling
> >> getConnection.  If it's zero or negative your pool is misconfigured
> and
> >> you're creating a new connection, hence the slow performance.
> >>
> >> Yoav Shapira
> >> Millennium Research Informatics
> >>
> >>
> >> >-----Original Message-----
> >> >From: Henrik Rathje [mailto:[EMAIL PROTECTED]
> >> >Sent: Friday, September 10, 2004 11:46 AM
> >> >To: Tomcat Users List
> >> >Subject: Re: DBCP Performance?
> >> >
> >> >Hi,
> >> >The minIdle value during this test was:
> >> ><parameter>
> >> >      <name>minIdle</name>
> >> >      <value>20</value>
> >> ></parameter>
> >> >any other suggestions?
> >> >Thanks in advance, Henrik
> >> >
> >> >
> >> >
> >> >On Fri, 10 Sep 2004 11:21:08 -0400
> >> >"Shapira, Yoav" <[EMAIL PROTECTED]> wrote:
> >> >
> >> >>
> >> >> Hi,
> >> >> The initial connections can be closed if idle, depending on your
> pool
> >> >> configuration, so you might be creating new connections each time
> >> even
> >> >> with the pool.  Check your minIdle setting.
> >> >>
> >> >> If you're creating a new connection each time, a tiny bit of
> overhead
> >> >> can be expected for a pool over a direct DriverManager call.  But
> >> that
> >> >> defeats the purpose of pooling.  If your pool is properly
> configured
> >> and
> >> >> has a connection waiting, it should be a little bit more than a
> hash
> >> >> lookup to return the connection, which would be significantly
> faster
> >> >> than creating a new one.
> >> >>
> >> >> Yoav Shapira
> >> >> Millennium Research Informatics
> >> >>
> >> >>
> >> >> >-----Original Message-----
> >> >> >From: Henrik Rathje [mailto:[EMAIL PROTECTED]
> >> >> >Sent: Friday, September 10, 2004 11:16 AM
> >> >> >To: [EMAIL PROTECTED]
> >> >> >Subject: DBCP Performance?
> >> >> >
> >> >> >Hi,
> >> >> >has enyone of you recently measured the performance of the DBCP
> >> >> >Connection Pool? I compared
> >> >> >
> >> >> ><snip>
> >> >> >long start = System.currentTimeMillis();
> >> >> >Class.forName("ca.edbc.jdbc.EdbcDriver");
> >> >> >Connection dbcon = DriverManager.getConnection(loginUrl,
> loginUser,
> >> >> >loginPa$
> >> >> >long diff = System.currentTimeMillis() - start;
> >> >> >System.out.println("creating connection without pool took: " +
> diff
> >> + "
> >> >> >mil$
> >> >> ></snip>
> >> >> >
> >> >> >with
> >> >> >
> >> >> ><snip>
> >> >> >long start = System.currentTimeMillis();
> >> >> >Connection dbcon = ds.getConnection( );
> >> >> >long diff = System.currentTimeMillis() - start;
> >> >> >System.out.println("creating connection with pool took: " + diff
> + "
> >> >> >milise$
> >> >> ></snip>
> >> >> >
> >> >> >And got surprisingly results like this:
> >> >> >
> >> >> >creating connection without pool took: 465 miliseconds
> >> >> >creating connection with pool took: 585 miliseconds
> >> >> >
> >> >> >In my tests the connection pool is always slower, so what did I
> do
> >> >> wrong?
> >> >> >I guess this Parameter is responsible for holding active
> Connections
> >> in
> >> >> >the Pool:
> >> >> ><parameter>
> >> >> >      <name>initialSize</name>
> >> >> >      <value>20</value>
> >> >> ></parameter>
> >> >> >So there shold be active Connections before the getConnection( )
> is
> >> >> >called .. Any ideas?
> >> >> >Regards, Henrik
> >> >> >
> >> >>
> >>
> >---------------------------------------------------------------------
> >> >> >To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> >> >> >For additional commands, e-mail:
> [EMAIL PROTECTED]
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> This e-mail, including any attachments, is a confidential business
> >> >communication, and may contain information that is confidential,
> >> >proprietary and/or privileged.  This e-mail is intended only for the
> >> >individual(s) to whom it is addressed, and may not be saved, copied,
> >> >printed, disclosed or used by anyone else.  If you are not the(an)
> >> intended
> >> >recipient, please immediately delete this e-mail from your computer
> >> system
> >> >and notify the sender.  Thank you.
> >> >>
> >> >>
> >> >>
> ---------------------------------------------------------------------
> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >> For additional commands, e-mail:
> [EMAIL PROTECTED]
> >> >>
> >> >
> >>
> >---------------------------------------------------------------------
> >> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>
> >>
> >> This e-mail, including any attachments, is a confidential business
> >communication, and may contain information that is confidential,
> >proprietary and/or privileged.  This e-mail is intended only for the
> >individual(s) to whom it is addressed, and may not be saved, copied,
> >printed, disclosed or used by anyone else.  If you are not the(an)
> intended
> >recipient, please immediately delete this e-mail from your computer
> system
> >and notify the sender.  Thank you.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> 
> This e-mail, including any attachments, is a confidential business communication, 
> and may contain information that is confidential, proprietary and/or privileged.  
> This e-mail is intended only for the individual(s) to whom it is addressed, and may 
> not be saved, copied, printed, disclosed or used by anyone else.  If you are not 
> the(an) intended recipient, please immediately delete this e-mail from your computer 
> system and notify the sender.  Thank you.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to