Apache Tomcat 7.0.42

## org.apache.tomcat.jdbc.pool.interceptor
Class AbstractQueryReport

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

All Implemented Interfaces:
  InvocationHandler

Direct Known Subclasses:
  ResetAbandonedTimer, SlowQueryReport

    public abstract class AbstractQueryReport

extends AbstractCreateStatementInterceptor

Abstract class that wraps statements and intercepts query executions.

Author:
  fhanik

Nested Class Summary
`protected class` `AbstractQueryReport.StatementProxy` Class to measure query execute time

Field Summary
`protected static Constructor<?>[]` `constructors` the constructors that are used to create statement proxies
`protected long` `threshold` The threshold in milliseconds.

Fields inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
`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
`AbstractQueryReport()`

Method Summary
`Object` `createStatement(Object proxy, Method method, Object[] args, Object statement, long time)` Creates a statement interceptor to monitor query response times
`protected Constructor<?>` `getConstructor(int idx, Class<?> clazz)` Creates a constructor for a proxy class, if one doesn't already exist
`long` `getThreshold()` returns the query measure threshold.
`protected abstract void` `prepareCall(String query, long time)` Invoked when prepareCall has been called and completed.
`protected abstract void` `prepareStatement(String sql, long time)` Invoked when prepareStatement has been called and completed.
`protected String` `reportFailedQuery(String query, Object[] args, String name, long start, Throwable t)` Invoked when a query execution, a call to execute/executeQuery or executeBatch failed.
`protected String` `reportQuery(String query, Object[] args, 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 String` `reportSlowQuery(String query, Object[] args, 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` `setThreshold(long threshold)` Sets the query measurement threshold.

Methods inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
`closeInvoked, invoke, isExecute, isStatement, process, reset`

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`

Field Detail

### threshold

    protected long threshold

  The threshold in milliseconds. If the query is faster than this, we don't measure it

### constructors

    protected static final Constructor<?>[] constructors

  the constructors that are used to create statement proxies

Constructor Detail

### AbstractQueryReport

    public AbstractQueryReport()

Method Detail

### prepareStatement

    protected abstract void prepareStatement(String sql,
                                             long time)

  Invoked when prepareStatement has been called and completed.

  Parameters:
    `sql` - - the string used to prepare the statement with
    `time` - - the time it took to invoke prepare

### prepareCall

    protected abstract void prepareCall(String query,
                                        long time)

  Invoked when prepareCall has been called and completed.

  Parameters:
    `query` - - the string used to prepare the statement with
    `time` - - the time it took to invoke prepare

### reportFailedQuery

    protected String reportFailedQuery(String query,
                                       Object[] args,
                                       String name,
                                       long start,
                                       Throwable t)

  Invoked when a query execution, a call to execute/executeQuery or executeBatch failed.

  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
    `t` - the exception that happened
  Returns:
    - the SQL that was executed or the string "batch" if it was a batch execution

### reportQuery

    protected String reportQuery(String query,
                                 Object[] args,
                                 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

  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 String reportSlowQuery(String query,
                                     Object[] args,
                                     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

  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

### getThreshold

    public long getThreshold()

  returns the query measure threshold. This value is in milliseconds. If the query is faster than this threshold than it wont be accounted for

  Returns:
    the threshhold in milliseconds

### setThreshold

    public void setThreshold(long threshold)

  Sets the query measurement threshold. The value is in milliseconds. If the query goes faster than this threshold it will not be recorded.

  Parameters:
    `threshold` - set to -1 to record every query. Value is in milliseconds.

### getConstructor

    protected Constructor<?> getConstructor(int idx,
                                            Class<?> clazz)
                                     throws NoSuchMethodException

  Creates a constructor for a proxy class, if one doesn't already exist

  Parameters:
    `idx` - - the index of the constructor
    `clazz` - - the interface that the proxy will implement
  Returns:
    - returns a constructor used to create new instances
  Throws:
    `NoSuchMethodException`

### createStatement

    public Object createStatement(Object proxy,
                                  Method method,
                                  Object[] args,
                                  Object statement,
                                  long time)

  Creates a statement interceptor to monitor query response times

  Specified by:
    `createStatement` in class `AbstractCreateStatementInterceptor`
  Parameters:
    `proxy` - the actual proxy object
    `method` - the method that was called. It will be one of the methods defined in `AbstractCreateStatementInterceptor.STATEMENT_TYPES`
    `args` - the arguments to the method
    `statement` - the statement that the underlying connection created
  Returns:
    a `Statement` object

Apache Tomcat 7.0.42

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.