Class BasicDataSource
- All Implemented Interfaces:
- AutoCloseable,- Wrapper,- MBeanRegistration,- CommonDataSource,- DataSource,- BasicDataSourceMXBean,- DataSourceMXBean
- Direct Known Subclasses:
- BasicManagedDataSource
javax.sql.DataSource that is configured via JavaBeans properties.
 This is not the only way to combine the commons-dbcp2 and commons-pool2 packages, but provides a one-stop solution for basic requirements.
- Since:
- 2.0
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddConnectionProperty(String name, String value) Adds a custom connection property to the set that will be passed to our JDBC driver.voidclose()Closes and releases all idle connections that are currently stored in the connection pool associated with this data source.protected ConnectionFactoryCreates a JDBC connection factory for this data source.protected voidCreates a connection pool for this datasource.protected DataSourceCreates (if necessary) and return the internal data source we are using to manage our connections.protected DataSourceCreates the actual data source instance.protected GenericObjectPool<PoolableConnection>createObjectPool(PoolableConnectionFactory factory, GenericObjectPoolConfig<PoolableConnection> poolConfig, AbandonedConfig abandonedConfig) Creates an object pool used to provide pooling support forJDBC connections.protected PoolableConnectionFactorycreatePoolableConnectionFactory(ConnectionFactory driverConnectionFactory) Creates the PoolableConnectionFactory and attaches it to the connection pool.voidevict()Manually evicts idle connectionsGets the print writer used by this configuration to log information on abandoned objects.booleanIf the connection pool implementsUsageTracking, should the connection pool record a stack trace every time a method is called on a pooled connection and retain the most recent stack trace to aid debugging of abandoned connections?booleanGets the value of the flag that controls whether or not connections being returned to the pool will be checked and configured withConnection.setAutoCommit(true)if the auto commit setting isfalsewhen the connection is returned.booleanGets the state caching flag.Creates (if necessary) and return a connection to the database.getConnection(String user, String pass) BasicDataSource does NOT support this method.Gets the ConnectionFactoryClassName that has been configured for use by this pool.Gets the list of SQL statements executed when a physical connection is first created.String[]Provides the same data asgetConnectionInitSqls()but in an array so it is accessible via JMX.protected GenericObjectPool<PoolableConnection>Gets the underlying connection pool.Gets the default auto-commit property.Gets the default catalog.Deprecated.Gets the default query timeout that will be used forStatements created from this connection.Gets the default readOnly property.Gets the default schema.intGets the default transaction isolation state of returned connections.Gets the set of SQL_STATE codes considered to signal fatal conditions.String[]Provides the same data asgetDisconnectionSqlCodes()but in an array so it is accessible via JMX.Gets the JDBC Driver that has been configured for use by this pool.Gets the class loader specified for loading the JDBC driver.Gets the JDBC driver class name.Gets the value of the {code durationBetweenEvictionRuns} property.booleanDeprecated.Gets the EvictionPolicy implementation in use with this connection pool.booleanTrue means that validation will fail immediately for connections that have previously thrown SQLExceptions with SQL_STATE indicating fatal disconnection errors.intGets the initial size of the connection pool.Gets the JMX name that has been requested for this DataSource.booleangetLifo()Gets the LIFO property.booleanFlag to log stack traces for application code which abandoned a Statement or Connection.booleanWhengetMaxConnDuration()is set to limit connection lifetime, this property determines whether or not log messages are generated when the pool closes connections due to maximum lifetime exceeded.intBasicDataSource does NOT support this method.Gets the log writer being used by this data source.Gets the maximum permitted duration of a connection.longDeprecated.UsegetMaxConnDuration().intGets the maximum number of connections that can remain idle in the pool.intGets the value of themaxOpenPreparedStatementsproperty.intGets the maximum number of active connections that can be allocated at the same time.Gets the maximum Duration that the pool will wait for a connection to be returned before throwing an exception.longDeprecated.UsegetMaxWaitDuration().Gets the {code minEvictableIdleDuration} property.longDeprecated.intGets the minimum number of idle connections in the pool.int[Read Only] The current number of active connections that have been allocated from this data source.int[Read Only] The current number of idle connections that are waiting to be allocated from this data source.intGets the value of the {code numTestsPerEvictionRun} property.Gets the password passed to the JDBC driver to establish connections.protected ObjectNameGets the registered JMX ObjectName.booleanFlag to remove abandoned connections if they exceed the removeAbandonedTimeout when borrowObject is invoked.booleanFlag to remove abandoned connections if they exceed the removeAbandonedTimeout during pool maintenance.intDeprecated.Gets the timeout before an abandoned connection can be removed.booleanGets the current value of the flag that controls whether a connection will be rolled back when it is returned to the pool if auto commit is not enabled and the connection is not read only.Gets the minimum amount of time a connection may sit idle in the pool before it is eligible for eviction by the idle object evictor, with the extra condition that at least "minIdle" connections remain in the pool.longDeprecated.booleanGets the {code testOnBorrow} property.booleanGets the {code testOnCreate} property.booleanGets the value of the {code testOnReturn} property.booleanGets the value of the {code testWhileIdle} property.longDeprecated.getUrl()Gets the JDBC connection {code connectionString} property.Gets the JDBC connection {code userName} property.Gets the validation query used to validate connections before returning them.intDeprecated.Gets the validation query timeout.voidinvalidateConnection(Connection connection) Manually invalidates a connection, effectively requesting the pool to try to close it, remove it from the pool and reclaim pool capacity.booleanGets the value of the accessToUnderlyingConnectionAllowed property.booleanReturns true if the statement pool is cleared when the connection is returned to its pool.booleanisClosed()If true, this data source is closed and no more connections can be retrieved from this data source.booleanReturns true if we are pooling statements.booleanisWrapperFor(Class<?> iface) protected voidLogs the given message.protected voidLogs the given throwable.voidvoidpostRegister(Boolean registrationDone) voidpreRegister(MBeanServer server, ObjectName objectName) voidRemoves a custom connection property.voidrestart()Restarts the datasource.voidsetAbandonedLogWriter(PrintWriter logWriter) Sets the print writer to be used by this configuration to log information on abandoned objects.voidsetAbandonedUsageTracking(boolean usageTracking) If the connection pool implementsUsageTracking, configure whether the connection pool should record a stack trace every time a method is called on a pooled connection and retain the most recent stack trace to aid debugging of abandoned connections.voidsetAccessToUnderlyingConnectionAllowed(boolean allow) Sets the value of the accessToUnderlyingConnectionAllowed property.voidsetAutoCommitOnReturn(boolean autoCommitOnReturn) Sets the value of the flag that controls whether or not connections being returned to the pool will be checked and configured withConnection.setAutoCommit(true)if the auto commit setting isfalsewhen the connection is returned.voidsetCacheState(boolean cacheState) Sets the state caching flag.voidsetClearStatementPoolOnReturn(boolean clearStatementPoolOnReturn) Sets whether the pool of statements (which was enabled withsetPoolPreparedStatements(boolean)) should be cleared when the connection is returned to its pool.voidsetConnectionFactoryClassName(String connectionFactoryClassName) Sets the ConnectionFactory class name.voidsetConnectionInitSqls(Collection<String> connectionInitSqls) Sets the list of SQL statements to be executed when a physical connection is first created.voidsetConnectionProperties(String connectionProperties) Sets the connection properties passed to driver.connect(...).voidsetDefaultAutoCommit(Boolean defaultAutoCommit) Sets default auto-commit state of connections returned by this datasource.voidsetDefaultCatalog(String defaultCatalog) Sets the default catalog.voidsetDefaultQueryTimeout(Integer defaultQueryTimeoutSeconds) Deprecated.voidsetDefaultQueryTimeout(Duration defaultQueryTimeoutDuration) Sets the default query timeout that will be used forStatements created from this connection.voidsetDefaultReadOnly(Boolean defaultReadOnly) Sets defaultReadonly property.voidsetDefaultSchema(String defaultSchema) Sets the default schema.voidsetDefaultTransactionIsolation(int defaultTransactionIsolation) Sets the default transaction isolation state for returned connections.voidsetDisconnectionSqlCodes(Collection<String> disconnectionSqlCodes) Sets the SQL_STATE codes considered to signal fatal conditions.voidSets the JDBC Driver instance to use for this pool.voidsetDriverClassLoader(ClassLoader driverClassLoader) Sets the class loader to be used to load the JDBC driver.voidsetDriverClassName(String driverClassName) Sets the JDBC driver class name.voidsetDurationBetweenEvictionRuns(Duration timeBetweenEvictionRunsMillis) Sets the {code durationBetweenEvictionRuns} property.voidsetEnableAutoCommitOnReturn(boolean autoCommitOnReturn) Deprecated.voidsetEvictionPolicyClassName(String evictionPolicyClassName) Sets the EvictionPolicy implementation to use with this connection pool.voidsetFastFailValidation(boolean fastFailValidation) voidsetInitialSize(int initialSize) Sets the initial size of the connection pool.voidsetJmxName(String jmxName) Sets the JMX name that has been requested for this DataSource.voidsetLifo(boolean lifo) Sets the LIFO property.voidsetLogAbandoned(boolean logAbandoned) voidsetLogExpiredConnections(boolean logExpiredConnections) WhengetMaxConnDuration()is set to limit connection lifetime, this property determines whether or not log messages are generated when the pool closes connections due to maximum lifetime exceeded.voidsetLoginTimeout(int loginTimeout) BasicDataSource does NOT support this method.voidsetLogWriter(PrintWriter logWriter) Sets the log writer being used by this data source.voidsetMaxConn(Duration maxConnDuration) Sets the maximum permitted lifetime of a connection.voidsetMaxConnLifetimeMillis(long maxConnLifetimeMillis) Deprecated.UsesetMaxConn(Duration).voidsetMaxIdle(int maxIdle) Sets the maximum number of connections that can remain idle in the pool.voidsetMaxOpenPreparedStatements(int maxOpenStatements) Sets the value of themaxOpenPreparedStatementsproperty.voidsetMaxTotal(int maxTotal) Sets the maximum total number of idle and borrows connections that can be active at the same time.voidsetMaxWait(Duration maxWaitDuration) Sets the MaxWaitMillis property.voidsetMaxWaitMillis(long maxWaitMillis) Deprecated.voidsetMinEvictableIdle(Duration minEvictableIdleDuration) Sets the {code minEvictableIdleDuration} property.voidsetMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) Deprecated.voidsetMinIdle(int minIdle) Sets the minimum number of idle connections in the pool.voidsetNumTestsPerEvictionRun(int numTestsPerEvictionRun) Sets the value of the {code numTestsPerEvictionRun} property.voidsetPassword(String password) Sets the {code password}.voidsetPoolPreparedStatements(boolean poolingStatements) Sets whether to pool statements or not.voidsetRegisterConnectionMBean(boolean registerConnectionMBean) Sets if connection level JMX tracking is requested for this DataSource.voidsetRemoveAbandonedOnBorrow(boolean removeAbandonedOnBorrow) voidsetRemoveAbandonedOnMaintenance(boolean removeAbandonedOnMaintenance) voidsetRemoveAbandonedTimeout(int removeAbandonedTimeout) Deprecated.voidsetRemoveAbandonedTimeout(Duration removeAbandonedTimeout) Sets the timeout before an abandoned connection can be removed.voidsetRollbackOnReturn(boolean rollbackOnReturn) Sets the flag that controls if a connection will be rolled back when it is returned to the pool if auto commit is not enabled and the connection is not read only.voidsetSoftMinEvictableIdle(Duration softMinEvictableIdleTimeMillis) Sets the minimum amount of time a connection may sit idle in the pool before it is eligible for eviction by the idle object evictor, with the extra condition that at least "minIdle" connections remain in the pool.voidsetSoftMinEvictableIdleTimeMillis(long softMinEvictableIdleTimeMillis) Deprecated.voidsetTestOnBorrow(boolean testOnBorrow) Sets the {code testOnBorrow} property.voidsetTestOnCreate(boolean testOnCreate) Sets the {code testOnCreate} property.voidsetTestOnReturn(boolean testOnReturn) Sets thetestOnReturnproperty.voidsetTestWhileIdle(boolean testWhileIdle) Sets thetestWhileIdleproperty.voidsetTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) Deprecated.voidSets the {code connection string}.voidsetUsername(String userName) Sets the {code userName}.voidsetValidationQuery(String validationQuery) Sets the {code validationQuery}.voidsetValidationQueryTimeout(int validationQueryTimeoutSeconds) Deprecated.voidsetValidationQueryTimeout(Duration validationQueryTimeoutDuration) 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.voidstart()Starts the datasource.protected voidStarts the connection pool maintenance task, if configured.<T> Tprotected static voidvalidateConnectionFactory(PoolableConnectionFactory connectionFactory) Validates the given factory.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface javax.sql.CommonDataSourcecreateShardingKeyBuilderMethods inherited from interface javax.sql.DataSourcecreateConnectionBuilder
- 
Constructor Details- 
BasicDataSourcepublic BasicDataSource()
 
