Class ConnectionState
java.lang.Object
org.apache.tomcat.jdbc.pool.JdbcInterceptor
org.apache.tomcat.jdbc.pool.interceptor.ConnectionState
- All Implemented Interfaces:
InvocationHandler
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.-
Field Summary
Modifier and TypeFieldDescriptionprotected Boolean
protected String
protected Boolean
protected final String[]
protected Integer
protected final String[]
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
disconnected
(ConnectionPool parent, PooledConnection con, boolean finalizing) Called whenConnection.close()
is called on the underlying connection.Gets invoked each time an operation onConnection
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
-
Field Details
-
readState
-
writeState
-
autoCommit
-
transactionIsolation
-
readOnly
-
catalog
-
-
Constructor Details
-
ConnectionState
public ConnectionState()
-
-
Method Details
-
reset
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 classJdbcInterceptor
- Parameters:
parent
- - the connection pool owning the connectioncon
- - the pooled connection
-
disconnected
Description copied from class:JdbcInterceptor
Called whenConnection.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 classJdbcInterceptor
- 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
Description copied from class:JdbcInterceptor
Gets invoked each time an operation onConnection
is invoked.- Specified by:
invoke
in interfaceInvocationHandler
- Overrides:
invoke
in classJdbcInterceptor
- Throws:
Throwable
-