You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Dirk Verbeeck <di...@pandora.be> on 2005/04/09 11:10:36 UTC
Re: help on DBCP
It is indeed a trivial problem.
The close() methods aren't called inside your inner for loop.
So for each 3 connections created in the "for j" loop only 1 is closed.
The order of closing rset,stmt,conn is correct.
-- Dirk
Arjen van der Weijden wrote:
> Hi folks,
>
> Just started out examining DBCP, so I'm completely new to the subject.
> I adapted the example given by Dirk V. (given below). I put some stuff in a
> for loop.
>
> The PROBLEM is that after a few loops the program seems to hang (less than
> 10 connections).
>
> Can anybody help me on this, it must be someting trivial I guess?
>
> Configuration standard mysql installation on a redhat
> _____________________________________________________________________________________________
> public class DataSourceExample {
>
> public static void main(String[] args) {
> try {
> Class.forName("com.mysql.jdbc.Driver").newInstance();
> }
> catch (Exception ex) {
> ex.printStackTrace();
> }
>
> DataSource dataSource =
> setupDataSource("jdbc:mysql://localhost/mysql?user=mysql&password=pizza");
>
> Connection conn = null;
> Statement stmt = null;
> ResultSet rset = null;
>
> for (int ii = 0; ii < 3; ii++) {
> try {
> for (int j = 0; j < 3; j++) {
> conn = dataSource.getConnection();
> stmt = conn.createStatement();
> String $query = "SELECT * FROM user";
> rset = stmt.executeQuery($query);
> System.out.println("Results:");
> int numcols = rset.getMetaData().getColumnCount();
> while(rset.next()) {
> for(int i=1;i<=numcols;i++) {
> System.out.print("\t" + rset.getString(i));
> }
> System.out.println("");
> }
> }
> } catch(SQLException e) {
> e.printStackTrace();
> } finally {
> try { rset.close(); } catch(Exception e) { }
> try { stmt.close(); } catch(Exception e) { }
> try { conn.close(); } catch(Exception e) { }
> }
> }
> }
>
> public static DataSource setupDataSource(String connectURI) {
> ConnectionFactory connectionFactory = new
> DriverManagerConnectionFactory(connectURI,null);
> PoolableConnectionFactory poolableConnectionFactory = new \
>
> PoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,true);
> PoolingDataSource dataSource = new
> PoolingDataSource(connectionPool);
> return dataSource;
> }
> }
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org