Package org.apache.tomcat.jdbc.pool.interceptor

## Class ResetAbandonedTimer

- java.lang.Object
- - org.apache.tomcat.jdbc.pool.JdbcInterceptor
  - - org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
    - - org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport
      - - org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer

- All Implemented Interfaces:
    `java.lang.reflect.InvocationHandler`, `ResetAbandonedTimerMBean`

      public class ResetAbandonedTimer
      extends AbstractQueryReport
      implements ResetAbandonedTimerMBean

  Class that resets the abandoned timer on any activity on the Connection or any successful query executions. This interceptor is useful for when you have a `PoolConfiguration.setRemoveAbandonedTimeout(int)` that is fairly low, and you want to reset the abandoned time each time any operation on the connection is performed This is useful for batch processing programs that use connections for extensive amount of times.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport

      `AbstractQueryReport.StatementProxy`

  - ### Field Summary

    - ### Fields inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport

      `threshold`

    - ### Fields inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor

      `constructors, CREATE_STATEMENT, CREATE_STATEMENT_IDX, EXECUTE, EXECUTE_BATCH, EXECUTE_QUERY, EXECUTE_TYPES, EXECUTE_UPDATE, PREPARE_CALL, PREPARE_CALL_IDX, PREPARE_STATEMENT, PREPARE_STATEMENT_IDX, STATEMENT_TYPE_COUNT, STATEMENT_TYPES`

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

    Constructors
    Constructor | Description
    --- | ---
    `ResetAbandonedTimer()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `closeInvoked()` | Method invoked when the operation `Connection.close()` is invoked.
    `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.
    `protected void` | `prepareCall​(java.lang.String query, long time)` | Invoked when prepareCall has been called and completed.
    `protected void` | `prepareStatement​(java.lang.String sql, long time)` | Invoked when prepareStatement has been called and completed.
    `protected java.lang.String` | `reportQuery​(java.lang.String query, java.lang.Object[] args, java.lang.String name, long start, long delta)` | Invoked when a query execution, a call to execute/executeQuery or executeBatch succeeded and was within the timing threshold
    `protected java.lang.String` | `reportSlowQuery​(java.lang.String query, java.lang.Object[] args, java.lang.String name, long start, long delta)` | Invoked when a query execution, a call to execute/executeQuery or executeBatch succeeded and was exceeded the timing threshold
    `void` | `reset​(ConnectionPool parent, PooledConnection con)` | no-op for this interceptor. no state is stored.
    `boolean` | `resetTimer()` |

    - ### Methods inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport

      `createStatement, getThreshold, reportFailedQuery, setThreshold`

    - ### Methods inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor

      `getConstructor, isExecute, isStatement, process`

    - ### Methods inherited from class org.apache.tomcat.jdbc.pool.JdbcInterceptor

      `compare, compare, disconnected, 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`

- - ### Constructor Detail

    - #### ResetAbandonedTimer

          public ResetAbandonedTimer()

  - ### Method Detail

    - #### reset

          public void reset​(ConnectionPool parent,
                            PooledConnection con)

      Description copied from class: `AbstractCreateStatementInterceptor`
      no-op for this interceptor. no state is stored.
      Overrides:
        `reset` in class `AbstractCreateStatementInterceptor`
      Parameters:
        `parent` - - the connection pool owning the connection
        `con` - - the pooled connection

    - #### resetTimer

          public boolean resetTimer()

      Specified by:
        `resetTimer` in interface `ResetAbandonedTimerMBean`

    - #### 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: `AbstractCreateStatementInterceptor`
      Gets invoked each time an operation on `Connection` is invoked.
      Specified by:
        `invoke` in interface `java.lang.reflect.InvocationHandler`
      Overrides:
        `invoke` in class `AbstractCreateStatementInterceptor`
      Throws:
        `java.lang.Throwable`

    - #### prepareCall

          protected void prepareCall​(java.lang.String query,
                                     long time)

      Description copied from class: `AbstractQueryReport`
      Invoked when prepareCall has been called and completed.
      Specified by:
        `prepareCall` in class `AbstractQueryReport`
      Parameters:
        `query` - - the string used to prepare the statement with
        `time` - - the time it took to invoke prepare

    - #### prepareStatement

          protected void prepareStatement​(java.lang.String sql,
                                          long time)

      Description copied from class: `AbstractQueryReport`
      Invoked when prepareStatement has been called and completed.
      Specified by:
        `prepareStatement` in class `AbstractQueryReport`
      Parameters:
        `sql` - - the string used to prepare the statement with
        `time` - - the time it took to invoke prepare

    - #### closeInvoked

          public void closeInvoked()

      Description copied from class: `AbstractCreateStatementInterceptor`
      Method invoked when the operation `Connection.close()` is invoked.
      Specified by:
        `closeInvoked` in class `AbstractCreateStatementInterceptor`

    - #### reportQuery

          protected java.lang.String reportQuery​(java.lang.String query,
                                                 java.lang.Object[] args,
                                                 java.lang.String name,
                                                 long start,
                                                 long delta)

      Description copied from class: `AbstractQueryReport`
      Invoked when a query execution, a call to execute/executeQuery or executeBatch succeeded and was within the timing threshold
      Overrides:
        `reportQuery` in class `AbstractQueryReport`
      Parameters:
        `query` - the query that was executed and failed
        `args` - the arguments to the execution
        `name` - the name of the method used to execute `AbstractCreateStatementInterceptor.isExecute(Method, boolean)`
        `start` - the time the query execution started
        `delta` - the time the execution took
      Returns:
        - the SQL that was executed or the string "batch" if it was a batch execution

    - #### reportSlowQuery

          protected java.lang.String reportSlowQuery​(java.lang.String query,
                                                     java.lang.Object[] args,
                                                     java.lang.String name,
                                                     long start,
                                                     long delta)

      Description copied from class: `AbstractQueryReport`
      Invoked when a query execution, a call to execute/executeQuery or executeBatch succeeded and was exceeded the timing threshold
      Overrides:
        `reportSlowQuery` in class `AbstractQueryReport`
      Parameters:
        `query` - the query that was executed and failed
        `args` - the arguments to the execution
        `name` - the name of the method used to execute `AbstractCreateStatementInterceptor.isExecute(Method, boolean)`
        `start` - the time the query execution started
        `delta` - the time the execution took
      Returns:
        - the SQL that was executed or the string "batch" if it was a batch execution