com.mchange.v2.c3p0

Class AbstractConnectionTester

Implemented Interfaces:
ConnectionTester, FullQueryConnectionTester, QueryConnectionTester, Serializable, UnifiedConnectionTester

public abstract class AbstractConnectionTester
extends java.lang.Object
implements UnifiedConnectionTester

Having expanded the once-simple ConnectionTester interface to support both user-specified queries and return of root cause Exceptions (via an out-param), this interface has grown unnecessarily complex.

If you wish to implement a custom Connection tester, here is the simple way to do it

  1. Extend AbstractConnectionTester
  2. Override only the two abstract methods
  3. public int activeCheckConnection(Connection c, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)
  4. public int statusOnException(Connection c, Throwable t, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)
  5. Take care to ensure that your methods are defined to allow preferredTestQuery and rootCauseOutParamHolder to be null.

Parameter rootCauseOutParamHolder is an optional parameter, which if supplied, will be a Throwable array whose size it at least one. If a Connection test fails because of some Exception, the Connection tester may set this Exception as the zero-th element of the array to provide information about why and how the test failed.

Fields inherited from interface com.mchange.v2.c3p0.ConnectionTester

CONNECTION_IS_INVALID, CONNECTION_IS_OKAY, DATABASE_IS_INVALID

Fields inherited from interface com.mchange.v2.c3p0.UnifiedConnectionTester

CONNECTION_IS_INVALID, CONNECTION_IS_OKAY, DATABASE_IS_INVALID

Method Summary

int
activeCheckConnection(Connection c)
int
activeCheckConnection(Connection c, String preferredTestQuery)
abstract int
activeCheckConnection(Connection c, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)
Override, but remember that preferredTestQuery and rootCauseOutParamHolder can be null.
int
activeCheckConnection(Connection c, Throwable[] rootCauseOutParamHolder)
int
statusOnException(Connection c, Throwable t)
int
statusOnException(Connection c, Throwable t, String preferredTestQuery)
abstract int
statusOnException(Connection c, Throwable t, String preferredTestQuery, Throwable[] rootCauseOutParamHolder)
Override, but remember that preferredTestQuery and rootCauseOutParamHolder can be null.
int
statusOnException(Connection c, Throwable t, Throwable[] rootCauseOutParamHolder)

Method Details

activeCheckConnection

public int activeCheckConnection(Connection c)
Specified by:
activeCheckConnection in interface UnifiedConnectionTester
activeCheckConnection in interface ConnectionTester

activeCheckConnection

public int activeCheckConnection(Connection c,
                                 String preferredTestQuery)
Specified by:
activeCheckConnection in interface UnifiedConnectionTester
activeCheckConnection in interface QueryConnectionTester

activeCheckConnection

public abstract int activeCheckConnection(Connection c,
                                          String preferredTestQuery,
                                          Throwable[] rootCauseOutParamHolder)
Override, but remember that preferredTestQuery and rootCauseOutParamHolder can be null.
Specified by:
activeCheckConnection in interface UnifiedConnectionTester

activeCheckConnection

public int activeCheckConnection(Connection c,
                                 Throwable[] rootCauseOutParamHolder)
Specified by:
activeCheckConnection in interface UnifiedConnectionTester

statusOnException

public int statusOnException(Connection c,
                             Throwable t)
Specified by:
statusOnException in interface UnifiedConnectionTester
statusOnException in interface ConnectionTester

statusOnException

public int statusOnException(Connection c,
                             Throwable t,
                             String preferredTestQuery)
Specified by:
statusOnException in interface UnifiedConnectionTester
statusOnException in interface FullQueryConnectionTester

statusOnException

public abstract int statusOnException(Connection c,
                                      Throwable t,
                                      String preferredTestQuery,
                                      Throwable[] rootCauseOutParamHolder)
Override, but remember that preferredTestQuery and rootCauseOutParamHolder can be null.
Specified by:
statusOnException in interface UnifiedConnectionTester

statusOnException

public int statusOnException(Connection c,
                             Throwable t,
                             Throwable[] rootCauseOutParamHolder)
Specified by:
statusOnException in interface UnifiedConnectionTester