com.xpn.xwiki.store
Class DBCPConnectionProvider

java.lang.Object
  extended by com.xpn.xwiki.store.DBCPConnectionProvider
All Implemented Interfaces:
org.hibernate.connection.ConnectionProvider

public class DBCPConnectionProvider
extends Object
implements org.hibernate.connection.ConnectionProvider

A connection provider that uses an Apache commons DBCP connection pool.

To use this connection provider set:
hibernate.connection.provider_class org.hibernate.connection.DBCPConnectionProvider

 Supported Hibernate properties:
   hibernate.connection.driver_class
   hibernate.connection.url
   hibernate.connection.username
   hibernate.connection.password
   hibernate.connection.isolation
   hibernate.connection.autocommit
   hibernate.connection.pool_size
   hibernate.connection (JDBC driver properties)
 

All DBCP properties are also supported by using the hibernate.dbcp prefix. A complete list can be found on the DBCP configuration page: http://jakarta.apache.org/commons /dbcp/configuration.html.
 Example:
   hibernate.connection.provider_class org.hibernate.connection.DBCPConnectionProvider
   hibernate.connection.driver_class org.hsqldb.jdbcDriver
   hibernate.connection.username sa
   hibernate.connection.password
   hibernate.connection.url jdbc:hsqldb:test
   hibernate.connection.pool_size 20
   hibernate.dbcp.initialSize 10
   hibernate.dbcp.maxWait 3000
   hibernate.dbcp.validationQuery select 1 from dual
 

More information about configuring/using DBCP can be found on the DBCP website. There you will also find the DBCP wiki, mailing lists, issue tracking and other support facilities

Author:
Dirk Verbeeck
See Also:
ConnectionProvider

Constructor Summary
DBCPConnectionProvider()
           
 
Method Summary
 void close()
           
 void closeConnection(Connection conn)
           
 void configure(Properties props)
           
 Connection getConnection()
           
protected  void logStatistics()
           
 boolean supportsAggressiveRelease()
          Does this connection provider support aggressive release of JDBC connections and re-acquistion of those connections (if need be) later?

This is used in conjunction with Environment.RELEASE_CONNECTIONS to aggressively release JDBC connections.

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

Constructor Detail

DBCPConnectionProvider

public DBCPConnectionProvider()
Method Detail

configure

public void configure(Properties props)
               throws org.hibernate.HibernateException
Specified by:
configure in interface org.hibernate.connection.ConnectionProvider
Throws:
org.hibernate.HibernateException

getConnection

public Connection getConnection()
                         throws SQLException
Specified by:
getConnection in interface org.hibernate.connection.ConnectionProvider
Throws:
SQLException

closeConnection

public void closeConnection(Connection conn)
                     throws SQLException
Specified by:
closeConnection in interface org.hibernate.connection.ConnectionProvider
Throws:
SQLException

close

public void close()
           throws org.hibernate.HibernateException
Specified by:
close in interface org.hibernate.connection.ConnectionProvider
Throws:
org.hibernate.HibernateException

supportsAggressiveRelease

public boolean supportsAggressiveRelease()
Does this connection provider support aggressive release of JDBC connections and re-acquistion of those connections (if need be) later?

This is used in conjunction with Environment.RELEASE_CONNECTIONS to aggressively release JDBC connections. However, the configured ConnectionProvider must support re-acquisition of the same underlying connection for that semantic to work.

Typically, this is only true in managed environments where a container tracks connections by transaction or thread.

Specified by:
supportsAggressiveRelease in interface org.hibernate.connection.ConnectionProvider

logStatistics

protected void logStatistics()


Copyright © 2004–2014 XWiki. All rights reserved.