# Interface ConnectionCustomizer

All Known Implementing Classes:
  `AbstractConnectionCustomizer`

public interface ConnectionCustomizer

Implementations of this interface should be immutable, and should offer public, no argument constructors.

The methods are handed raw, physical database Connections, not c3p0-generated proxies.

Although c3p0 will ensure this with respect to state controlled by standard JDBC methods, any modifications of vendor-specific state shold be made consistently so that all Connections in the pool are interchangable.

## Method Summary

Modifier and Type
Method
Description
`void`
`onAcquire(Connection c, String parentDataSourceIdentityToken)`
Called immediately after a Connection is acquired from the underlying database for incorporation into the pool.
`void`
`onCheckIn(Connection c, String parentDataSourceIdentityToken)`
Called immediately after a Connection is checked in, prior to reincorporation into the pool.
`void`
`onCheckOut(Connection c, String parentDataSourceIdentityToken)`
Called immediately before a Connection is made available to a client upon checkout.
`void`
`onDestroy(Connection c, String parentDataSourceIdentityToken)`
Called immediately before a Connection is destroyed after being removed from the pool.

## Method Details

### onAcquire

void onAcquire(Connection c, String parentDataSourceIdentityToken) throws Exception

Called immediately after a Connection is acquired from the underlying database for incorporation into the pool.

This method is only called once per Connection. If standard JDBC Connection properties are modified [holdability, transactionIsolation, readOnly], those modifications will override defaults throughout the Connection's tenure in the pool.

Throws:
  `Exception`

### onDestroy

void onDestroy(Connection c, String parentDataSourceIdentityToken) throws Exception
Called immediately before a Connection is destroyed after being removed from the pool.

Throws:
  `Exception`

### onCheckOut

void onCheckOut(Connection c, String parentDataSourceIdentityToken) throws Exception
Called immediately before a Connection is made available to a client upon checkout.

Throws:
  `Exception`

### onCheckIn

void onCheckIn(Connection c, String parentDataSourceIdentityToken) throws Exception
Called immediately after a Connection is checked in, prior to reincorporation into the pool.

Throws:
  `Exception`