org.apache.tomcat.jdbc.pool.interceptor
Class ConnectionState
java.lang.Object
org.apache.tomcat.jdbc.pool.JdbcInterceptor
org.apache.tomcat.jdbc.pool.interceptor.ConnectionState
- All Implemented Interfaces:
- java.lang.reflect.InvocationHandler
public class ConnectionState
- extends JdbcInterceptor
Interceptor that keep track of connection state to avoid roundtrips to the database.
The ConnectionPool
is optimized to do as little work as possible.
The pool itself doesn't remember settings like Connection.setAutoCommit(boolean)
,
Connection.setReadOnly(boolean)
, Connection.setCatalog(String)
or
Connection.setTransactionIsolation(int)
. It relies on the application to remember how and when
these settings have been applied.
In the cases where the application code doesn't know or want to keep track of the state, this interceptor helps cache the
state, and it also avoids roundtrips to the database asking for it.
- Author:
- fhanik
Method Summary |
void |
disconnected(ConnectionPool parent,
PooledConnection con,
boolean finalizing)
Called when Connection.close() is called on the underlying connection. |
java.lang.Object |
invoke(java.lang.Object proxy,
java.lang.reflect.Method method,
java.lang.Object[] args)
Gets invoked each time an operation on Connection is invoked. |
void |
reset(ConnectionPool parent,
PooledConnection con)
Gets called each time the connection is borrowed from the pool
This means that if an interceptor holds a reference to the connection
the interceptor can be reused for another connection. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
readState
protected final java.lang.String[] readState
writeState
protected final java.lang.String[] writeState
autoCommit
protected java.lang.Boolean autoCommit
transactionIsolation
protected java.lang.Integer transactionIsolation
readOnly
protected java.lang.Boolean readOnly
catalog
protected java.lang.String catalog
ConnectionState
public ConnectionState()
reset
public void reset(ConnectionPool parent,
PooledConnection con)
- Description copied from class:
JdbcInterceptor
- Gets called each time the connection is borrowed from the pool
This means that if an interceptor holds a reference to the connection
the interceptor can be reused for another connection.
This method may be called with null as both arguments when we are closing down the connection.
- Specified by:
reset
in class JdbcInterceptor
- Parameters:
parent
- - the connection pool owning the connectioncon
- - the pooled connection
disconnected
public void disconnected(ConnectionPool parent,
PooledConnection con,
boolean finalizing)
- Description copied from class:
JdbcInterceptor
- Called when
Connection.close()
is called on the underlying connection.
This is to notify the interceptors, that the physical connection has been released.
Implementation of this method should be thought through with care, as no actions should trigger an exception.
- Overrides:
disconnected
in class JdbcInterceptor
- Parameters:
parent
- - the connection pool that this connection belongs tocon
- - the pooled connection that holds this connectionfinalizing
- - if this connection is finalizing. True means that the pooled connection will not reconnect the underlying connection
invoke
public java.lang.Object invoke(java.lang.Object proxy,
java.lang.reflect.Method method,
java.lang.Object[] args)
throws java.lang.Throwable
- Description copied from class:
JdbcInterceptor
- Gets invoked each time an operation on
Connection
is invoked.
- Specified by:
invoke
in interface java.lang.reflect.InvocationHandler
- Overrides:
invoke
in class JdbcInterceptor
- Throws:
java.lang.Throwable
Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.