- 
- 
Method Details- 
validateConnectionFactoryprotected static void validateConnectionFactory(PoolableConnectionFactory connectionFactory) throws SQLException Validates the given factory.- Parameters:
- connectionFactory- the factory
- Throws:
- SQLException- Thrown by one of the factory methods while managing a temporary pooled object.
 
- 
addConnectionPropertyAdds a custom connection property to the set that will be passed to our JDBC driver. This MUST be called before the first connection is retrieved (along with all the other configuration property setters). Calls to this method after the connection pool has been initialized have no effect.- Parameters:
- name- Name of the custom connection property
- value- Value of the custom connection property
 
- 
closeCloses 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. To reopen a datasource that has been closed using this method, usestart().This method is idempotent - i.e., closing an already closed BasicDataSource has no effect and does not generate exceptions. - Specified by:
- closein interface- AutoCloseable
- Throws:
- SQLException- if an error occurs closing idle connections
 
- 
createConnectionFactoryCreates a JDBC connection factory for this data source. The JDBC driver is loaded using the following algorithm:- If a Driver instance has been specified via setDriver(Driver)use it
- If no Driver instance was specified and {code driverClassName} is specified that class is loaded using the
 ClassLoaderof this class or, if {code driverClassLoader} is set, {code driverClassName} is loaded with the specifiedClassLoader.
