I read in the archive, that it was not necessary to supply the factory
parameter. Anyways, I tried it with the parameter also and it did not work.

Amitabh

-----Original Message-----
From: Glenn Nielsen [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, September 25, 2002 5:46 AM
To: Tomcat Users List
Subject: Re: DBCP pool always increasing


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]>



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

Reply via email to