Apache Tomcat 7.0.37

org.apache.tomcat.jdbc.pool.interceptor
Class ConnectionState

java.lang.Object
  extended by org.apache.tomcat.jdbc.pool.JdbcInterceptor
      extended by org.apache.tomcat.jdbc.pool.interceptor.ConnectionState
All Implemented Interfaces:
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

Field Summary
protected  Boolean autoCommit
           
protected  String catalog
           
protected  Boolean readOnly
           
protected  String[] readState
           
protected  Integer transactionIsolation
           
protected  String[] writeState
           
 
Fields inherited from class org.apache.tomcat.jdbc.pool.JdbcInterceptor
CLOSE_VAL, EQUALS_VAL, GETCONNECTION_VAL, HASHCODE_VAL, ISCLOSED_VAL, ISVALID_VAL, ISWRAPPERFOR_VAL, properties, TOSTRING_VAL, UNWRAP_VAL
 
Constructor Summary
ConnectionState()
           
 
Method Summary
 void disconnected(ConnectionPool parent, PooledConnection con, boolean finalizing)
          Called when Connection.close() is called on the underlying connection.
 Object invoke(Object proxy, Method method, 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 org.apache.tomcat.jdbc.pool.JdbcInterceptor
compare, compare, getNext, getProperties, isUseEquals, poolClosed, poolStarted, setNext, setProperties, setUseEquals
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

readState

protected final String[] readState

writeState

protected final String[] writeState

autoCommit

protected Boolean autoCommit

transactionIsolation

protected Integer transactionIsolation

readOnly

protected Boolean readOnly

catalog

protected String catalog
Constructor Detail

ConnectionState

public ConnectionState()
Method Detail

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 connection
con - - 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 to
con - - the pooled connection that holds this connection
finalizing - - if this connection is finalizing. True means that the pooled connection will not reconnect the underlying connection

invoke

public Object invoke(Object proxy,
                     Method method,
                     Object[] args)
              throws Throwable
Description copied from class: JdbcInterceptor
Gets invoked each time an operation on Connection is invoked.

Specified by:
invoke in interface InvocationHandler
Overrides:
invoke in class JdbcInterceptor
Throws:
Throwable

Apache Tomcat 7.0.37

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.