org.apache.ojb.broker.accesslayer
Class ConnectionFactoryPooledImpl

java.lang.Object
  extended by org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl
      extended by org.apache.ojb.broker.accesslayer.ConnectionFactoryPooledImpl
All Implemented Interfaces:
ConnectionFactory

public class ConnectionFactoryPooledImpl
extends ConnectionFactoryAbstractImpl

Connection factory which pools the requested connections for different JdbcConnectionDescriptors using Commons Pool API.

Version:
$Id: ConnectionFactoryPooledImpl.java,v 1.1 2007-08-24 22:17:30 ewestfal Exp $
See Also:
Commons Pool Website

Nested Class Summary
(package private)  class ConnectionFactoryPooledImpl.ConPoolFactory
          Inner class - PoolableObjectFactory used as factory for connection pooling.
 
Field Summary
private  Logger log
           
private  Map poolMap
          Key=PBKey, value=ObjectPool.
private  Object poolSynch
          Synchronize object for operations not synchronized on Map only.
 
Constructor Summary
ConnectionFactoryPooledImpl()
           
 
Method Summary
 Connection checkOutJdbcConnection(JdbcConnectionDescriptor jcd)
          Returns a valid JDBC Connection.
 org.apache.commons.pool.ObjectPool createConnectionPool(JdbcConnectionDescriptor jcd)
          Create the pool for pooling the connections of the given connection descriptor.
 void releaseAllResources()
          Closes all managed pools.
 void releaseJdbcConnection(JdbcConnectionDescriptor jcd, Connection con)
          Releases a Connection after use.
 
Methods inherited from class org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl
getDbURL, getJcdDescription, getJdbcProperties, getJdbcProperties, initializeJdbcConnection, lookupConnection, newConnectionFromDataSource, newConnectionFromDriverManager, releaseConnection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private Logger log

poolMap

private Map poolMap
Key=PBKey, value=ObjectPool.


poolSynch

private final Object poolSynch
Synchronize object for operations not synchronized on Map only.

Constructor Detail

ConnectionFactoryPooledImpl

public ConnectionFactoryPooledImpl()
Method Detail

releaseJdbcConnection

public void releaseJdbcConnection(JdbcConnectionDescriptor jcd,
                                  Connection con)
                           throws LookupException
Description copied from class: ConnectionFactoryAbstractImpl
Releases a Connection after use. Implement this method in concrete subclasses. Concrete implementations using Connection pooling are responsible for any validation and pool removal management.

Note: This method is never called for a jdbc-connection-descriptor that uses datasources, OJB only manages connections from DriverManager.

Specified by:
releaseJdbcConnection in class ConnectionFactoryAbstractImpl
Parameters:
jcd - the connection descriptor for which the connection was created
con - the connection to release. Callers must guarantee that the passed connection was obtained by calling ConnectionFactoryAbstractImpl.checkOutJdbcConnection(org.apache.ojb.broker.metadata.JdbcConnectionDescriptor).
Throws:
LookupException - if errors occured during release of object. Typically happens if return of object to pool fails in a pooled implementation.

checkOutJdbcConnection

public Connection checkOutJdbcConnection(JdbcConnectionDescriptor jcd)
                                  throws LookupException
Description copied from class: ConnectionFactoryAbstractImpl
Returns a valid JDBC Connection. Implement this method in concrete subclasses. Concrete implementations using Connection pooling are responsible for any validation and pool removal management.

Note: This method is never called for a jdbc-connection-descriptor that uses datasources, OJB only manages connections from DriverManager.

Note: If the concrete implementation does not callback to ConnectionFactoryAbstractImpl.newConnectionFromDriverManager(org.apache.ojb.broker.metadata.JdbcConnectionDescriptor) when creating a new Connection, it must call ConnectionFactoryAbstractImpl.initializeJdbcConnection(java.sql.Connection, org.apache.ojb.broker.metadata.JdbcConnectionDescriptor) so that the platform implementation can peform any RDBMS-specific init tasks for newly created Connection objetcs.

Specified by:
checkOutJdbcConnection in class ConnectionFactoryAbstractImpl
Parameters:
jcd - the connection descriptor for which to return a validated Connection
Returns:
a valid Connection, never null. Specific implementations must guarantee that the connection is not null and that it is valid.
Throws:
LookupException - if a valid Connection could not be obtained

createConnectionPool

public org.apache.commons.pool.ObjectPool createConnectionPool(JdbcConnectionDescriptor jcd)
Create the pool for pooling the connections of the given connection descriptor. Override this method to implement your on ObjectPool.


releaseAllResources

public void releaseAllResources()
Closes all managed pools.

Specified by:
releaseAllResources in interface ConnectionFactory
Overrides:
releaseAllResources in class ConnectionFactoryAbstractImpl


Copyright © 2007-2012 The Kuali Foundation. All Rights Reserved.