CommonDataSource
, DataSource
, Wrapper
public interface OracleConnectionCache extends DataSource
An OracleConnectionCache is an interface one needs to implement if they like to reuse OracleConnectionEventListener and implement their own version of Connection Caching.
By extending DataSource, we would like to leverage the DataSource features such as JNDI and the concept of factory for Connection objects.
Simplifies the design of Cache implementation by shielding the necessity to understand the complexities of JDBC 2.0 Connection pooling 'hooks'. Here are the few basic steps a ConnectionCache class should do to complete the loop:
1) Create a new OracleConnectionEventListener and register the connection Cache as it's argument.
Ex: m_ocel = new OracleConnectionEventListener (this);
2) Register this event listener with new PooledConnections.
Ex: pc.addConnectionEventListener(m_ocel);
3) Deregister the listener when closing the PooledConnection
Ex: pc.removeConnectionEventListener(m_ocel);
Modifier and Type | Method | Description |
---|---|---|
void |
close() |
Close the connection cache.
|
void |
closePooledConnection(PooledConnection pc) |
Invoked by the ConnectionEventListener when an error occurs on a PooledConnection/LogicalConnection signaling that it is no longer good to be used and can be closed.
|
void |
reusePooledConnection(PooledConnection pc) |
Invoked by the ConnectionEventListener instance when Logical connection handles are closed signaling that the PooledConnection can be recycled into the pool for further use.
|
createShardingKeyBuilder, getParentLogger
createConnectionBuilder, getConnection, getConnection, getLoginTimeout, getLogWriter, setLoginTimeout, setLogWriter
isWrapperFor, unwrap
void reusePooledConnection(PooledConnection pc) throws SQLException
Invoked by the ConnectionEventListener instance when Logical connection handles are closed signaling that the PooledConnection can be recycled into the pool for further use.
PooledConnection
- The pooled connection object that needs to be recylced.SQLException
- error in recycling the PooledConnection.void closePooledConnection(PooledConnection pc) throws SQLException
Invoked by the ConnectionEventListener when an error occurs on a PooledConnection/LogicalConnection signaling that it is no longer good to be used and can be closed.
PooledConnection
- The pooled connection object that has to be closed because of an error.SQLException
- error in closing the PooledConnectionvoid close() throws SQLException
SQLException
- if error occurs closing the cache.