/*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* (the "License"); you may not use this file except in compliance with the License.
* You may obtain a copy of the License at .
*
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
* language governing rights and limitations under the License.
*
* The Original Code is the Venice Web Communities System.
*
* The Initial Developer of the Original Code is Eric J. Bowersox ,
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
* Copyright (C) 2002-03 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
*
* Contributor(s):
*/
package com.silverwrist.dynamo.iface;
import java.sql.Connection;
import com.silverwrist.dynamo.except.DatabaseException;
/**
* An interface to a simple pool of database connections. This interface allows us to obtain connections
* from the pool, and return them when we're done using them.
*
* @author Eric J. Bowersox <erbo@silcom.com>
* @version X
*/
public interface DBConnectionPool extends NamedObject, ServiceProvider
{
/**
* Returns a simple string identifying the database type. This is commonly used in database operations
* classes to create classnames that are dynamically loaded.
*
* @return The database identifier.
*/
public String getDatabaseType();
/**
* Returns the number of connections currently being managed by this connection pool.
*
* @return The number of connections currently being managed by this connection pool.
*/
public int numConnections();
/**
* Obtains a database connection object from the connection pool.
*
* @return The Connection
object.
* @exception com.silverwrist.dynamo.except.DatabaseException If a connection could not be obtained.
*/
public Connection getConnection() throws DatabaseException;
/**
* Returns a database connection object to the connection pool.
*
* @param conn The Connection
object to be released.
* @exception com.silverwrist.dynamo.except.DatabaseException If there was an error returning the connection.
*/
public void releaseConnection(Connection conn) throws DatabaseException;
} // end interface DBConnectionPool