- If {code driverClassName} is specified and the previous attempt fails, the class is loaded using the context class loader of the current thread.
- If a driver still isn't loaded one is loaded via the DriverManagerusing the specified {code connectionString}.
 This method exists so subclasses can replace the implementation class. - Returns:
- A new connection factory.
- Throws:
- SQLException- If the connection factory cannot be created
 
- If a Driver instance has been specified via 
- 
createConnectionPoolCreates a connection pool for this datasource. This method only exists so subclasses can replace the implementation class.This implementation configures all pool properties other than timeBetweenEvictionRunsMillis. Setting that property is deferred to startPoolMaintenance(), since setting timeBetweenEvictionRunsMillis to a positive value causesGenericObjectPool's eviction timer to be started.- Parameters:
- factory- The factory to use to create new connections for this pool.
 
- 
createDataSourceCreates (if necessary) and return the internal data source we are using to manage our connections.- Returns:
- The current internal DataSource or a newly created instance if it has not yet been created.
- Throws:
- SQLException- if the object pool cannot be created.
 
- 
createDataSourceInstanceCreates the actual data source instance. This method only exists so that subclasses can replace the implementation class.- Returns:
- A new DataSource instance
- Throws:
- SQLException- if unable to create a datasource instance
 
- 
createObjectPoolprotected GenericObjectPool<PoolableConnection> createObjectPool(PoolableConnectionFactory factory, GenericObjectPoolConfig<PoolableConnection> poolConfig, AbandonedConfig abandonedConfig) Creates an object pool used to provide pooling support forJDBC connections.- Parameters:
- factory- the object factory
- poolConfig- the object pool configuration
- abandonedConfig- the abandoned objects configuration
- Returns:
- a non-null instance
 
- 
createPoolableConnectionFactoryprotected PoolableConnectionFactory createPoolableConnectionFactory(ConnectionFactory driverConnectionFactory) throws SQLException Creates the PoolableConnectionFactory and attaches it to the connection pool. This method only exists so subclasses can replace the default implementation.- Parameters:
- driverConnectionFactory- JDBC connection factory
- Returns:
- A new PoolableConnectionFactory configured with the current configuration of this BasicDataSource
- Throws:
- SQLException- if an error occurs creating the PoolableConnectionFactory
 
- 
evictManually evicts idle connections- Throws:
- Exception- when there is a problem evicting idle objects.
 
- 
getAbandonedLogWriterGets the print writer used by this configuration to log information on abandoned objects.- Returns:
- The print writer used by this configuration to log information on abandoned objects.
 
- 
getAbandonedUsageTrackingpublic boolean getAbandonedUsageTracking()If the connection pool implementsUsageTracking, should the connection pool record a stack trace every time a method is called on a pooled connection and retain the most recent stack trace to aid debugging of abandoned connections?- Specified by:
- getAbandonedUsageTrackingin interface- DataSourceMXBean
- Returns:
- trueif usage tracking is enabled
 
- 
getAutoCommitOnReturnpublic boolean getAutoCommitOnReturn()Gets the value of the flag that controls whether or not connections being returned to the pool will be checked and configured withConnection.setAutoCommit(true)if the auto commit setting isfalsewhen the connection is returned. It istrueby default.- Returns:
- Whether or not connections being returned to the pool will be checked and configured with auto-commit.
 
- 
getCacheStatepublic boolean getCacheState()Gets the state caching flag.- Specified by:
- getCacheStatein interface- DataSourceMXBean
- Returns:
- the state caching flag
 
- 
getConnectionCreates (if necessary) and return a connection to the database.- Specified by:
- getConnectionin interface- DataSource
- Returns:
- a database connection
- Throws:
- SQLException- if a database access error occurs
 
- 
getConnectionBasicDataSource does NOT support this method.- Specified by:
- getConnectionin interface- DataSource
- Parameters:
- user- Database user on whose behalf the Connection is being made
- pass- The database user's password
- Returns:
- nothing - always throws UnsupportedOperationException
- Throws:
- UnsupportedOperationException- always thrown.
- SQLException- if a database access error occurs
 
- 
getConnectionFactoryClassNameGets the ConnectionFactoryClassName that has been configured for use by this pool.Note: This getter only returns the last value set by a call to setConnectionFactoryClassName(String).- Returns:
- the ConnectionFactoryClassName that has been configured for use by this pool.
- Since:
- 2.7.0
 
- 
getConnectionInitSqlsGets the list of SQL statements executed when a physical connection is first created. Returns an empty list if there are no initialization statements configured.- Returns:
- initialization SQL statements
 
- 
getConnectionInitSqlsAsArrayProvides the same data asgetConnectionInitSqls()but in an array so it is accessible via JMX.- Specified by:
- getConnectionInitSqlsAsArrayin interface- DataSourceMXBean
- Returns:
- getConnectionInitSqlsAsArray().
 
- 
getConnectionPoolGets the underlying connection pool.- Returns:
- the underlying connection pool.
 
- 
getDefaultAutoCommitGets the default auto-commit property.- Specified by:
- getDefaultAutoCommitin interface- DataSourceMXBean
- Returns:
- true if default auto-commit is enabled
 
- 
getDefaultCatalogGets the default catalog.- Specified by:
- getDefaultCatalogin interface- DataSourceMXBean
- Returns:
- the default catalog
 
- 
getDefaultQueryTimeoutDeprecated.Gets the default query timeout that will be used forStatements created from this connection.nullmeans that the driver default will be used.- Returns:
- The default query timeout in seconds.
 
- 
getDefaultQueryTimeoutDurationGets the default query timeout that will be used forStatements created from this connection.nullmeans that the driver default will be used.- Returns:
- The default query timeout Duration.
- Since:
- 2.10.0
 
- 
getDefaultReadOnlyGets the default readOnly property.- Specified by:
- getDefaultReadOnlyin interface- DataSourceMXBean
- Returns:
- true if connections are readOnly by default
 
- 
getDefaultSchemaGets the default schema.- Specified by:
- getDefaultSchemain interface- DataSourceMXBean
- Returns:
- the default schema.
- Since:
- 2.5.0
 
