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 Boolean |
autoCommit |
protected String |
catalog |
protected Boolean |
readOnly |
protected String[] |
readState |
protected Integer |
transactionIsolation |
protected 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. |
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.
|
compare, compare, getNext, getProperties, isUseEquals, poolClosed, poolStarted, setNext, setProperties, setUseEquals
protected final String[] readState
protected final String[] writeState
protected Boolean autoCommit
protected Integer transactionIsolation
protected Boolean readOnly
protected 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 Object invoke(Object proxy, Method method, Object[] args) throws Throwable
JdbcInterceptor
Connection
is invoked.
invoke
in interface InvocationHandler
invoke
in class JdbcInterceptor
Throwable
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.