edu.ucsb.nceas.metacat
Class DBConnectionPool

java.lang.Object
  |
  +--edu.ucsb.nceas.metacat.DBConnectionPool
All Implemented Interfaces:
java.lang.Runnable

public class DBConnectionPool
extends java.lang.Object
implements java.lang.Runnable

A class represent a DBConnection pool. Another user can use the object to initial a connection pool, get db connection or return it. This a singleton class, this means only one instance of this class could be in the program at one time.


Method Summary
static DBConnection getDBConnection(java.lang.String methodName)
          Method to get a DBConnection in connection pool 1) try to get a DBConnection from DBConnection pool 2) if 1) failed, then check the size of pool.
static int getFreeDBConnectionNumber()
          Method to get the number of free DBConnection in DBConnection pool
static DBConnectionPool getInstance()
          Returns the single instance, creating one if it's the first time this method is called.
 int getSizeOfDBConnectionPool()
          Method to get the size of DBConnectionPool
 void printMethodNameHavingBusyDBConnection()
          Method to print out the method name which have busy DBconnection
static void release()
          Method to shut down all connections
static void returnDBConnection(DBConnection conn, int serialNumber)
          Method to return a connection to DBConnection pool.
 void run()
          periodically to recycle the connection
static boolean shrinkConnectionPoolSize()
          Method to decrease dbconnection pool size when all dbconnections are idle If all connections are free and connection pool size greater than initial value, shrink connection pool size to intital value
static void shrinkDBConnectionPoolSize()
          Method to decrease dbconnection pool size when all dbconnections are idle If all connections are free and connection pool size greater than initial value, shrink connection pool size to intital value
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static DBConnectionPool getInstance()
                                    throws java.sql.SQLException
Returns the single instance, creating one if it's the first time this method is called.

getSizeOfDBConnectionPool

public int getSizeOfDBConnectionPool()
Method to get the size of DBConnectionPool

getDBConnection

public static DBConnection getDBConnection(java.lang.String methodName)
                                    throws java.sql.SQLException
Method to get a DBConnection in connection pool 1) try to get a DBConnection from DBConnection pool 2) if 1) failed, then check the size of pool. If the size reach the maximum number of connection, throw a exception: couldn't get one 3) If the size is less than the maximum number of connectio, create some new connections and recursive get one
Parameters:
methodName, - the name of method which will check connection out

returnDBConnection

public static void returnDBConnection(DBConnection conn,
                                      int serialNumber)
Method to return a connection to DBConnection pool.
Parameters:
conn, - the Connection object need to check in

release

public static void release()
Method to shut down all connections

run

public void run()
periodically to recycle the connection
Specified by:
run in interface java.lang.Runnable

getFreeDBConnectionNumber

public static int getFreeDBConnectionNumber()
Method to get the number of free DBConnection in DBConnection pool

printMethodNameHavingBusyDBConnection

public void printMethodNameHavingBusyDBConnection()
Method to print out the method name which have busy DBconnection

shrinkConnectionPoolSize

public static boolean shrinkConnectionPoolSize()
Method to decrease dbconnection pool size when all dbconnections are idle If all connections are free and connection pool size greater than initial value, shrink connection pool size to intital value

shrinkDBConnectionPoolSize

public static void shrinkDBConnectionPoolSize()
Method to decrease dbconnection pool size when all dbconnections are idle If all connections are free and connection pool size greater than initial value, shrink connection pool size to intital value


Copyright © 2000 National Center for Ecological Analysis and Synthesis. All Rights Reserved.