- 
getDefaultTransactionIsolationpublic int getDefaultTransactionIsolation()Gets the default transaction isolation state of returned connections.- Specified by:
- getDefaultTransactionIsolationin interface- DataSourceMXBean
- Returns:
- the default value for transaction isolation state
- See Also:
 
- 
getDisconnectionSqlCodesGets the set of SQL_STATE codes considered to signal fatal conditions.- Returns:
- fatal disconnection state codes
- Since:
- 2.1
- See Also:
 
- 
getDisconnectionSqlCodesAsArrayProvides the same data asgetDisconnectionSqlCodes()but in an array so it is accessible via JMX.- Specified by:
- getDisconnectionSqlCodesAsArrayin interface- DataSourceMXBean
- Returns:
- getDisconnectionSqlCodesAsArray().
- Since:
- 2.1
 
- 
getDriverGets the JDBC Driver that has been configured for use by this pool.Note: This getter only returns the last value set by a call to setDriver(Driver). It does not return any driver instance that may have been created from the value set viasetDriverClassName(String).- Returns:
- the JDBC Driver that has been configured for use by this pool
 
- 
getDriverClassLoaderGets the class loader specified for loading the JDBC driver. Returnsnullif no class loader has been explicitly specified.Note: This getter only returns the last value set by a call to setDriverClassLoader(ClassLoader). It does not return the class loader of any driver that may have been set viasetDriver(Driver).- Returns:
- The class loader specified for loading the JDBC driver.
 
- 
getDriverClassNameGets the JDBC driver class name.Note: This getter only returns the last value set by a call to setDriverClassName(String). It does not return the class name of any driver that may have been set viasetDriver(Driver).- Specified by:
- getDriverClassNamein interface- DataSourceMXBean
- Returns:
- the JDBC driver class name
 
- 
getEnableAutoCommitOnReturnDeprecated.Gets the value of the flag that controls whether or not connections being returned to the pool will be checked and configured withConnection.setAutoCommit(true)if the auto commit setting isfalsewhen the connection is returned. It istrueby default.- Returns:
- Whether or not connections being returned to the pool will be checked and configured with auto-commit.
 
- 
getEvictionPolicyClassNameGets the EvictionPolicy implementation in use with this connection pool.- Returns:
- The EvictionPolicy implementation in use with this connection pool.
 
- 
getFastFailValidationpublic boolean getFastFailValidation()True means that validation will fail immediately for connections that have previously thrown SQLExceptions with SQL_STATE indicating fatal disconnection errors.- Specified by:
- getFastFailValidationin interface- DataSourceMXBean
- Returns:
- true if connections created by this datasource will fast fail validation.
- Since:
- 2.1
- See Also:
 
- 
getInitialSizepublic int getInitialSize()Gets the initial size of the connection pool.- Specified by:
- getInitialSizein interface- DataSourceMXBean
- Returns:
- the number of connections created when the pool is initialized
 
- 
getJmxNameGets the JMX name that has been requested for this DataSource. If the requested name is not valid, an alternative may be chosen.- Returns:
- The JMX name that has been requested for this DataSource.
 
- 
getLifopublic boolean getLifo()Gets the LIFO property.- Specified by:
- getLifoin interface- DataSourceMXBean
- Returns:
- true if connection pool behaves as a LIFO queue.
 
- 
getLogAbandonedpublic 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. - Specified by:
- getLogAbandonedin interface- DataSourceMXBean
- Returns:
- getLogAbandoned().
 
- 
getLogExpiredConnectionspublic boolean getLogExpiredConnections()WhengetMaxConnDuration()is set to limit connection lifetime, this property determines whether or not log messages are generated when the pool closes connections due to maximum lifetime exceeded.- Specified by:
- getLogExpiredConnectionsin interface- DataSourceMXBean
- Returns:
- getLogExpiredConnections().
- Since:
- 2.1
 
- 
getLoginTimeoutBasicDataSource does NOT support this method.Gets the login timeout (in seconds) for connecting to the database. Calls createDataSource(), so has the side effect of initializing the connection pool.- Specified by:
- getLoginTimeoutin interface- CommonDataSource
- Specified by:
- getLoginTimeoutin interface- DataSource
- Returns:
- login timeout in seconds
- Throws:
- SQLException- if a database access error occurs
- UnsupportedOperationException- If the DataSource implementation does not support the login timeout feature.
 
- 
getLogWriterGets the log writer being used by this data source.Calls createDataSource(), so has the side effect of initializing the connection pool.- Specified by:
- getLogWriterin interface- CommonDataSource
- Specified by:
- getLogWriterin interface- DataSource
- Returns:
- log writer in use
- Throws:
- SQLException- if a database access error occurs
 
- 
getMaxConnDurationGets the maximum permitted duration of a connection. A value of zero or less indicates an infinite lifetime.- Returns:
- the maximum permitted duration of a connection.
- Since:
- 2.10.0
 
- 
getMaxConnLifetimeMillisDeprecated.UsegetMaxConnDuration().Gets the maximum permitted lifetime of a connection in milliseconds. A value of zero or less indicates an infinite lifetime.- Specified by:
- getMaxConnLifetimeMillisin interface- DataSourceMXBean
- Returns:
- getMaxConnLifetimeMillis().
 
- 
getMaxIdlepublic int getMaxIdle()Gets the maximum number of connections that can remain idle in the pool. Excess idle connections are destroyed on return to the pool.A negative value indicates that there is no limit - Specified by:
- getMaxIdlein interface- DataSourceMXBean
- Returns:
- the maximum number of idle connections
 
- 
getMaxOpenPreparedStatementspublic int getMaxOpenPreparedStatements()Gets the value of themaxOpenPreparedStatementsproperty.- Specified by:
- getMaxOpenPreparedStatementsin interface- DataSourceMXBean
- Returns:
- the maximum number of open statements
 
- 
getMaxTotalpublic int getMaxTotal()Gets the maximum number of active connections that can be allocated at the same time.A negative number means that there is no limit. - Specified by:
- getMaxTotalin interface- DataSourceMXBean
- Returns:
- the maximum number of active connections
 
- 
getMaxWaitDurationGets the maximum Duration 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.- Returns:
- the maxWaitDuration property value.
- Since:
- 2.10.0
 
- 
getMaxWaitMillisDeprecated.UsegetMaxWaitDuration().Gets 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.- Specified by:
- getMaxWaitMillisin interface- DataSourceMXBean
- Returns:
- the maxWaitMillis property value.
 
- 
getMinEvictableIdleDurationGets the {code minEvictableIdleDuration} property.- Returns:
- the value of the {code minEvictableIdleDuration} property
- Since:
- 2.10.0
- See Also:
 
- 
getMinEvictableIdleTimeMillisDeprecated.Gets the {code minEvictableIdleDuration} property.- Specified by:
- getMinEvictableIdleTimeMillisin interface- DataSourceMXBean
- Returns:
- the value of the {code minEvictableIdleDuration} property
- See Also:
 
