public class PoolingConnectionProvider extends Object implements ConnectionProvider
A ConnectionProvider
implementation that creates its own
pool of connections.
This class uses C3PO (http://www.mchange.com/projects/c3p0/index.html) as the underlying pool implementation.
DBConnectionManager
,
ConnectionProvider
Modifier and Type | Field and Description |
---|---|
static String |
DB_DRIVER
The JDBC database driver.
|
static String |
DB_IDLE_VALIDATION_SECONDS
The number of seconds between tests of idle connections - only enabled
if the validation query property is set.
|
static String |
DB_MAX_CACHED_STATEMENTS_PER_CONNECTION
The maximum number of prepared statements that will be cached per connection in the pool.
|
static String |
DB_MAX_CONNECTIONS
The maximum number of database connections to have in the pool.
|
static String |
DB_PASSWORD
The database user password.
|
static String |
DB_URL
The JDBC database URL.
|
static String |
DB_USER
The database user name.
|
static String |
DB_VALIDATE_ON_CHECKOUT
Whether the database sql query to validate connections should be executed every time
a connection is retrieved from the pool to ensure that it is still valid.
|
static String |
DB_VALIDATION_QUERY
The database sql query to execute every time a connection is returned
to the pool to ensure that it is still valid.
|
static int |
DEFAULT_DB_MAX_CACHED_STATEMENTS_PER_CONNECTION
Default maximum number of database connections in the pool.
|
static int |
DEFAULT_DB_MAX_CONNECTIONS
Default maximum number of database connections in the pool.
|
Constructor and Description |
---|
PoolingConnectionProvider(Properties config)
Create a connection pool using the given properties.
|
PoolingConnectionProvider(String dbDriver,
String dbURL,
String dbUser,
String dbPassword,
int maxConnections,
String dbValidationQuery) |
Modifier and Type | Method and Description |
---|---|
Connection |
getConnection() |
protected com.mchange.v2.c3p0.ComboPooledDataSource |
getDataSource()
Get the C3PO ComboPooledDataSource created during initialization.
|
void |
initialize() |
void |
shutdown() |
public static final String DB_DRIVER
public static final String DB_URL
public static final String DB_USER
public static final String DB_PASSWORD
public static final String DB_MAX_CONNECTIONS
public static final String DB_MAX_CACHED_STATEMENTS_PER_CONNECTION
public static final String DB_VALIDATION_QUERY
public static final String DB_IDLE_VALIDATION_SECONDS
public static final String DB_VALIDATE_ON_CHECKOUT
public static final int DEFAULT_DB_MAX_CONNECTIONS
public static final int DEFAULT_DB_MAX_CACHED_STATEMENTS_PER_CONNECTION
public PoolingConnectionProvider(String dbDriver, String dbURL, String dbUser, String dbPassword, int maxConnections, String dbValidationQuery) throws SQLException, SchedulerException
SQLException
SchedulerException
public PoolingConnectionProvider(Properties config) throws SchedulerException, SQLException
The properties passed should contain:
DB_DRIVER
- The database driver class name
DB_URL
- The database URL
DB_USER
- The database user
DB_PASSWORD
- The database password
DB_MAX_CONNECTIONS
- The maximum # connections in the pool,
optional
DB_VALIDATION_QUERY
- The sql validation query, optional
config
- configuration propertiesSchedulerException
SQLException
protected com.mchange.v2.c3p0.ComboPooledDataSource getDataSource()
This can be used to set additional data source properties in a subclass's constructor.
public Connection getConnection() throws SQLException
getConnection
in interface ConnectionProvider
SQLException
public void shutdown() throws SQLException
shutdown
in interface ConnectionProvider
SQLException
public void initialize() throws SQLException
initialize
in interface ConnectionProvider
SQLException
Copyright © 2023 Terracotta, Inc.. All rights reserved.