org.logicalcobwebs.proxool

Interface ConnectionListenerIF

Known Implementing Classes:
CompositeConnectionListener

public interface ConnectionListenerIF

You can listen to the lifecycle of a connection. Sometimes, you may want to perform a task when the connection is born or dies. Actually, the reason why we originally did this is now obsolete. But the code remains here just in case. You need to register your implementation with ProxoolFacade.
 String alias = "myPool";
 ConnectionListenerIF myConnectionListener = new MyConnectionListener();
 ProxoolFacade.addConnectionListener(alias, myConnectionListener);
 
Version:
$Revision: 1.9 $, $Date: 2007/01/25 23:38:24 $
Authors:
billhorsman
$Author: billhorsman $ (current maintainer)

Field Summary

static int
FATAL_SQL_EXCEPTION_DETECTED
We are killing a connection because a FATAL_SQL_EXCEPTION has been detected.
static int
HOUSE_KEEPER_TEST_FAIL
We are killing a connection because the routine house keeper test failed
static int
MANUAL_EXPIRY
We are killing a connection because it's manually been expired (by something external to Proxool)
static int
MAXIMUM_ACTIVE_TIME_EXPIRED
We are killing a connection because the MAXIMUM_ACTIVE_TIME has been exceeded.
static int
MAXIMUM_CONNECTION_LIFETIME_EXCEEDED
We are killing a connection because it's MAXIMUM_CONNECTION_LIFETIME has been exceeded.
static int
RESET_FAIL
We are killing a connection because it couldn't be reset after it was returned to the pool and we don't want to give it out again in an unknown state.
static int
SHUTDOWN
We are killing a connection because Proxool is shutting down
static int
VALIDATION_FAIL
We are killing a connection because it has not been validated.

Method Summary

void
onBirth(Connection connection)
Happens everytime we create a new connection.
void
onDeath(Connection connection, int reasonCode)
Happens just before we expire a connection.
void
onExecute(String command, long elapsedTime)
Happens after every successful execute.
void
onFail(String command, Exception exception)
Happens everytime an exception was thrown during an execute method Note that the command is not fully implemented at this stage.

Field Details

FATAL_SQL_EXCEPTION_DETECTED

public static final int FATAL_SQL_EXCEPTION_DETECTED
Field Value:
8
See Also:
onDeath(java.sql.Connection, int)

HOUSE_KEEPER_TEST_FAIL

public static final int HOUSE_KEEPER_TEST_FAIL
We are killing a connection because the routine house keeper test failed
Field Value:
6
See Also:
onDeath(java.sql.Connection, int)

MANUAL_EXPIRY

public static final int MANUAL_EXPIRY
We are killing a connection because it's manually been expired (by something external to Proxool)
Field Value:
2
See Also:
onDeath(java.sql.Connection, int)

MAXIMUM_ACTIVE_TIME_EXPIRED

public static final int MAXIMUM_ACTIVE_TIME_EXPIRED
Field Value:
1
See Also:
onDeath(java.sql.Connection, int)

MAXIMUM_CONNECTION_LIFETIME_EXCEEDED

public static final int MAXIMUM_CONNECTION_LIFETIME_EXCEEDED
Field Value:
7
See Also:
onDeath(java.sql.Connection, int)

RESET_FAIL

public static final int RESET_FAIL
We are killing a connection because it couldn't be reset after it was returned to the pool and we don't want to give it out again in an unknown state.
Field Value:
5
See Also:
onDeath(java.sql.Connection, int)

SHUTDOWN

public static final int SHUTDOWN
We are killing a connection because Proxool is shutting down
Field Value:
4
See Also:
onDeath(java.sql.Connection, int)

VALIDATION_FAIL

public static final int VALIDATION_FAIL
We are killing a connection because it has not been validated.
Field Value:
3
See Also:
onDeath(java.sql.Connection, int)

Method Details

onBirth

public void onBirth(Connection connection)
            throws SQLException
Happens everytime we create a new connection. You can use this to allocate resources to a connection that might be useful during the lifetime of the connection.
Parameters:
connection - the connection that has just been created

onDeath

public void onDeath(Connection connection,
                    int reasonCode)
            throws SQLException
Happens just before we expire a connection. You can use this to reclaim resources from a connection.

onExecute

public void onExecute(String command,
                      long elapsedTime)
Happens after every successful execute. Note that the command is not fully implemented at this stage. At some point it might represent the SQL that is sent to the database (or the procedure call that was used).
Parameters:
command - what command was being executed
elapsedTime - how long the call took (in milliseconds)

onFail

public void onFail(String command,
                   Exception exception)
Happens everytime an exception was thrown during an execute method Note that the command is not fully implemented at this stage. At some point it might represent the SQL that is sent to the database (or the procedure call that was used).
Parameters:
command - what command was being executed
exception - what exception was thrown