Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.objectstyle.cayenne.conf
Class DBCPDataSourceFactory

    java.lang.Object
      org.objectstyle.cayenne.conf.DBCPDataSourceFactory

All Implemented Interfaces:
  DataSourceFactory

    public class DBCPDataSourceFactory

extends java.lang.Object
implements DataSourceFactory

An implementation of DataSourceFactory that instantiates a DataSource from Apache Commons DBCP. Configured via a properties file specified by the location hint in the modeler and under datasource attribute in cayenne.xml. Note that if location doesn't have a ".properties" extension, such extension is added automatically. Sample properties file:

               #
               # This file defines the configuration properties for Commons DBCP pool
               # which is used for Cayenne during some of the test cases.
               # For more info on setting parameters see the documentation for commons
               # dbcp and commons pool. The following prefixes are required:
               # cayenne.dbcp.<param> = configure the connection pool
               # cayenne.dbcp.ps.<param> = configuration for the prepared connection pools
               # that are associated with each pooled connections

               #driver class to use to connect to the database
               cayenne.dbcp.driverClassName=net.sourceforge.jtds.jdbc.Driver

               #url to the database, the parameters should be part of the connection string
               #and not here
               cayenne.dbcp.url=jdbc:jtds:sqlserver://192.168.20.2:1433/x_test2;TDS=8.0

               #username to use to connect to the database
               cayenne.dbcp.username=garyj

               #password to use to connect to the database
               cayenne.dbcp.password=somepass

               #maximum number of active connections
               cayenne.dbcp.maxActive=500

               #minimum number of idle connections
               cayenne.dbcp.minIdle=10

               #maximum number of active connections that can remain idle in the pool
               cayenne.dbcp.maxIdle=10

               #maximum number of milliseconds to wait for a connection to be returned to the
               #pool before throwing an exception when the connection is required and the pool
               #is exhaused of the active connections. -1 for indefinetly
               cayenne.dbcp.maxWait=10000

               #sql query to be used to validate connections from the pool. Must return
               #at least one row
               cayenne.dbcp.validationQuery=SELECT GETDATE()

               #should the object be validated when it is borrowed from the pool
               cayenne.dbcp.testOnBorrow=false

               #should the object be validated when it is returned to the pool
               cayenne.dbcp.testOnReturn=true

               #should the object be validated when it is idle
               cayenne.dbcp.testWhileIdle=true

               #number of milliseconds to sleep between runs of the idle object evictor thread
               cayenne.dbcp.timeBetweenEvictionRunsMillis=120000

               #number of objects to examin during each run of the idle object evictor
               cayenne.dbcp.numTestsPerEvictionRun=10

               #minimum time an object may sit idle in the pool before it is elegible for
               #an eviction
               cayenne.dbcp.minEvictableIdleTimeMillis=2000000

               #action to take the the pool is exhausted of all active connections
               #see GenericObjectPool class
               #this value can be set as either an int or a String the setter method
               #will attempt to convert the String value to it's resective representation
               #in the GenericObjectPool class and if successfull will use the byte
               #value as the config paramter to the pool. If not the default value will
               #be used
               cayenne.dbcp.whenExhaustedAction=WHEN_EXHAUSTED_GROW

               #The default auto-commit state of connections created by this pool
               caynne.dbcp.defaultAutoCommit=false

               #Default read only state of connections created by the pool. Can be left
               #as null for driver default
               cayenne.dbcp.defaultReadOnly=true

               # Default TransactionIsolation state of connections created by this pool. This can
               # be either a String representation of the isolation level defined in the interface
               # java.sql.Connection. Can be left as null for
               # driver default
               cayenne.dbcp.defaultTransactionIsolation=TRANSACTION_SERIALIZABLE

               #If set to true the application will be able to get access to the
               #actual connection object which is normally wrapped by a poolable connections
               cayenne.dbcp.accessToUnderlyingConnectionAllowed=true

               #Default catalog of connections created by this pool
               cayenne.dbcp.defaultCatalog=someCat

               #Specifies whether prepared statments should be pooled
               cayenne.dbcp.poolPreparedStatements=true

               #Controlls the maximum number of objects that can be borrowed from the pool at
               #one time
               cayenne.dbcp.ps.maxActive=500

               #Maximum number of idle objects in the pool
               cayenne.dbcp.ps.maxIdle=50

               #Maximum number of objects that can exist in the prepared statement pool at one time
               cayenne.dbcp.ps.maxTotal=600

               # Minimum number of milliseconds to wait for an objec the the pool of
               # prepared statements is exhausted and the whenExhaustedAction is set to
               # 1 (WHEN_EXHAUSTED_BLOCK)
               cayenne.dbcp.ps.maxWait=10000

               # Number of milliseconds an object can sit idle in the pool before it is
               # elegible for eviction
               cayenne.dbcp.ps.minEvictableIdleTimeMillis=2000000

               #Number of idle objects that should be examined per eviction run
               cayenne.dbcp.ps.numTestsPerEvictionRun=20

               #Specifies whether objects should be validated before they are borrowed from this pool
               cayenne.dbcp.ps.testOnBorrow=false

               #Specifies whether objects should be validated when they are returned to the pool
               cayenne.dbcp.ps.testOnReturn=true

               #Specifies whether objects should be validated in the idle eviction thread
               cayenne.dbcp.ps.testWhileIdle=true

               #Specifies the time between the runs of the eviction thread
               cayenne.dbcp.ps.timeBetweenEvictionRunsMillis=120000

               # action to take when the the pool is exhausted of all active objects.
               # acceptable values are strings (WHEN_EXHAUSTED_FAIL, WHEN_EXHAUSTED_BLOCK (default),
               # WHEN_EXHAUSTED_GROW), or their corresponding int values defined in commons-pool GenericObjectPool:
               cayenne.dbcp.ps.whenExhaustedAction=WHEN_EXHAUSTED_FAIL

