Your config isn't configured to use DBCP. It is missing the following:
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
That is why none of the DBCP features were working.
Glenn
Amitabh Dubey wrote:
> This is what my final working server.xml file looks like
>
> <Resource name="SQLServerDS" scope="Shareable" type="javax.sql.DataSource"/>
> <ResourceParams name="SQLServerDS">
> <parameter>
> <name>url</name>
>
> <value>jdbc:microsoft:sqlserver://dnas07:1113;DatabaseName=NorthWind</value>
> </parameter>
> <parameter>
> <name>validationQuery</name>
> <value></value>
> </parameter>
> <parameter>
> <name>maxIdle</name>
> <value>3</value>
> </parameter>
> <parameter>
> <name>maxActive</name>
> <value>5</value>
> </parameter>
> <parameter>
> <name>driverClassName</name>
> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
> </parameter>
> <parameter>
> <name>maxWait</name>
> <value>6000</value>
> </parameter>
> <parameter>
> <name>removeAbandoned</name>
> <value>true</value>
> </parameter>
> <parameter>
> <name>user</name>
> <value>sa</value>
> </parameter>
> <parameter>
> <name>removeAbandonedTimeout</name>
> <value>5</value>
> </parameter>
> <parameter>
> <name>password</name>
> <value>sa</value>
> </parameter>
> </ResourceParams>
>
> And this was my test program
>
>
> try {
>
> // assumes jndi.properties has been configured appropriately
> Context initCtx = new InitialContext();
> Context envCtx = (Context) initCtx.lookup("java:comp/env");
>
> // Get a Connection
> DataSource ds = (DataSource) envCtx.lookup(jndiName);
> Connection con = null;
> Statement st = null;
>
> ResultSet res = null;
>
> ResultSetMetaData meta = null;
>
> try
> {
>
> con = ds.getConnection();
>
> st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
> ResultSet.CONCUR_READ_ONLY);
>
> res = st.executeQuery(sql);
>
> meta = res.getMetaData();
> int cols = meta.getColumnCount();
> // since this is a scrollable ResultSet,
> // do something a little strange...
> while (!res.isLast()) {
> res.next();
> for (int i=1; i<=cols; i++) {
> Object val = res.getObject(i);
> System.out.print("\t" + meta.getColumnLabel(i) + ": ");
> System.out.print(val == null ? " " : val.toString());
> }
> System.out.print("\n");
> }
> }
> catch (SQLException sqle)
> {
> sqle.printStackTrace();
> }
> finally
> {
> // PoolMan closes ResultSets and Statements whenever
> // Connections are closed, no need for it here
>
> if (null != res)
> {
> try
> {
> res.close();
> }
> catch(SQLException e)
> {
> }
> }
>
> if (null != st)
> {
> try
> {
> st.close();
> }
> catch(SQLException e)
> {
> }
> }
>
> if (con != null)
> {
> try
> {
> con.close();
> }
> catch (SQLException sqle2)
> {
> }
> }
> }
>
> } catch (javax.naming.NameNotFoundException nne) {
> System.out.println("ERROR: No DataSource is registered under the name "
> +
> jndiName + ", please check your poolman.props " +
> " and deployment tool.\n");
> return nne.getMessage();
> } catch (javax.naming.NamingException nex) {
> System.out.println("ERROR: JNDI Exception Occurred. Is your JNDI
> resource available?\n");
> nex.printStackTrace();
> return nex.getMessage();
> } catch (java.security.AccessControlException ae) {
> System.out.println("ERROR: You cannot execute the DataSource example
> with " +
> "the security permissions you are using. Try using the
>" +
> "poolman.policy file: " +
> "java -Djava.security.policy=../lib/poolman.policy
> PoolManSample.\n");
> return ae.getMessage();
> }
>
> I was facing the problem, when i was not explicitly closing the resultset
> and statement. but if i do, then the connections are reused and the pool
> grows correctly. But the removeabandoned definitly does not work with Tomcat
> 4.1.2. I am using this in a webservice and Tomcat 4.1.2 came packaged with
> the jwsdk from sun. if i find tomcat bugy, i might downgrade.
>
> Amitabh
>
> -----Original Message-----
> From: Glenn Nielsen [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, September 24, 2002 11:04 PM
> To: Tomcat Users List
> Subject: Re: DBCP pool always increasing
>
>
> In the config you posted you didn't have RemoveAbandoned configured, by
> default is is set to false. You also didn't set the maxActive, by default
> I believe it is unlimited. An example of your code which uses the
> JNDI named datasource would also be helpfull in debugging these type
> of problems.
>
> Regards,
>
> Glenn
>
> Amitabh Dubey wrote:
>
>>I used performance monitor to view the number of user connections to the
>>database. Although i was closing the connection in my client code, the
>
> pool
>
>>size / connections to the database were always increasing. Given that i
>
> was
>
>>executing only one program at a time, i would expect that this number not
>
> go
>
>>on increasing.
>>
>>So i closed not only the connections, but resultset and statements as
>
> well.
>
>>This solved my problem. However, the tomcat dbcp documentation suggests
>
> that
>
>>we have a removeAbandoned and the timeout for this property also set. My
>>remove abandones was set to true and the timeout value was 5 secs. But
>
> these
>
>>values seem to be ignored. So the only sure way out is to close everything
>>explictly.
>>
>>Amitabh
>>
>>-----Original Message-----
>>From: Glenn Nielsen [mailto:[EMAIL PROTECTED]]
>>Sent: Tuesday, September 24, 2002 7:22 PM
>>To: Tomcat Users List
>>Subject: Re: DBCP pool always increasing
>>
>>
>>What do you mean by your pool is increasing in size? That the number of
>>open
>>connections to the db is increaing? What is the indicator that this
>>is happening? The more specific you can be the better chance that someone
>>can answer your question.
>>
>>Glenn
>>
>>Amitabh Dubey wrote:
>>
>>
>>>Hello All,
>>> I managed to use DBCP with SQL Server and am able to get connections
>>
>>from
>>
>>
>>>the pool. After i execute my query, i close the connection also, but it is
>>>going back to my pool and i have verified that. However, what I do not
>>>understand is this : Why does the pool go on increasing and never
>>
>>decreasing
>>
>>
>>>in size. This is what my server.xml looks like
>>>
>>><ResourceParams name="SQLServerDS">
>>> <parameter>
>>> <name>validationQuery</name>
>>> <value></value>
>>> </parameter>
>>> <parameter>
>>> <name>user</name>
>>> <value>sa</value>
>>> </parameter>
>>> <parameter>
>>> <name>url</name>
>>>
>>>
> <value>jdbc:microsoft:sqlserver://dnas07:1113;DatabaseName=NorthWind</value>
>
>>> </parameter>
>>> <parameter>
>>> <name>password</name>
>>> <value>sa</value>
>>> </parameter>
>>> <parameter>
>>> <name>maxActive</name>
>>> <value>3</value>
>>> </parameter>
>>> <parameter>
>>> <name>maxWait</name>
>>> <value>120</value>
>>> </parameter>
>>> <parameter>
>>> <name>driverClassName</name>
>>> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
>>> </parameter>
>>> <parameter>
>>> <name>maxIdle</name>
>>> <value>5</value>
>>> </parameter>
>>> </ResourceParams>
>>>
>>>
>>>If i understand the parameters correctly, then
>>>
>>>maxActive --> Maximum number of connections allowed to the database (What
>>>happens when this number is reached? For me i get a new connection and the
>>>pool increases. Is this the expected behavior? Can i change it to fail or
>>>block instead?)
>>>
>>>maxidle --> Maximum number of idle connections that the pool should hold
>>>(For me my pool never goes down to this limit)
>>>
>>>maxWait --> Maximum time to wait for a dB connection to become available
>>
>>in
>>
>>
>>>ms.
>>>
>>>removeAbandoned --> recycle connections if the removeAbandonedTimeout is
>>>reached and the connection is idle. in our case it is true.
>>>
>>>removeAbandonedTimeout --> 5
>>>
>>>
>>>If i am correct, why is my pool growing forever and not reducing in size?
>>>
>>>Any ideas?
>>>
>>>Amitabh
>>>
>>>
>>>--
>>>To unsubscribe, e-mail:
>>
>><mailto:[EMAIL PROTECTED]>
>>
>>>For additional commands, e-mail:
>>
>><mailto:[EMAIL PROTECTED]>
>>
>>
>>
>>
>>--
>>To unsubscribe, e-mail:
>><mailto:[EMAIL PROTECTED]>
>>For additional commands, e-mail:
>><mailto:[EMAIL PROTECTED]>
>>
>>
>>
>>--
>>To unsubscribe, e-mail:
>
> <mailto:[EMAIL PROTECTED]>
>
>>For additional commands, e-mail:
>
> <mailto:[EMAIL PROTECTED]>
>
>
>
>
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>
>
>
> --
> To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>