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.

java.sql.SQLException

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

java.sql.SQLException

returnDBConnection

public static void returnDBConnection(DBConnection conn,
                                      int serialNumber)
Method to return a connection to DBConnection pool.


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.