Connection Pooling
Introduction
Beginning with version 0.3.1, Concourse provides a framework for creating pools of cached database connections. Applications that use connection pools may benefit from increased performance since requests can take advantage of previously established connections and therefore avoid the overhead of creating new ones.
Concourse supports both fixed and cached connection pools. A FixedConnectionPool maintains a fixed number of connections for the duration of its use. If all the connections from a fixed pool are taken, then subsequent requests will block until a connection is returned to the pool. On the other hand, a CachedConnectionPool never blocks and will create new connections on demand if the pool does not have any available to service a request.
You can create both kinds of connection pools by calling the appropriately named static factory method in the ConnectionPool class.
ConnectionPool connections = ConnectionPool.newFixedConnectionPool(host, port, username, password, poolSize);
ConnectionPool connections = ConnectionPool.newCachedConnectionPool(host, port, username, password);
Usage
// assumes that the connection pool has been previously created Concourse connection = null; try{ connection = pool.request(); // do stuff } finally { if(connection != null){ pool.release(connection); } }
API Documentation
The API for fixed and cached connection pools is the same.
close
void close() throws Exception
Closes this resource, relinquishing any underlying resources. This method is invoked automatically on objects managed by the try-with-resources statement.
hasAvailableConnections
boolean hasAvailableConnections()
Return true if this pool has any available connections.
Returns
- true if a subsequent call the request() will not block
release
void release(Concourse connection)
Return a previously requested connection back to the pool.
Parameters
- connection
request
Concourse request()
Request a connection from the pool and possibly block until one is available.
Returns
- a connection to Concourse