com.xpn.xwiki.store
Class DBCPConnectionProvider
java.lang.Object
com.xpn.xwiki.store.DBCPConnectionProvider
- All Implemented Interfaces:
- org.hibernate.connection.ConnectionProvider
- public class DBCPConnectionProvider
- extends java.lang.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
Field Summary |
private static java.lang.String |
AUTOCOMMIT
|
private static java.lang.String |
DBCP_PS_MAXACTIVE
|
private org.apache.commons.dbcp.BasicDataSource |
ds
|
private static org.apache.commons.logging.Log |
log
|
private static java.lang.String |
PREFIX
|
Method Summary |
void |
close()
|
void |
closeConnection(java.sql.Connection conn)
|
void |
configure(java.util.Properties props)
|
java.sql.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 org.hibernate.cfg.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 |
log
private static final org.apache.commons.logging.Log log
PREFIX
private static final java.lang.String PREFIX
- See Also:
- Constant Field Values
ds
private org.apache.commons.dbcp.BasicDataSource ds
DBCP_PS_MAXACTIVE
private static final java.lang.String DBCP_PS_MAXACTIVE
- See Also:
- Constant Field Values
AUTOCOMMIT
private static final java.lang.String AUTOCOMMIT
- See Also:
- Constant Field Values
DBCPConnectionProvider
public DBCPConnectionProvider()
configure
public void configure(java.util.Properties props)
throws org.hibernate.HibernateException
- Specified by:
configure
in interface org.hibernate.connection.ConnectionProvider
- Throws:
org.hibernate.HibernateException
getConnection
public java.sql.Connection getConnection()
throws java.sql.SQLException
- Specified by:
getConnection
in interface org.hibernate.connection.ConnectionProvider
- Throws:
java.sql.SQLException
closeConnection
public void closeConnection(java.sql.Connection conn)
throws java.sql.SQLException
- Specified by:
closeConnection
in interface org.hibernate.connection.ConnectionProvider
- Throws:
java.sql.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
org.hibernate.cfg.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 2003 Ludovic Dubost