- 
getMinIdlepublic int getMinIdle()Gets the minimum number of idle connections in the pool. The pool attempts to ensure that minIdle connections are available when the idle object evictor runs. The value of this property has no effect unless {code durationBetweenEvictionRuns} has a positive value.- Specified by:
- getMinIdlein interface- DataSourceMXBean
- Returns:
- the minimum number of idle connections
- See Also:
 
- 
getNumActivepublic int getNumActive()[Read Only] The current number of active connections that have been allocated from this data source.- Specified by:
- getNumActivein interface- DataSourceMXBean
- Returns:
- the current number of active connections
 
- 
getNumIdlepublic int getNumIdle()[Read Only] The current number of idle connections that are waiting to be allocated from this data source.- Specified by:
- getNumIdlein interface- DataSourceMXBean
- Returns:
- the current number of idle connections
 
- 
getNumTestsPerEvictionRunpublic int getNumTestsPerEvictionRun()Gets the value of the {code numTestsPerEvictionRun} property.- Specified by:
- getNumTestsPerEvictionRunin interface- DataSourceMXBean
- Returns:
- the number of objects to examine during idle object evictor runs
- See Also:
 
- 
getParentLogger- Specified by:
- getParentLoggerin interface- CommonDataSource
- Throws:
- SQLFeatureNotSupportedException
 
- 
getPasswordGets the password passed to the JDBC driver to establish connections.- Specified by:
- getPasswordin interface- BasicDataSourceMXBean
- Returns:
- the connection password
 
- 
getRegisteredJmxNameGets the registered JMX ObjectName.- Returns:
- the registered JMX ObjectName.
 
- 
getRemoveAbandonedOnBorrowpublic boolean getRemoveAbandonedOnBorrow()Flag to remove abandoned connections if they exceed the removeAbandonedTimeout when borrowObject is invoked.The default value is false. If set to true a connection is considered abandoned and eligible for removal if it has not been used for more than removeAbandonedTimeoutseconds.Abandoned connections are identified and removed when getConnection()is invoked and all of the following conditions hold:- Specified by:
- getRemoveAbandonedOnBorrowin interface- DataSourceMXBean
- Returns:
- getRemoveAbandonedOnBorrow().
- See Also:
 
- 
getRemoveAbandonedOnMaintenancepublic boolean getRemoveAbandonedOnMaintenance()Flag to remove abandoned connections if they exceed the removeAbandonedTimeout during pool maintenance.The default value is false. If set to true a connection is considered abandoned and eligible for removal if it has not been used for more than removeAbandonedTimeoutseconds.- Specified by:
- getRemoveAbandonedOnMaintenancein interface- DataSourceMXBean
- Returns:
- getRemoveAbandonedOnMaintenance().
- See Also:
 
- 
getRemoveAbandonedTimeoutDeprecated.Gets the timeout in seconds before an abandoned connection can be removed.Creating a Statement, PreparedStatement or CallableStatement or using one of these to execute a query (using one of the execute methods) resets the lastUsed property of the parent connection. Abandoned connection cleanup happens when: - getRemoveAbandonedOnBorrow()or- getRemoveAbandonedOnMaintenance()= true
- numIdle< 2
- numActive>- maxTotal- 3
 The default value is 300 seconds. - Specified by:
- getRemoveAbandonedTimeoutin interface- DataSourceMXBean
- Returns:
- getRemoveAbandonedTimeout().
 
- 
getRemoveAbandonedTimeoutDurationGets the timeout before an abandoned connection can be removed.Creating a Statement, PreparedStatement or CallableStatement or using one of these to execute a query (using one of the execute methods) resets the lastUsed property of the parent connection. Abandoned connection cleanup happens when: - getRemoveAbandonedOnBorrow()or- getRemoveAbandonedOnMaintenance()= true
- numIdle< 2
- numActive>- maxTotal- 3
 The default value is 300 seconds. - Returns:
- Timeout before an abandoned connection can be removed.
- Since:
- 2.10.0
 
- 
getRollbackOnReturnpublic boolean getRollbackOnReturn()Gets the current value of the flag that controls whether a connection will be rolled back when it is returned to the pool if auto commit is not enabled and the connection is not read only.- Returns:
- whether a connection will be rolled back when it is returned to the pool.
 
- 
getSoftMinEvictableIdleDurationGets the minimum amount of time a connection may sit idle in the pool before it is eligible for eviction by the idle object evictor, with the extra condition that at least "minIdle" connections remain in the pool.When minEvictableIdleTimeMillisis set to a positive value, minEvictableIdleTimeMillis is examined first by the idle connection evictor - i.e. when idle connections are visited by the evictor, idle time is first compared againstminEvictableIdleTimeMillis(without considering the number of idle connections in the pool) and then againstsoftMinEvictableIdleTimeMillis, including theminIdle, constraint.- Returns:
- minimum amount of time a connection may sit idle in the pool before it is eligible for eviction, assuming there are minIdle idle connections in the pool
- Since:
- 2.10.0
 
- 
getSoftMinEvictableIdleTimeMillisDeprecated.Gets the minimum amount of time a connection may sit idle in the pool before it is eligible for eviction by the idle object evictor, with the extra condition that at least "minIdle" connections remain in the pool.When minEvictableIdleTimeMillisis set to a positive value, minEvictableIdleTimeMillis is examined first by the idle connection evictor - i.e. when idle connections are visited by the evictor, idle time is first compared againstminEvictableIdleTimeMillis(without considering the number of idle connections in the pool) and then againstsoftMinEvictableIdleTimeMillis, including theminIdle, constraint.- Specified by:
- getSoftMinEvictableIdleTimeMillisin interface- DataSourceMXBean
- Returns:
- minimum amount of time a connection may sit idle in the pool before it is eligible for eviction, assuming there are minIdle idle connections in the pool
 
- 
getTestOnBorrowpublic boolean getTestOnBorrow()Gets the {code testOnBorrow} property.- Specified by:
- getTestOnBorrowin interface- DataSourceMXBean
- Returns:
- true if objects are validated before being borrowed from the pool
- See Also:
 
- 
getTestOnCreatepublic boolean getTestOnCreate()Gets the {code testOnCreate} property.- Specified by:
- getTestOnCreatein interface- DataSourceMXBean
- Returns:
- true if objects are validated immediately after they are created by the pool
- See Also:
 
- 
getTestOnReturnpublic boolean getTestOnReturn()Gets the value of the {code testOnReturn} property.- Returns:
- true if objects are validated before being returned to the pool
- See Also:
 
- 
getTestWhileIdlepublic boolean getTestWhileIdle()Gets the value of the {code testWhileIdle} property.- Specified by:
- getTestWhileIdlein interface- DataSourceMXBean
- Returns:
- true if objects examined by the idle object evictor are validated
- See Also:
 
- 
getDurationBetweenEvictionRunsGets the value of the {code durationBetweenEvictionRuns} property.- Returns:
- the time (in milliseconds) between evictor runs
- Since:
- 2.10.0
- See Also:
 
