|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.commons.dbcp.BasicDataSource
public class BasicDataSource
Basic implementation of javax.sql.DataSource
that is
configured via JavaBeans properties. This is not the only way to
combine the commons-dbcp and commons-pool packages,
but provides a "one stop shopping" solution for basic requirements.
Users extending this class should take care to use appropriate accessors rather than accessing protected fields directly to ensure thread-safety.
Field Summary | |
---|---|
protected boolean |
closed
|
protected List |
connectionInitSqls
These SQL statements run once after a Connection is created. |
protected GenericObjectPool |
connectionPool
The object pool that internally manages our connections. |
protected Properties |
connectionProperties
The connection properties that will be sent to our JDBC driver when establishing new connections. |
protected DataSource |
dataSource
The data source we will use to manage connections. |
protected boolean |
defaultAutoCommit
The default auto-commit state of connections created by this pool. |
protected String |
defaultCatalog
The default "catalog" of connections created by this pool. |
protected Boolean |
defaultReadOnly
The default read-only state of connections created by this pool. |
protected int |
defaultTransactionIsolation
The default TransactionIsolation state of connections created by this pool. |
protected ClassLoader |
driverClassLoader
The class loader instance to use to load the JDBC driver. |
protected String |
driverClassName
The fully qualified Java class name of the JDBC driver to be used. |
protected int |
initialSize
The initial number of connections that are created when the pool is started. |
protected PrintWriter |
logWriter
The PrintWriter to which log messages should be directed. |
protected int |
maxActive
The maximum number of active connections that can be allocated from this pool at the same time, or negative for no limit. |
protected int |
maxIdle
The maximum number of connections that can remain idle in the pool, without extra ones being released, or negative for no limit. |
protected int |
maxOpenPreparedStatements
The maximum number of open statements that can be allocated from the statement pool at the same time, or non-positive for no limit. |
protected long |
maxWait
The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception, or <= 0 to wait indefinitely. |
protected long |
minEvictableIdleTimeMillis
The minimum amount of time an object may sit idle in the pool before it is eligable for eviction by the idle object evictor (if any). |
protected int |
minIdle
The minimum number of active connections that can remain idle in the pool, without extra ones being created, or 0 to create none. |
protected int |
numTestsPerEvictionRun
The number of objects to examine during each run of the idle object evictor thread (if any). |
protected String |
password
The connection password to be passed to our JDBC driver to establish a connection. |
protected boolean |
poolPreparedStatements
Prepared statement pooling for this pool. |
protected boolean |
testOnBorrow
The indication of whether objects will be validated before being borrowed from the pool. |
protected boolean |
testOnReturn
The indication of whether objects will be validated before being returned to the pool. |
protected boolean |
testWhileIdle
The indication of whether objects will be validated by the idle object evictor (if any). |
protected long |
timeBetweenEvictionRunsMillis
The number of milliseconds to sleep between runs of the idle object evictor thread. |
protected String |
url
The connection URL to be passed to our JDBC driver to establish a connection. |
protected String |
username
The connection username to be passed to our JDBC driver to establish a connection. |
protected String |
validationQuery
The SQL query that will be used to validate connections from this pool before returning them to the caller. |
protected int |
validationQueryTimeout
Timeout in seconds before connection validation queries fail. |
Constructor Summary | |
---|---|
BasicDataSource()
|
Method Summary | |
---|---|
void |
addConnectionProperty(String name,
String value)
Add a custom connection property to the set that will be passed to our JDBC driver. |
void |
close()
Closes and releases all idle connections that are currently stored in the connection pool associated with this data source. |
protected ConnectionFactory |
createConnectionFactory()
Creates a JDBC connection factory for this datasource. |
protected void |
createConnectionPool()
Creates a connection pool for this datasource. |
protected DataSource |
createDataSource()
Create (if necessary) and return the internal data source we are using to manage our connections. |
protected void |
createDataSourceInstance()
Creates the actual data source instance. |
protected void |
createPoolableConnectionFactory(ConnectionFactory driverConnectionFactory,
KeyedObjectPoolFactory statementPoolFactory,
AbandonedConfig configuration)
Creates the PoolableConnectionFactory and attaches it to the connection pool. |
Connection |
getConnection()
Create (if necessary) and return a connection to the database. |
Connection |
getConnection(String user,
String pass)
BasicDataSource does NOT support this method. |
Collection |
getConnectionInitSqls()
Returns the list of SQL statements executed when a physical connection is first created. |
boolean |
getDefaultAutoCommit()
Returns the default auto-commit property. |
String |
getDefaultCatalog()
Returns the default catalog. |
boolean |
getDefaultReadOnly()
Returns the default readOnly property. |
int |
getDefaultTransactionIsolation()
Returns the default transaction isolation state of returned connections. |
ClassLoader |
getDriverClassLoader()
Returns the class loader specified for loading the JDBC driver. |
String |
getDriverClassName()
Returns the jdbc driver class name. |
int |
getInitialSize()
Returns the initial size of the connection pool. |
boolean |
getLogAbandoned()
Flag to log stack traces for application code which abandoned a Statement or Connection. |
int |
getLoginTimeout()
BasicDataSource does NOT support this method. |
PrintWriter |
getLogWriter()
Returns the log writer being used by this data source. |
int |
getMaxActive()
Returns the maximum number of active connections that can be allocated at the same time. |
int |
getMaxIdle()
Returns the maximum number of connections that can remain idle in the pool. |
int |
getMaxOpenPreparedStatements()
Gets the value of the maxOpenPreparedStatements property. |
long |
getMaxWait()
Returns the maximum number of milliseconds that the pool will wait for a connection to be returned before throwing an exception. |
long |
getMinEvictableIdleTimeMillis()
Returns the minEvictableIdleTimeMillis property. |
int |
getMinIdle()
Returns the minimum number of idle connections in the pool |
int |
getNumActive()
[Read Only] The current number of active connections that have been allocated from this data source. |
int |
getNumIdle()
[Read Only] The current number of idle connections that are waiting to be allocated from this data source. |
int |
getNumTestsPerEvictionRun()
Returns the value of the numTestsPerEvictionRun property. |
String |
getPassword()
Returns the password passed to the JDBC driver to establish connections. |
boolean |
getRemoveAbandoned()
Flag to remove abandoned connections if they exceed the removeAbandonedTimout. |
int |
getRemoveAbandonedTimeout()
Timeout in seconds before an abandoned connection can be removed. |
boolean |
getTestOnBorrow()
Returns the testOnBorrow property. |
boolean |
getTestOnReturn()
Returns the value of the testOnReturn property. |
boolean |
getTestWhileIdle()
Returns the value of the testWhileIdle property. |
long |
getTimeBetweenEvictionRunsMillis()
Returns the value of the timeBetweenEvictionRunsMillis
property. |
String |
getUrl()
Returns the JDBC connection url property. |
String |
getUsername()
Returns the JDBC connection username property. |
String |
getValidationQuery()
Returns the validation query used to validate connections before returning them. |
int |
getValidationQueryTimeout()
Returns the validation query timeout. |
boolean |
isAccessToUnderlyingConnectionAllowed()
Returns the value of the accessToUnderlyingConnectionAllowed property. |
boolean |
isClosed()
If true, this data source is closed and no more connections can be retrieved from this datasource. |
boolean |
isPoolPreparedStatements()
Returns true if we are pooling statements. |
protected void |
log(String message)
|
void |
removeConnectionProperty(String name)
Remove a custom connection property. |
void |
setAccessToUnderlyingConnectionAllowed(boolean allow)
Sets the value of the accessToUnderlyingConnectionAllowed property. |
void |
setConnectionInitSqls(Collection connectionInitSqls)
Sets the list of SQL statements to be executed when a physical connection is first created. |
void |
setConnectionProperties(String connectionProperties)
Sets the connection properties passed to driver.connect(...). |
void |
setDefaultAutoCommit(boolean defaultAutoCommit)
Sets default auto-commit state of connections returned by this datasource. |
void |
setDefaultCatalog(String defaultCatalog)
Sets the default catalog. |
void |
setDefaultReadOnly(boolean defaultReadOnly)
Sets defaultReadonly property. |
void |
setDefaultTransactionIsolation(int defaultTransactionIsolation)
Sets the default transaction isolation state for returned connections. |
void |
setDriverClassLoader(ClassLoader driverClassLoader)
Sets the class loader to be used to load the JDBC driver. |
void |
setDriverClassName(String driverClassName)
Sets the jdbc driver class name. |
void |
setInitialSize(int initialSize)
Sets the initial size of the connection pool. |
void |
setLogAbandoned(boolean logAbandoned)
|
void |
setLoginTimeout(int loginTimeout)
BasicDataSource does NOT support this method. |
void |
setLogWriter(PrintWriter logWriter)
Sets the log writer being used by this data source. |
void |
setMaxActive(int maxActive)
Sets the maximum number of active connections that can be allocated at the same time. |
void |
setMaxIdle(int maxIdle)
Sets the maximum number of connections that can remain idle in the pool. |
void |
setMaxOpenPreparedStatements(int maxOpenStatements)
Sets the value of the maxOpenPreparedStatements
property. |
void |
setMaxWait(long maxWait)
Sets the maxWait property. |
void |
setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis)
Sets the minEvictableIdleTimeMillis property. |
void |
setMinIdle(int minIdle)
Sets the minimum number of idle connections in the pool. |
void |
setNumTestsPerEvictionRun(int numTestsPerEvictionRun)
Sets the value of the numTestsPerEvictionRun property. |
void |
setPassword(String password)
Sets the password . |
void |
setPoolPreparedStatements(boolean poolingStatements)
Sets whether to pool statements or not. |
void |
setRemoveAbandoned(boolean removeAbandoned)
|
void |
setRemoveAbandonedTimeout(int removeAbandonedTimeout)
|
void |
setTestOnBorrow(boolean testOnBorrow)
Sets the testOnBorrow property. |
void |
setTestOnReturn(boolean testOnReturn)
Sets the testOnReturn property. |
void |
setTestWhileIdle(boolean testWhileIdle)
Sets the testWhileIdle property. |
void |
setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis)
Sets the timeBetweenEvictionRunsMillis property. |
void |
setUrl(String url)
Sets the url . |
void |
setUsername(String username)
Sets the username . |
void |
setValidationQuery(String validationQuery)
Sets the validationQuery . |
void |
setValidationQueryTimeout(int timeout)
Sets the validation query timeout, the amount of time, in seconds, that connection validation will wait for a response from the database when executing a validation query. |
protected static void |
validateConnectionFactory(PoolableConnectionFactory connectionFactory)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected volatile boolean defaultAutoCommit
protected transient Boolean defaultReadOnly
protected volatile int defaultTransactionIsolation
protected volatile String defaultCatalog
protected String driverClassName
protected ClassLoader driverClassLoader
Class.forName(String)
is used to load the JDBC driver.
If specified, Class.forName(String, boolean, ClassLoader)
is
used.
protected int maxActive
protected int maxIdle
protected int minIdle
protected int initialSize
protected long maxWait
protected boolean poolPreparedStatements
true
both PreparedStatements and CallableStatements are pooled.
protected int maxOpenPreparedStatements
The maximum number of open statements that can be allocated from the statement pool at the same time, or non-positive for no limit. Since a connection usually only uses one or two statements at a time, this is mostly used to help detect resource leaks.
Note: As of version 1.3, CallableStatements (those produced by Connection.prepareCall(java.lang.String)
)
are pooled along with PreparedStatements (produced by Connection.prepareStatement(java.lang.String)
)
and maxOpenPreparedStatements
limits the total number of prepared or callable statements
that may be in use at a given time.
protected boolean testOnBorrow
protected boolean testOnReturn
protected long timeBetweenEvictionRunsMillis
protected int numTestsPerEvictionRun
protected long minEvictableIdleTimeMillis
protected boolean testWhileIdle
protected volatile String password
protected String url
protected String username
protected volatile String validationQuery
protected volatile int validationQueryTimeout
protected volatile List connectionInitSqls
This property can be used for example to run ALTER SESSION SET NLS_SORT=XCYECH in an Oracle Database only once after connection creation.
protected volatile GenericObjectPool connectionPool
protected Properties connectionProperties
protected volatile DataSource dataSource
createDataSource()
method.
protected PrintWriter logWriter
protected boolean closed
Constructor Detail |
---|
public BasicDataSource()
Method Detail |
---|
public boolean getDefaultAutoCommit()
public void setDefaultAutoCommit(boolean defaultAutoCommit)
Sets default auto-commit state of connections returned by this datasource.
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.
defaultAutoCommit
- default auto-commit valuepublic boolean getDefaultReadOnly()
public void setDefaultReadOnly(boolean defaultReadOnly)
Sets defaultReadonly property.
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.
defaultReadOnly
- default read-only valuepublic int getDefaultTransactionIsolation()
Connection.getTransactionIsolation()
public void setDefaultTransactionIsolation(int defaultTransactionIsolation)
Sets the default transaction isolation state for returned connections.
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.
defaultTransactionIsolation
- the default transaction isolation
stateConnection.getTransactionIsolation()
public String getDefaultCatalog()
public void setDefaultCatalog(String defaultCatalog)
Sets the default catalog.
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.
defaultCatalog
- the default catalogpublic String getDriverClassName()
public void setDriverClassName(String driverClassName)
Sets the jdbc driver class name.
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.
driverClassName
- the class name of the jdbc driverpublic ClassLoader getDriverClassLoader()
null
if no class loader has been explicitly specified.
public void setDriverClassLoader(ClassLoader driverClassLoader)
Sets the class loader to be used to load the JDBC driver.
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.
driverClassLoader
- the class loader with which to load the JDBC
driverpublic int getMaxActive()
Returns the maximum number of active connections that can be allocated at the same time.
A negative number means that there is no limit.
public void setMaxActive(int maxActive)
maxActive
- the new value for maxActivegetMaxActive()
public int getMaxIdle()
Returns the maximum number of connections that can remain idle in the pool.
A negative value indicates that there is no limit
public void setMaxIdle(int maxIdle)
maxIdle
- the new value for maxIdlegetMaxIdle()
public int getMinIdle()
GenericObjectPool.getMinIdle()
public void setMinIdle(int minIdle)
minIdle
- the new value for minIdleGenericObjectPool.setMinIdle(int)
public int getInitialSize()
public void setInitialSize(int initialSize)
Sets the initial size of the connection pool.
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.
initialSize
- the number of connections created when the pool
is initializedpublic long getMaxWait()
Returns the maximum number of milliseconds that the pool will wait for a connection to be returned before throwing an exception.
A value less than or equal to zero means the pool is set to wait indefinitely.
public void setMaxWait(long maxWait)
Sets the maxWait property.
Use -1 to make the pool wait indefinitely.
maxWait
- the new value for maxWaitgetMaxWait()
public boolean isPoolPreparedStatements()
public void setPoolPreparedStatements(boolean poolingStatements)
Sets whether to pool statements or not.
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.
poolingStatements
- pooling on or offpublic int getMaxOpenPreparedStatements()
maxOpenPreparedStatements
property.
maxOpenPreparedStatements
public void setMaxOpenPreparedStatements(int maxOpenStatements)
Sets the value of the maxOpenPreparedStatements
property.
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.
maxOpenStatements
- the new maximum number of prepared statementsmaxOpenPreparedStatements
public boolean getTestOnBorrow()
testOnBorrow
property.
testOnBorrow
public void setTestOnBorrow(boolean testOnBorrow)
testOnBorrow
property. This property determines
whether or not the pool will validate objects before they are borrowed
from the pool. For a true
value to have any effect, the
validationQuery
property must be set to a non-null string.
testOnBorrow
- new value for testOnBorrow propertypublic boolean getTestOnReturn()
testOnReturn
property.
testOnReturn
public void setTestOnReturn(boolean testOnReturn)
testOnReturn
property. This property determines
whether or not the pool will validate objects before they are returned
to the pool. For a true
value to have any effect, the
validationQuery
property must be set to a non-null string.
testOnReturn
- new value for testOnReturn propertypublic long getTimeBetweenEvictionRunsMillis()
timeBetweenEvictionRunsMillis
property.
timeBetweenEvictionRunsMillis
public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis)
timeBetweenEvictionRunsMillis
property.
timeBetweenEvictionRunsMillis
- the new time between evictor runstimeBetweenEvictionRunsMillis
public int getNumTestsPerEvictionRun()
numTestsPerEvictionRun
property.
numTestsPerEvictionRun
public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun)
numTestsPerEvictionRun
property.
numTestsPerEvictionRun
- the new numTestsPerEvictionRun
valuenumTestsPerEvictionRun
public long getMinEvictableIdleTimeMillis()
minEvictableIdleTimeMillis
property.
minEvictableIdleTimeMillis
propertyminEvictableIdleTimeMillis
public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis)
minEvictableIdleTimeMillis
property.
minEvictableIdleTimeMillis
- the minimum amount of time an object
may sit idle in the poolminEvictableIdleTimeMillis
public boolean getTestWhileIdle()
testWhileIdle
property.
testWhileIdle
public void setTestWhileIdle(boolean testWhileIdle)
testWhileIdle
property. This property determines
whether or not the idle object evictor will validate connections. For a
true
value to have any effect, the
validationQuery
property must be set to a non-null string.
testWhileIdle
- new value for testWhileIdle propertypublic int getNumActive()
public int getNumIdle()
public String getPassword()
public void setPassword(String password)
Sets the password
.
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.
password
- new value for the passwordpublic String getUrl()
url
property.
url
passed to the JDBC driver to establish
connectionspublic void setUrl(String url)
Sets the url
.
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.
url
- the new value for the JDBC connection urlpublic String getUsername()
username
property.
username
passed to the JDBC driver to establish
connectionspublic void setUsername(String username)
Sets the username
.
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.
username
- the new value for the JDBC connection usernamepublic String getValidationQuery()
validationQuery
public void setValidationQuery(String validationQuery)
Sets the validationQuery
.
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.
validationQuery
- the new value for the validation querypublic int getValidationQueryTimeout()
public void setValidationQueryTimeout(int timeout)
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.
timeout
- new validation query timeout value in secondspublic Collection getConnectionInitSqls()
public void setConnectionInitSqls(Collection connectionInitSqls)
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.
connectionInitSqls
- Collection of SQL statements to execute
on connection creationpublic boolean isAccessToUnderlyingConnectionAllowed()
public void setAccessToUnderlyingConnectionAllowed(boolean allow)
Sets the value of the accessToUnderlyingConnectionAllowed property. It controls if the PoolGuard allows access to the underlying connection. (Default: false)
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.
allow
- Access to the underlying connection is granted when true.public Connection getConnection() throws SQLException
getConnection
in interface DataSource
SQLException
- if a database access error occurspublic Connection getConnection(String user, String pass) throws SQLException
getConnection
in interface DataSource
user
- Database user on whose behalf the Connection
is being madepass
- The database user's password
UnsupportedOperationException
SQLException
- if a database access error occurspublic int getLoginTimeout() throws SQLException
Returns the login timeout (in seconds) for connecting to the database.
Calls createDataSource()
, so has the side effect
of initializing the connection pool.
getLoginTimeout
in interface DataSource
SQLException
- if a database access error occurs
UnsupportedOperationException
- If the DataSource implementation
does not support the login timeout feature.public PrintWriter getLogWriter() throws SQLException
Returns the log writer being used by this data source.
Calls createDataSource()
, so has the side effect
of initializing the connection pool.
getLogWriter
in interface DataSource
SQLException
- if a database access error occurspublic void setLoginTimeout(int loginTimeout) throws SQLException
Set the login timeout (in seconds) for connecting to the database.
Calls createDataSource()
, so has the side effect
of initializing the connection pool.
setLoginTimeout
in interface DataSource
loginTimeout
- The new login timeout, or zero for no timeout
UnsupportedOperationException
- If the DataSource implementation
does not support the login timeout feature.
SQLException
- if a database access error occurspublic void setLogWriter(PrintWriter logWriter) throws SQLException
Sets the log writer being used by this data source.
Calls createDataSource()
, so has the side effect
of initializing the connection pool.
setLogWriter
in interface DataSource
logWriter
- The new log writer
SQLException
- if a database access error occurspublic boolean getRemoveAbandoned()
Abandonded connections are identified and removed when
getConnection()
is invoked and the following conditions hold
getRemoveAbandoned()
= true getNumActive()
> getMaxActive()
- 3 getNumIdle()
< 2
public void setRemoveAbandoned(boolean removeAbandoned)
removeAbandoned
- new removeAbandoned property valuegetRemoveAbandoned()
public int getRemoveAbandonedTimeout()
public void setRemoveAbandonedTimeout(int removeAbandonedTimeout)
removeAbandonedTimeout
- new removeAbandonedTimeout valuepublic boolean getLogAbandoned()
Flag to log stack traces for application code which abandoned a Statement or Connection.
Defaults to false.
Logging of abandoned Statements and Connections adds overhead for every Connection open or new Statement because a stack trace has to be generated.
public void setLogAbandoned(boolean logAbandoned)
logAbandoned
- new logAbandoned property valuepublic void addConnectionProperty(String name, String value)
name
- Name of the custom connection propertyvalue
- Value of the custom connection propertypublic void removeConnectionProperty(String name)
name
- Name of the custom connection property to removeaddConnectionProperty(String, String)
public void setConnectionProperties(String connectionProperties)
connectionProperties
- the connection properties used to
create new connectionspublic void close() throws SQLException
Closes and releases all idle connections that are currently stored in the connection pool associated with this data source.
Connections that are checked out to clients when this method is invoked are not affected.
When client applications subsequently invoke Connection.close()
to return
these connections to the pool, the underlying JDBC connections are closed.
Attempts to acquire connections using getConnection()
after this method has been
invoked result in SQLExceptions.
This method is idempotent - i.e., closing an already closed BasicDataSource has no effect and does not generate exceptions.
SQLException
- if an error occurs closing idle connectionspublic boolean isClosed()
protected DataSource createDataSource() throws SQLException
Create (if necessary) and return the internal data source we are using to manage our connections.
IMPLEMENTATION NOTE - It is tempting to use the "double checked locking" idiom in an attempt to avoid synchronizing on every single call to this method. However, this idiom fails to work correctly in the face of some optimizations that are legal for a JVM to perform.
SQLException
- if the object pool cannot be created.protected ConnectionFactory createConnectionFactory() throws SQLException
SQLException
protected void createConnectionPool()
protected void createDataSourceInstance() throws SQLException
SQLException
- if unable to create a datasource instanceprotected void createPoolableConnectionFactory(ConnectionFactory driverConnectionFactory, KeyedObjectPoolFactory statementPoolFactory, AbandonedConfig configuration) throws SQLException
driverConnectionFactory
- JDBC connection factorystatementPoolFactory
- statement pool factory (null if statement pooling is turned off)configuration
- abandoned connection tracking configuration (null if no tracking)
SQLException
- if an error occurs creating the PoolableConnectionFactoryprotected static void validateConnectionFactory(PoolableConnectionFactory connectionFactory) throws Exception
Exception
protected void log(String message)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |