org.apache.commons.dbcp.managed
Class BasicManagedDataSource

java.lang.Object
  extended by org.apache.commons.dbcp.BasicDataSource
      extended by org.apache.commons.dbcp.managed.BasicManagedDataSource
All Implemented Interfaces:
Wrapper, CommonDataSource, DataSource

public class BasicManagedDataSource
extends BasicDataSource

BasicManagedDataSource is an extension of BasicDataSource which creates ManagedConnections. This data source can create either full two-phase-commit XA connections or one-phase-commit local connections. Both types of connections are committed or rolled back as part of the global transaction (a.k.a. XA transaction or JTA Transaction), but only XA connections can be recovered in the case of a system crash.

BasicManagedDataSource adds the TransactionManager and XADataSource properties. The TransactionManager property is required and is used to elist connections in global transactions. The XADataSource is optional and if set is the class name of the XADataSource class for a two-phase-commit JDBC driver. If the XADataSource property is set, the driverClassName is ignored and a DataSourceXAConnectionFactory is created. Otherwise, a standard DriverConnectionFactory is created and wrapped with a LocalXAConnectionFactory.

Version:
$Revision$
See Also:
BasicDataSource, ManagedConnection

Field Summary
 
Fields inherited from class org.apache.commons.dbcp.BasicDataSource
closed, connectionInitSqls, connectionPool, connectionProperties, dataSource, defaultAutoCommit, defaultCatalog, defaultReadOnly, defaultTransactionIsolation, driverClassLoader, driverClassName, initialSize, logWriter, maxActive, maxIdle, maxOpenPreparedStatements, maxWait, minEvictableIdleTimeMillis, minIdle, numTestsPerEvictionRun, password, poolPreparedStatements, testOnBorrow, testOnReturn, testWhileIdle, timeBetweenEvictionRunsMillis, url, username, validationQuery, validationQueryTimeout
 
Constructor Summary
BasicManagedDataSource()
           
 
Method Summary
protected  ConnectionFactory createConnectionFactory()
          Creates a JDBC connection factory for this datasource.
protected  void createDataSourceInstance()
          Creates the actual data source instance.
protected  void createPoolableConnectionFactory(ConnectionFactory driverConnectionFactory, KeyedObjectPoolFactory statementPoolFactory, AbandonedConfig abandonedConfig)
          Creates the PoolableConnectionFactory and attaches it to the connection pool.
 TransactionManager getTransactionManager()
          Gets the required transaction manager property.
protected  TransactionRegistry getTransactionRegistry()
          Gets the transaction registry.
 String getXADataSource()
          Gets the optional XADataSource class name.
 XADataSource getXaDataSourceInstance()
          Gets the XADataSource instance used by the XAConnectionFactory.
 void setTransactionManager(TransactionManager transactionManager)
          Sets the required transaction manager property.
 void setXADataSource(String xaDataSource)
          Sets the optional XADataSource class name.
 void setXaDataSourceInstance(XADataSource xaDataSourceInstance)
          Sets the XADataSource instance used by the XAConnectionFactory.
 