- 
getTimeBetweenEvictionRunsMillisDeprecated.Gets the value of the {code durationBetweenEvictionRuns} property.- Specified by:
- getTimeBetweenEvictionRunsMillisin interface- DataSourceMXBean
- Returns:
- the time (in milliseconds) between evictor runs
- See Also:
 
- 
getUrlGets the JDBC connection {code connectionString} property.- Specified by:
- getUrlin interface- DataSourceMXBean
- Returns:
- the {code connectionString} passed to the JDBC driver to establish connections
 
- 
getUsernameGets the JDBC connection {code userName} property.- Specified by:
- getUsernamein interface- DataSourceMXBean
- Returns:
- the {code userName} passed to the JDBC driver to establish connections
 
- 
getValidationQueryGets the validation query used to validate connections before returning them.- Specified by:
- getValidationQueryin interface- DataSourceMXBean
- Returns:
- the SQL validation query
- See Also:
 
- 
getValidationQueryTimeoutDurationGets the validation query timeout.- Returns:
- the timeout in seconds before connection validation queries fail.
 
- 
getValidationQueryTimeoutDeprecated.Gets the validation query timeout.- Specified by:
- getValidationQueryTimeoutin interface- DataSourceMXBean
- Returns:
- the timeout in seconds before connection validation queries fail.
 
- 
invalidateConnectionManually invalidates a connection, effectively requesting the pool to try to close it, remove it from the pool and reclaim pool capacity.- Parameters:
- connection- The Connection to invalidate.
- Throws:
- IllegalStateException- if invalidating the connection failed.
- Since:
- 2.1
 
- 
isAccessToUnderlyingConnectionAllowedpublic boolean isAccessToUnderlyingConnectionAllowed()Gets the value of the accessToUnderlyingConnectionAllowed property.- Specified by:
- isAccessToUnderlyingConnectionAllowedin interface- DataSourceMXBean
- Returns:
- true if access to the underlying connection is allowed, false otherwise.
 
- 
isClearStatementPoolOnReturnpublic boolean isClearStatementPoolOnReturn()Returns true if the statement pool is cleared when the connection is returned to its pool.- Specified by:
- isClearStatementPoolOnReturnin interface- DataSourceMXBean
- Returns:
- true if the statement pool is cleared at connection return
- Since:
- 2.8.0
 
- 
isClosedpublic boolean isClosed()If true, this data source is closed and no more connections can be retrieved from this data source.- Specified by:
- isClosedin interface- DataSourceMXBean
- Returns:
- true, if the data source is closed; false otherwise
 
- 
isPoolPreparedStatementspublic boolean isPoolPreparedStatements()Returns true if we are pooling statements.- Specified by:
- isPoolPreparedStatementsin interface- DataSourceMXBean
- Returns:
- true if prepared and callable statements are pooled
 
- 
isWrapperFor- Specified by:
- isWrapperForin interface- Wrapper
- Throws:
- SQLException
 
- 
logLogs the given message.- Parameters:
- message- the message to log.
 
- 
logLogs the given throwable.- Parameters:
- message- TODO
- throwable- the throwable.
- Since:
- 2.7.0
 
- 
postDeregisterpublic void postDeregister()- Specified by:
- postDeregisterin interface- MBeanRegistration
 
- 
postRegister- Specified by:
- postRegisterin interface- MBeanRegistration
 
- 
preDeregister- Specified by:
- preDeregisterin interface- MBeanRegistration
- Throws:
- Exception
 
- 
preRegister- Specified by:
- preRegisterin interface- MBeanRegistration
 
- 
removeConnectionPropertyRemoves a custom connection property.- Parameters:
- name- Name of the custom connection property to remove
- See Also:
 
- 
restartRestarts the datasource.This method calls close()andstart()in sequence within synchronized scope so any connection requests that come in while the datasource is shutting down will be served by the new pool.Idle connections that are stored in the connection pool when this method is invoked are closed, but 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. These connections do not count ingetMaxTotal()orgetNumActive()after invoking this method. For example, if there are 3 connections checked out by clients whenrestart()is invoked, after this method is called,getNumActive()will return 0 and up togetMaxTotal()+ 3 connections may be open until the connections sourced from the original pool are returned.The new connection pool created by this method is initialized with currently set configuration properties. - Specified by:
- restartin interface- DataSourceMXBean
- Throws:
- SQLException- if an error occurs initializing the datasource
 
- 
setAbandonedLogWriterSets the print writer to be used by this configuration to log information on abandoned objects.- Parameters:
- logWriter- The new log writer
 
- 
setAbandonedUsageTrackingpublic void setAbandonedUsageTracking(boolean usageTracking) If the connection pool implementsUsageTracking, configure whether the connection pool should record a stack trace every time a method is called on a pooled connection and retain the most recent stack trace to aid debugging of abandoned connections.- Parameters:
- usageTracking- A value of- truewill enable the recording of a stack trace on every use of a pooled connection
 
- 
setAccessToUnderlyingConnectionAllowedpublic 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.- Parameters:
- allow- Access to the underlying connection is granted when true.
 
- 
setAutoCommitOnReturnpublic void setAutoCommitOnReturn(boolean autoCommitOnReturn) Sets the value of the flag that controls whether or not connections being returned to the pool will be checked and configured withConnection.setAutoCommit(true)if the auto commit setting isfalsewhen the connection is returned. It istrueby default.- Parameters:
- autoCommitOnReturn- Whether or not connections being returned to the pool will be checked and configured with auto-commit.
- Since:
- 2.6.0
 
- 
setCacheStatepublic void setCacheState(boolean cacheState) Sets the state caching flag.- Parameters:
- cacheState- The new value for the state caching flag
 
- 
setClearStatementPoolOnReturnpublic void setClearStatementPoolOnReturn(boolean clearStatementPoolOnReturn) Sets whether the pool of statements (which was enabled withsetPoolPreparedStatements(boolean)) should be cleared when the connection is returned to its pool. Default is false.- Parameters:
- clearStatementPoolOnReturn- clear or not
- Since:
- 2.8.0
 
- 
setConnectionFactoryClassNameSets the ConnectionFactory class name.- Parameters:
- connectionFactoryClassName- A class name.
- Since:
- 2.7.0
 
- 
setConnectionInitSqlsSets the list of SQL statements to be executed when a physical connection is first created.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:
- connectionInitSqls- Collection of SQL statements to execute on connection creation
 
- 
setConnectionPropertiesSets the connection properties passed to driver.connect(...).Format of the string must be [propertyName=property;]* NOTE - The "user" and "password" properties will be added explicitly, so they do not need to be included here. - Parameters:
- connectionProperties- the connection properties used to create new connections
 
- 
setDefaultAutoCommitSets 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.- Parameters:
- defaultAutoCommit- default auto-commit value
 
- 
setDefaultCatalogSets 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.- Parameters:
- defaultCatalog- the default catalog
 
