Hi,
connection pooling will not be handled automatically. U will have to write a
class for it. Open the connections and put them in a hashtable and access
them whenever needed. I am not sure abt tomcat but weblogic app server
provides you connection pooling facility.
Following code is taken from Oreillys' Java Servlet programming by Hunter
and Croford.
import java.sql.*;
import java.util.*;

public class ConnectionPool {
  private Hashtable connections;
  private int increment;
  private String dbURL, user, password;

  public ConnectionPool(String dbURL,
                        String user,
                        String password,
                        String driverClassName,
                        int initialConnections,
                        int increment)
          throws SQLException, ClassNotFoundException {

    // Load the specified driver class
    Class.forName(driverClassName);

    this.dbURL = dbURL;
    this.user = user;
    this.password = password;
    this.increment = increment;

    connections = new Hashtable();

    // Put our pool of Connections in the Hashtable
    // The FALSE value indicates they're unused
    for(int i = 0; i < initialConnections; i++) {
      connections.put(DriverManager.getConnection(dbURL, user, password),
                      Boolean.FALSE);
    }
  }

  public Connection getConnection() throws SQLException {
    Connection con = null;

    Enumeration cons = connections.keys();

    synchronized (connections) {
      while(cons.hasMoreElements()) {
        con = (Connection)cons.nextElement();

        Boolean b = (Boolean)connections.get(con);
        if (b == Boolean.FALSE) {
          // So we found an unused connection.
          // Test its integrity with a quick setAutoCommit(true) call.
          // For production use, more testing should be performed,
          // such as executing a simple query.
          try {
            con.setAutoCommit(true);
          }
          catch(SQLException e) {
            // Problem with the connection, replace it.
            con = DriverManager.getConnection(dbURL, user, password);
          }
          // Update the Hashtable to show this one's taken
          connections.put(con, Boolean.TRUE);
          // Return the connection
          return con;
        }
      }
    }

    // If we get here, there were no free connections.
    // We've got to make more.
    for(int i = 0; i < increment; i++) {
      connections.put(DriverManager.getConnection(dbURL, user, password),
                      Boolean.FALSE);
    }

    // Recurse to get one of the new connections.
    return getConnection();
  }

  public void returnConnection(Connection returned) {
    Connection con;
    Enumeration cons = connections.keys();
    while (cons.hasMoreElements()) {
      con = (Connection)cons.nextElement();
      if (con == returned) {
        connections.put(con, Boolean.FALSE);
        break;
      }
    }
  }
}


Hope this will solve your problem.
Regards,
shishir.


>From: Aaron Crandall <[EMAIL PROTECTED]>
>Reply-To: A mailing list about Java Server Pages specification and
>     reference <[EMAIL PROTECTED]>
>To: [EMAIL PROTECTED]
>Subject: Connection pooling?
>Date: Tue, 9 Jan 2001 16:35:31 -0700
>
>Hello all,
>
>I am creating a JSP application that will run on Tomcat and access a SQL
>Server database using standard javabeans. My question is this: what do I
>have to do to use connection pooling? Will it happen automatically if I use
>a driver that supports it? Or do I have to write a Connection pooling
>class?
>
>Thanks in advance for any help!
>
>Aaron
>
>===========================================================================
>To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff
>JSP-INTEREST".
>For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST
>DIGEST".
>Some relevant FAQs on JSP/Servlets can be found at:
>
>  http://java.sun.com/products/jsp/faq.html
>  http://www.esperanto.org.nz/jsp/jspfaq.html
>  http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
>  http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST DIGEST".
Some relevant FAQs on JSP/Servlets can be found at:

 http://java.sun.com/products/jsp/faq.html
 http://www.esperanto.org.nz/jsp/jspfaq.html
 http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
 http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets

Reply via email to