Interface PooledConnection
-
public interface PooledConnectionAn interface which provides facilities for handling connections to a database which are pooled.Typically, a
PooledConnectionis recycled when it is no longer required by an application, rather than being closed and discarded. The reason for treating connections in this way is that it can be an expensive process both to establish a connection to a database and to destroy the connection. Reusing connections through a pool is a way of improving system performance and reducing overhead.It is not intended that an application uses the
PooledConnectioninterface directly. ThePooledConnectioninterface is intended for use by a component called a connection pool manager, typically part of the infrastructure that supports use of the database by applications.Applications obtain connections to the database by calling the
DataSource.getConnection()method. Behind the scenes, the connection pool manager will get aPooledConnectionobject from its connection pool and passes back a connection object that wraps or references thePooledConnectionobject. A newPooledConnectionobject will only be created if the pool is empty.When the application is finished using a
PooledConnection, the application calls theConnection.close()method. The connection pool manager is notified via aConnectionEventfrom the connection that this has happened (the pool manager registers itself with the connection before the connection is given to the application). The pool manager removes the underlyingPooledConnectionobject from the connection and returns it to the pool for reuse - thePooledConnectionis thus recycled rather than being destroyed.The connection to the database represented by the
PooledConnectionis kept open until thePooledConnectionobject itself is deactivated by the connection pool manager, which callsPooledConnection.close(). This is typically done if there are too many inactive connections in the pool, if thePooledConnectionencounters a problem that makes it unusable or if the whole system is being shut down.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaddConnectionEventListener(ConnectionEventListener theListener)Registers the suppliedConnectionEventListenerwith thisPooledConnection.voidaddStatementEventListener(StatementEventListener listener)Add a StatementEventListener to this PooledConnection object.voidclose()Closes the connection to the database held by thisPooledConnection.ConnectiongetConnection()Creates a connection to the database.voidremoveConnectionEventListener(ConnectionEventListener theListener)Unregisters the suppliedConnectionEventListenerfrom thisPooledConnection.voidremoveStatementEventListener(StatementEventListener listener)Remove a StatementEventListener from this PooledConnection object.
-
-
-
Method Detail
-
addConnectionEventListener
void addConnectionEventListener(ConnectionEventListener theListener)
Registers the suppliedConnectionEventListenerwith thisPooledConnection. Once registered, theConnectionEventListenerwill receiveConnectionEventevents when they occur in thePooledConnection.- Parameters:
theListener- an object which implements theConnectionEventListenerinterface.
-
close
void close() throws SQLExceptionCloses the connection to the database held by thisPooledConnection. This method should not be called directly by application code - it is intended only for the connection pool manager component.- Throws:
SQLException- if there is a problem accessing the database.
-
getConnection
Connection getConnection() throws SQLException
Creates a connection to the database. This method is typically called by the connection pool manager when an application invokes the methodDataSource.getConnection()and there are noPooledConnectionobjects available in the connection pool.- Returns:
- a
Connectionobject. - Throws:
SQLException- if there is a problem accessing the database.
-
removeConnectionEventListener
void removeConnectionEventListener(ConnectionEventListener theListener)
Unregisters the suppliedConnectionEventListenerfrom thisPooledConnection. Once unregistered, theConnectionEventListenerwill no longer receive events occurring in thePooledConnection.- Parameters:
theListener- an object which implements theConnectionEventListenerinterface. This object should have previously been registered with thePooledConnectionusing theaddConnectionEventListenermethod.
-
addStatementEventListener
void addStatementEventListener(StatementEventListener listener)
Add a StatementEventListener to this PooledConnection object.- Parameters:
listener- A StatementEventListener object which is to be added with this PooledConnection object- Since:
- 1.6
-
removeStatementEventListener
void removeStatementEventListener(StatementEventListener listener)
Remove a StatementEventListener from this PooledConnection object.- Parameters:
listener- A StatementEventListener object which is to be removed form this PooledConnection object- Since:
- 1.6
-
-