- 
setDefaultQueryTimeoutSets the default query timeout that will be used forStatements created from this connection.nullmeans that the driver default will be used.- Parameters:
- defaultQueryTimeoutDuration- The default query timeout Duration.
- Since:
- 2.10.0
 
- 
setDefaultQueryTimeoutDeprecated.Sets the default query timeout that will be used forStatements created from this connection.nullmeans that the driver default will be used.- Parameters:
- defaultQueryTimeoutSeconds- The default query timeout in seconds.
 
- 
setDefaultReadOnlySets 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.- Parameters:
- defaultReadOnly- default read-only value
 
- 
setDefaultSchemaSets the default schema.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:
- defaultSchema- the default catalog
- Since:
- 2.5.0
 
- 
setDefaultTransactionIsolationpublic 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.- Parameters:
- defaultTransactionIsolation- the default transaction isolation state
- See Also:
 
- 
setDisconnectionSqlCodesSets the SQL_STATE codes considered to signal fatal conditions.Overrides the defaults in Utils.getDisconnectionSqlCodes()(plus anything starting withUtils.DISCONNECTION_SQL_CODE_PREFIX). If this property is non-null andgetFastFailValidation()istrue, whenever connections created by this datasource generate exceptions with SQL_STATE codes in this list, they will be marked as "fatally disconnected" and subsequent validations will fail fast (no attempt at isValid or validation query).If getFastFailValidation()isfalsesetting this property has no effect.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:
- disconnectionSqlCodes- SQL_STATE codes considered to signal fatal conditions
- Since:
- 2.1
 
- 
setDriverSets the JDBC Driver instance to use for this 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.- Parameters:
- driver- The JDBC Driver instance to use for this pool.
 
- 
setDriverClassLoaderSets 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.- Parameters:
- driverClassLoader- the class loader with which to load the JDBC driver
 
- 
setDriverClassNameSets 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.- Parameters:
- driverClassName- the class name of the JDBC driver
 
- 
setEnableAutoCommitOnReturnDeprecated.Sets the value of the flag that controls whether or not connections being returned to the pool will be checked and configured withConnection.setAutoCommit(true)if the auto commit setting isfalsewhen the connection is returned. It istrueby default.- Parameters:
- autoCommitOnReturn- Whether or not connections being returned to the pool will be checked and configured with auto-commit.
 
- 
setEvictionPolicyClassNameSets the EvictionPolicy implementation to use with this connection pool.- Parameters:
- evictionPolicyClassName- The fully qualified class name of the EvictionPolicy implementation
 
- 
setFastFailValidationpublic void setFastFailValidation(boolean fastFailValidation) - Parameters:
- fastFailValidation- true means connections created by this factory will fast fail validation
- Since:
- 2.1
- See Also:
 
- 
setInitialSizepublic 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.- Parameters:
- initialSize- the number of connections created when the pool is initialized
 
- 
setJmxNameSets the JMX name that has been requested for this DataSource. If the requested name is not valid, an alternative may be chosen. This DataSource will attempt to register itself using this name. If another component registers this DataSource with JMX and this name is valid this name will be used in preference to any specified by the other component.- Parameters:
- jmxName- The JMX name that has been requested for this DataSource
 
- 
setRegisterConnectionMBeanpublic void setRegisterConnectionMBean(boolean registerConnectionMBean) Sets if connection level JMX tracking is requested for this DataSource. If true, each connection will be registered for tracking with JMX.- Parameters:
- registerConnectionMBean- connection tracking requested for this DataSource.
 
- 
setLifopublic void setLifo(boolean lifo) Sets the LIFO property. True means the pool behaves as a LIFO queue; false means FIFO.- Parameters:
- lifo- the new value for the LIFO property
 
- 
setLogAbandonedpublic void setLogAbandoned(boolean logAbandoned) - Parameters:
- logAbandoned- new logAbandoned property value
 
- 
setLogExpiredConnectionspublic void setLogExpiredConnections(boolean logExpiredConnections) WhengetMaxConnDuration()is set to limit connection lifetime, this property determines whether or not log messages are generated when the pool closes connections due to maximum lifetime exceeded. Set this property to false to suppress log messages when connections expire.- Parameters:
- logExpiredConnections- Whether or not log messages are generated when the pool closes connections due to maximum lifetime exceeded.
 
- 
setLoginTimeoutBasicDataSource does NOT support this method.Set the login timeout (in seconds) for connecting to the database. Calls createDataSource(), so has the side effect of initializing the connection pool.- Specified by:
- setLoginTimeoutin interface- CommonDataSource
- Specified by:
- setLoginTimeoutin interface- DataSource
- Parameters:
- loginTimeout- The new login timeout, or zero for no timeout
- Throws:
- UnsupportedOperationException- If the DataSource implementation does not support the login timeout feature.
- SQLException- if a database access error occurs
 
- 
setLogWriterSets the log writer being used by this data source.Calls createDataSource(), so has the side effect of initializing the connection pool.- Specified by:
- setLogWriterin interface- CommonDataSource
- Specified by:
- setLogWriterin interface- DataSource
- Parameters:
- logWriter- The new log writer
- Throws:
- SQLException- if a database access error occurs
 
- 
setMaxConnSets the maximum permitted lifetime of a connection. A value of zero or less indicates an infinite lifetime.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:
- maxConnDuration- The maximum permitted lifetime of a connection.
- Since:
- 2.10.0
 
- 
setMaxConnLifetimeMillisDeprecated.UsesetMaxConn(Duration).Sets the maximum permitted lifetime of a connection in milliseconds. A value of zero or less indicates an infinite lifetime.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:
- maxConnLifetimeMillis- The maximum permitted lifetime of a connection in milliseconds.
 
- 
setMaxIdlepublic void setMaxIdle(int maxIdle) Sets the maximum number of connections that can remain idle in the pool. Excess idle connections are destroyed on return to the pool.- Parameters:
- maxIdle- the new value for maxIdle
- See Also:
 
- 
setMaxOpenPreparedStatementspublic void setMaxOpenPreparedStatements(int maxOpenStatements) Sets the value of themaxOpenPreparedStatementsproperty.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:
- maxOpenStatements- the new maximum number of prepared statements
 
- 
setMaxTotalpublic void setMaxTotal(int maxTotal) Sets the maximum total number of idle and borrows connections that can be active at the same time. Use a negative value for no limit.- Parameters:
- maxTotal- the new value for maxTotal
- See Also:
 
- 
setMaxWaitSets the MaxWaitMillis property. Use -1 to make the pool wait indefinitely.- Parameters:
- maxWaitDuration- the new value for MaxWaitMillis
- Since:
- 2.10.0
- See Also:
 
- 
setMaxWaitMillisDeprecated.Sets the MaxWaitMillis property. Use -1 to make the pool wait indefinitely.- Parameters:
- maxWaitMillis- the new value for MaxWaitMillis
- See Also:
 
