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 365074 2005-10-27 14:54:50Z arminw $
See Also:
Commons Pool Website

Constructor Summary
ConnectionFactoryPooledImpl()
           
 
Method Summary
 java.sql.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, java.sql.Connection con)
          Releases a Connection after use.
 
Methods inherited from class org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl
lookupConnection, releaseConnection
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConnectionFactoryPooledImpl

public ConnectionFactoryPooledImpl()
Method Detail

releaseJdbcConnection

public void releaseJdbcConnection(JdbcConnectionDescriptor jcd,
                                  java.sql.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 java.sql.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


(C) 2002 - 2006 Apache Software Foundation
All rights reserved. Published under the Apache License 2.0.
http://db.apache.org/ojb
Version: 1.0.4, 2005-12-30