Since:
  1.2
Author:
  Gary Jarrel

Field Summary
`protected Configuration` | `parentConfiguration`
`static java.lang.String` | `PROPERTY_PREFIX` All the properties in the configuration properties file should be prefixed with this prefix, namely cayenne.dbcp.
`static java.lang.String` | `PS_PROPERTY_PREFIX` The the properties in the configuration file, related to Prepared Statement pooling and used to configure `KeyedObjectPoolFactory` are followed by this prefix.

Constructor Summary
`DBCPDataSourceFactory()`

Method Summary
`javax.sql.DataSource` | `getDataSource(java.lang.String location)` Creates a DBCP `PoolingDataSource`
`javax.sql.DataSource` | `getDataSource(java.lang.String location, org.apache.log4j.Level logLevel)` Deprecated. since 1.2
`void` | `initializeWithParentConfiguration(Configuration parentConfiguration)` Initializes factory with the parent configuration object.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### PROPERTY_PREFIX

    public static final java.lang.String PROPERTY_PREFIX

  All the properties in the configuration properties file should be prefixed with this prefix, namely cayenne.dbcp. The config parameter as set out in commons dbcp configuration should follow this prefix.

  See Also:
    Constant Field Values

### PS_PROPERTY_PREFIX

    public static final java.lang.String PS_PROPERTY_PREFIX

  The the properties in the configuration file, related to Prepared Statement pooling and used to configure `KeyedObjectPoolFactory` are followed by this prefix. This constants is set to PROPERTY_PREFIX + ps.

  See Also:
    Constant Field Values

### parentConfiguration

    protected Configuration parentConfiguration

Constructor Detail

### DBCPDataSourceFactory

    public DBCPDataSourceFactory()

Method Detail

### initializeWithParentConfiguration

    public void initializeWithParentConfiguration(Configuration parentConfiguration)

  Description copied from interface: `DataSourceFactory`
  Initializes factory with the parent configuration object.

  Specified by:
    `initializeWithParentConfiguration` in interface `DataSourceFactory`

### getDataSource

    public javax.sql.DataSource getDataSource(java.lang.String location,
                                              org.apache.log4j.Level logLevel)
                                       throws java.lang.Exception

  Deprecated. since 1.2

  Specified by:
    `getDataSource` in interface `DataSourceFactory`
  Throws:
    `java.lang.Exception`

### getDataSource

    public javax.sql.DataSource getDataSource(java.lang.String location)
                                       throws java.lang.Exception

  Creates a DBCP `PoolingDataSource`

  Specified by:
    `getDataSource` in interface `DataSourceFactory`
  Returns:
    `DataSource` which is an instance of `PoolingDataSource`
  Throws:
    `java.lang.Exception`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2006 ObjectStyle.org All Rights Reserved.