public class ConnectionState extends JdbcInterceptor
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.Modifier and Type | Field and Description |
---|---|
protected java.lang.Boolean |
autoCommit |
protected java.lang.String |
catalog |
protected java.lang.Boolean |
readOnly |
protected java.lang.String[] |
readState |
protected java.lang.Integer |
transactionIsolation |
protected java.lang.String[] |
writeState |
CLOSE_VAL, EQUALS_VAL, GETCONNECTION_VAL, HASHCODE_VAL, ISCLOSED_VAL, ISVALID_VAL, ISWRAPPERFOR_VAL, properties, TOSTRING_VAL, UNWRAP_VAL
Constructor and Description |
---|
ConnectionState() |
Modifier and Type | Method and Description |
---|---|
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.
|
compare, compare, getNext, getProperties, isUseEquals, poolClosed, poolStarted, setNext, setProperties, setUseEquals
protected final java.lang.String[] readState
protected final java.lang.String[] writeState
protected java.lang.Boolean autoCommit
protected java.lang.Integer transactionIsolation
protected java.lang.Boolean readOnly
protected java.lang.String catalog
public void reset(ConnectionPool parent, PooledConnection con)
JdbcInterceptor
reset
in class JdbcInterceptor
parent
- - the connection pool owning the connectioncon
- - the pooled connectionpublic void disconnected(ConnectionPool parent, PooledConnection con, boolean finalizing)
JdbcInterceptor
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.disconnected
in class JdbcInterceptor
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 connectionpublic java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.Throwable
JdbcInterceptor
Connection
is invoked.
invoke
in interface java.lang.reflect.InvocationHandler
invoke
in class JdbcInterceptor
java.lang.Throwable
Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.