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 enlist 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.
BasicDataSource
,
ManagedConnection
Constructor and Description |
---|
BasicManagedDataSource() |
Modifier and Type | Method and Description |
---|---|
protected ConnectionFactory |
createConnectionFactory()
Creates a JDBC connection factory for this datasource.
|
protected DataSource |
createDataSourceInstance()
Creates the actual data source instance.
|
protected PoolableConnectionFactory |
createPoolableConnectionFactory(ConnectionFactory driverConnectionFactory)
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.
|
addConnectionProperty, close, createConnectionPool, createDataSource, createObjectPool, getAbandonedLogWriter, getAbandonedUsageTracking, getCacheState, getConnection, getConnection, getConnectionInitSqls, getConnectionInitSqlsAsArray, getConnectionPool, getDefaultAutoCommit, getDefaultCatalog, getDefaultQueryTimeout, getDefaultReadOnly, getDefaultTransactionIsolation, getDisconnectionSqlCodes, getDisconnectionSqlCodesAsArray, getDriver, getDriverClassLoader, getDriverClassName, getEnableAutoCommitOnReturn, getEvictionPolicyClassName, getFastFailValidation, getInitialSize, getJmxName, getLifo, getLogAbandoned, getLogExpiredConnections, getLoginTimeout, getLogWriter, getMaxConnLifetimeMillis, getMaxIdle, getMaxOpenPreparedStatements, getMaxTotal, getMaxWaitMillis, getMinEvictableIdleTimeMillis, getMinIdle, getNumActive, getNumIdle, getNumTestsPerEvictionRun, getParentLogger, getPassword, getRegisteredJmxName, getRemoveAbandonedOnBorrow, getRemoveAbandonedOnMaintenance, getRemoveAbandonedTimeout, getRollbackOnReturn, getSoftMinEvictableIdleTimeMillis, getTestOnBorrow, getTestOnCreate, getTestOnReturn, getTestWhileIdle, getTimeBetweenEvictionRunsMillis, getUrl, getUsername, getValidationQuery, getValidationQueryTimeout, invalidateConnection, isAccessToUnderlyingConnectionAllowed, isClosed, isPoolPreparedStatements, isWrapperFor, log, postDeregister, postRegister, preDeregister, preRegister, removeConnectionProperty, setAbandonedLogWriter, setAbandonedUsageTracking, setAccessToUnderlyingConnectionAllowed, setCacheState, setConnectionInitSqls, setConnectionProperties, setDefaultAutoCommit, setDefaultCatalog, setDefaultQueryTimeout, setDefaultReadOnly, setDefaultTransactionIsolation, setDisconnectionSqlCodes, setDriver, setDriverClassLoader, setDriverClassName, setEnableAutoCommitOnReturn, setEvictionPolicyClassName, setFastFailValidation, setInitialSize, setJmxName, setLifo, setLogAbandoned, setLogExpiredConnections, setLoginTimeout, setLogWriter, setMaxConnLifetimeMillis, setMaxIdle, setMaxOpenPreparedStatements, setMaxTotal, setMaxWaitMillis, setMinEvictableIdleTimeMillis, setMinIdle, setNumTestsPerEvictionRun, setPassword, setPoolPreparedStatements, setRemoveAbandonedOnBorrow, setRemoveAbandonedOnMaintenance, setRemoveAbandonedTimeout, setRollbackOnReturn, setSoftMinEvictableIdleTimeMillis, setTestOnBorrow, setTestOnCreate, setTestOnReturn, setTestWhileIdle, setTimeBetweenEvictionRunsMillis, setUrl, setUsername, setValidationQuery, setValidationQueryTimeout, startPoolMaintenance, unwrap, validateConnectionFactory
public BasicManagedDataSource()
public XADataSource getXaDataSourceInstance()
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.
xaDataSourceInstance
- XADataSource instancepublic TransactionManager getTransactionManager()
protected TransactionRegistry getTransactionRegistry()
public void setTransactionManager(TransactionManager transactionManager)
transactionManager
- the transaction manager used to enlist connectionspublic String getXADataSource()
public void setXADataSource(String xaDataSource)
xaDataSource
- the optional XADataSource class nameprotected ConnectionFactory createConnectionFactory() throws SQLException
BasicDataSource
BasicDataSource.setDriver(Driver)
use itBasicDataSource.driverClassName
is
specified that class is loaded using the ClassLoader
of this
class or, if BasicDataSource.driverClassLoader
is set, BasicDataSource.driverClassName
is loaded with the specified ClassLoader
.BasicDataSource.driverClassName
is specified and the previous attempt
fails, the class is loaded using the context class loader of the current
thread.DriverManager
using the specified BasicDataSource.url
.
createConnectionFactory
in class BasicDataSource
SQLException
protected DataSource createDataSourceInstance() throws SQLException
BasicDataSource
createDataSourceInstance
in class BasicDataSource
SQLException
- if unable to create a datasource instanceprotected PoolableConnectionFactory createPoolableConnectionFactory(ConnectionFactory driverConnectionFactory) throws SQLException
createPoolableConnectionFactory
in class BasicDataSource
driverConnectionFactory
- JDBC connection factory created by createConnectionFactory()
SQLException
- if an error occurs creating the PoolableConnectionFactoryCopyright © 2001–2017 The Apache Software Foundation. All rights reserved.