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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
