Class 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.
    • Field Detail

      • 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
    • 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 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