Methods inherited from class org.apache.commons.dbcp.BasicDataSource
addConnectionProperty, close, createConnectionPool, createDataSource, getConnection, getConnection, getConnectionInitSqls, getDefaultAutoCommit, getDefaultCatalog, getDefaultReadOnly, getDefaultTransactionIsolation, getDriverClassLoader, getDriverClassName, getInitialSize, getLogAbandoned, getLoginTimeout, getLogWriter, getMaxActive, getMaxIdle, getMaxOpenPreparedStatements, getMaxWait, getMinEvictableIdleTimeMillis, getMinIdle, getNumActive, getNumIdle, getNumTestsPerEvictionRun, getPassword, getRemoveAbandoned, getRemoveAbandonedTimeout, getTestOnBorrow, getTestOnReturn, getTestWhileIdle, getTimeBetweenEvictionRunsMillis, getUrl, getUsername, getValidationQuery, getValidationQueryTimeout, isAccessToUnderlyingConnectionAllowed, isClosed, isPoolPreparedStatements, isWrapperFor, log, removeConnectionProperty, setAccessToUnderlyingConnectionAllowed, setConnectionInitSqls, setConnectionProperties, setDefaultAutoCommit, setDefaultCatalog, setDefaultReadOnly, setDefaultTransactionIsolation, setDriverClassLoader, setDriverClassName, setInitialSize, setLogAbandoned, setLoginTimeout, setLogWriter, setMaxActive, setMaxIdle, setMaxOpenPreparedStatements, setMaxWait, setMinEvictableIdleTimeMillis, setMinIdle, setNumTestsPerEvictionRun, setPassword, setPoolPreparedStatements, setRemoveAbandoned, setRemoveAbandonedTimeout, setTestOnBorrow, setTestOnReturn, setTestWhileIdle, setTimeBetweenEvictionRunsMillis, setUrl, setUsername, setValidationQuery, setValidationQueryTimeout, unwrap, validateConnectionFactory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BasicManagedDataSource

public BasicManagedDataSource()
Method Detail

getXaDataSourceInstance

public XADataSource getXaDataSourceInstance()
Gets the XADataSource instance used by the XAConnectionFactory.

Returns:
the XADataSource

setXaDataSourceInstance

public void setXaDataSourceInstance(XADataSource xaDataSourceInstance)

Sets the XADataSource instance used by the XAConnectionFactory.

Note: this method currently has no effect once the pool has been initialized. The pool is initialized the first time one of the following methods is invoked: getConnection, setLogwriter, setLoginTimeout, getLoginTimeout, getLogWriter.

Parameters:
xaDataSourceInstance - XADataSource instance

getTransactionManager

public TransactionManager getTransactionManager()
Gets the required transaction manager property.

Returns:
the transaction manager used to enlist connections

getTransactionRegistry

protected TransactionRegistry getTransactionRegistry()
Gets the transaction registry.

Returns:
the transaction registry associating XAResources with managed connections

setTransactionManager

public void setTransactionManager(TransactionManager transactionManager)
Sets the required transaction manager property.

Parameters:
transactionManager - the transaction manager used to enlist connections

getXADataSource

public String getXADataSource()
Gets the optional XADataSource class name.

Returns:
the optional XADataSource class name

setXADataSource

public void setXADataSource(String xaDataSource)
Sets the optional XADataSource class name.

Parameters:
xaDataSource - the optional XADataSource class name

createConnectionFactory

protected ConnectionFactory createConnectionFactory()
                                             throws SQLException
Description copied from class: BasicDataSource
Creates a JDBC connection factory for this datasource. This method only exists so subclasses can replace the implementation class.

Overrides:
createConnectionFactory in class BasicDataSource
Throws:
SQLException

createDataSourceInstance

protected void createDataSourceInstance()
                                 throws SQLException
Description copied from class: BasicDataSource
Creates the actual data source instance. This method only exists so subclasses can replace the implementation class.

Overrides:
createDataSourceInstance in class BasicDataSource
Throws:
SQLException - if unable to create a datasource instance

createPoolableConnectionFactory

protected void createPoolableConnectionFactory(ConnectionFactory driverConnectionFactory,
                                               KeyedObjectPoolFactory statementPoolFactory,
                                               AbandonedConfig abandonedConfig)
                                        throws SQLException
Creates the PoolableConnectionFactory and attaches it to the connection pool.

Overrides:
createPoolableConnectionFactory in class BasicDataSource
Parameters:
driverConnectionFactory - JDBC connection factory created by createConnectionFactory()
statementPoolFactory - statement pool factory (null if statement pooling is turned off)
abandonedConfig - abandoned connection tracking configuration (null if no tracking)
Throws:
SQLException - if an error occurs creating the PoolableConnectionFactory


Copyright © 2001-2010 The Apache Software Foundation. All Rights Reserved.