- 
setMinEvictableIdleSets the {code minEvictableIdleDuration} property.- Parameters:
- minEvictableIdleDuration- the minimum amount of time an object may sit idle in the pool
- Since:
- 2.10.0
- See Also:
 
- 
setMinEvictableIdleTimeMillisDeprecated.Sets the {code minEvictableIdleDuration} property.- Parameters:
- minEvictableIdleTimeMillis- the minimum amount of time an object may sit idle in the pool
- See Also:
 
- 
setMinIdlepublic void setMinIdle(int minIdle) Sets the minimum number of idle connections in the pool. The pool attempts to ensure that minIdle connections are available when the idle object evictor runs. The value of this property has no effect unless {code durationBetweenEvictionRuns} has a positive value.- Parameters:
- minIdle- the new value for minIdle
- See Also:
 
- 
setNumTestsPerEvictionRunpublic void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) Sets the value of the {code numTestsPerEvictionRun} property.- Parameters:
- numTestsPerEvictionRun- the new {code numTestsPerEvictionRun} value
- See Also:
 
- 
setPasswordSets the {code 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.- Parameters:
- password- new value for the password
 
- 
setPoolPreparedStatementspublic 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.- Parameters:
- poolingStatements- pooling on or off
 
- 
setRemoveAbandonedOnBorrowpublic void setRemoveAbandonedOnBorrow(boolean removeAbandonedOnBorrow) - Parameters:
- removeAbandonedOnBorrow- true means abandoned connections may be removed when connections are borrowed from the pool.
- See Also:
 
- 
setRemoveAbandonedOnMaintenancepublic void setRemoveAbandonedOnMaintenance(boolean removeAbandonedOnMaintenance) - Parameters:
- removeAbandonedOnMaintenance- true means abandoned connections may be removed on pool maintenance.
- See Also:
 
- 
setRemoveAbandonedTimeoutSets the timeout before an abandoned connection can be removed.Setting this property has no effect if getRemoveAbandonedOnBorrow()and {code getRemoveAbandonedOnMaintenance()} are false.- Parameters:
- removeAbandonedTimeout- new abandoned timeout
- Since:
- 2.10.0
- See Also:
 
- 
setRemoveAbandonedTimeoutDeprecated.Sets the timeout in seconds before an abandoned connection can be removed.Setting this property has no effect if getRemoveAbandonedOnBorrow()andgetRemoveAbandonedOnMaintenance()are false.- Parameters:
- removeAbandonedTimeout- new abandoned timeout in seconds
- See Also:
 
- 
setRollbackOnReturnpublic void setRollbackOnReturn(boolean rollbackOnReturn) Sets the flag that controls if a connection will be rolled back when it is returned to the pool if auto commit is not enabled and the connection is not read only.- Parameters:
- rollbackOnReturn- whether a connection will be rolled back when it is returned to the pool.
 
- 
setSoftMinEvictableIdleSets the minimum amount of time a connection may sit idle in the pool before it is eligible for eviction by the idle object evictor, with the extra condition that at least "minIdle" connections remain in the pool.- Parameters:
- softMinEvictableIdleTimeMillis- minimum amount of time a connection may sit idle in the pool before it is eligible for eviction, assuming there are minIdle idle connections in the pool.
- Since:
- 2.10.0
- See Also:
 
- 
setSoftMinEvictableIdleTimeMillisDeprecated.Sets the minimum amount of time a connection may sit idle in the pool before it is eligible for eviction by the idle object evictor, with the extra condition that at least "minIdle" connections remain in the pool.- Parameters:
- softMinEvictableIdleTimeMillis- minimum amount of time a connection may sit idle in the pool before it is eligible for eviction, assuming there are minIdle idle connections in the pool.
- See Also:
 
- 
setTestOnBorrowpublic void setTestOnBorrow(boolean testOnBorrow) Sets the {code testOnBorrow} property. This property determines whether or not the pool will validate objects before they are borrowed from the pool.- Parameters:
- testOnBorrow- new value for testOnBorrow property
 
- 
setTestOnCreatepublic void setTestOnCreate(boolean testOnCreate) Sets the {code testOnCreate} property. This property determines whether or not the pool will validate objects immediately after they are created by the pool- Parameters:
- testOnCreate- new value for testOnCreate property
 
- 
setTestOnReturnpublic void setTestOnReturn(boolean testOnReturn) Sets thetestOnReturnproperty. This property determines whether or not the pool will validate objects before they are returned to the pool.- Parameters:
- testOnReturn- new value for testOnReturn property
 
- 
setTestWhileIdlepublic void setTestWhileIdle(boolean testWhileIdle) Sets thetestWhileIdleproperty. This property determines whether or not the idle object evictor will validate connections.- Parameters:
- testWhileIdle- new value for testWhileIdle property
 
- 
setDurationBetweenEvictionRunsSets the {code durationBetweenEvictionRuns} property.- Parameters:
- timeBetweenEvictionRunsMillis- the new time between evictor runs
- Since:
- 2.10.0
- See Also:
 
- 
setTimeBetweenEvictionRunsMillisDeprecated.Sets the {code durationBetweenEvictionRuns} property.- Parameters:
- timeBetweenEvictionRunsMillis- the new time between evictor runs
- See Also:
 
- 
setUrlSets the {code connection string}.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:
- connectionString- the new value for the JDBC connection connectionString
 
- 
setUsernameSets the {code 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.- Parameters:
- userName- the new value for the JDBC connection user name
 
- 
setValidationQuerySets the {code 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.- Parameters:
- validationQuery- the new value for the validation query
 
- 
setValidationQueryTimeoutSets 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. Use a value less than or equal to 0 for no 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.- Parameters:
- validationQueryTimeoutDuration- new validation query timeout value in seconds
- Since:
- 2.10.0
 
- 
setValidationQueryTimeoutDeprecated.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. Use a value less than or equal to 0 for no 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.- Parameters:
- validationQueryTimeoutSeconds- new validation query timeout value in seconds
 
- 
startStarts the datasource.It is not necessary to call this method before using a newly created BasicDataSource instance, but calling it in that context causes the datasource to be immediately initialized (instead of waiting for the first getConnection()request). Its primary use is to restart and reinitialize a datasource that has been closed.When this method is called after close(), connections checked out by clients before the datasource was stopped do not count ingetMaxTotal()orgetNumActive(). For example, if there are 3 connections checked out by clients whenclose()is invoked and they are not returned beforestart()is invoked, after this method is called,getNumActive()will return 0. These connections will be physically closed when they are returned, but they will not count against the maximum allowed in the newly started datasource.- Specified by:
- startin interface- DataSourceMXBean
- Throws:
- SQLException- if an error occurs initializing the datasource
 
- 
startPoolMaintenanceprotected void startPoolMaintenance()Starts the connection pool maintenance task, if configured.
- 
unwrap- Specified by:
- unwrapin interface- Wrapper
- Throws:
- SQLException
 
 
- 
getDefaultQueryTimeoutDuration().