Class SlowQueryReport.QueryStats

java.lang.Object
org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport.QueryStats
Enclosing class:
SlowQueryReport

public static class SlowQueryReport.QueryStats extends Object
Holds timing and invocation statistics for a single SQL query.
  • Constructor Details

    • QueryStats

      public QueryStats(String query)
      Creates a new QueryStats instance for the given SQL query.
      Parameters:
      query - the SQL query string
  • Method Details

    • getFieldNames

      public static String[] getFieldNames()
      Returns the names of the fields in the composite data representation.
      Returns:
      the field names
    • getFieldDescriptions

      public static String[] getFieldDescriptions()
      Returns the descriptions of the fields in the composite data representation.
      Returns:
      the field descriptions
    • getFieldTypes

      public static OpenType<?>[] getFieldTypes()
      Returns the JMX OpenType of each field in the composite data representation.
      Returns:
      the field types
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getCompositeData

      public CompositeDataSupport getCompositeData(CompositeType type) throws OpenDataException
      Returns the query statistics as JMX CompositeData.
      Parameters:
      type - the composite type definition
      Returns:
      the composite data representation of this query's statistics
      Throws:
      OpenDataException - if the data cannot be converted
    • prepare

      public void prepare(long invocationTime)
      Records the time taken to prepare this query. Preparation counts as activity on the entry, so the last invocation time that orders the statistics for eviction is updated as well: a statement that is prepared but never executed must age like any other query instead of occupying a statistics slot for ever.
      Parameters:
      invocationTime - the time in milliseconds to prepare the query
    • add

      public void add(long invocationTime, long now)
      Records a successful query invocation, updating min/max/total timing statistics.
      Parameters:
      invocationTime - the time in milliseconds the query took
      now - the current timestamp in milliseconds
    • failure

      public void failure(long invocationTime, long now)
      Records a failed query invocation, updating timing statistics and failure count.
      Parameters:
      invocationTime - the time in milliseconds the query took before failing
      now - the current timestamp in milliseconds
    • getQuery

      public String getQuery()
      Returns the SQL query string for these statistics.
      Returns:
      the SQL query string
    • getNrOfInvocations

      public int getNrOfInvocations()
      Returns the total number of times this query has been invoked.
      Returns:
      the number of invocations
    • getMaxInvocationTime

      public long getMaxInvocationTime()
      Returns the longest time this query took to execute.
      Returns:
      the maximum invocation time in milliseconds
    • getMaxInvocationDate

      public long getMaxInvocationDate()
      Returns the timestamp when the longest query execution occurred.
      Returns:
      the timestamp in milliseconds of the maximum invocation
    • getMinInvocationTime

      public long getMinInvocationTime()
      Returns the shortest time this query took to execute.
      Returns:
      the minimum invocation time in milliseconds
    • getMinInvocationDate

      public long getMinInvocationDate()
      Returns the timestamp when the shortest query execution occurred.
      Returns:
      the timestamp in milliseconds of the minimum invocation
    • getTotalInvocationTime

      public long getTotalInvocationTime()
      Returns the total time spent executing this query across all invocations.
      Returns:
      the total invocation time in milliseconds
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • isOlderThan

      public boolean isOlderThan(SlowQueryReport.QueryStats other)
      Returns whether this query was last invoked before the given query stats.
      Parameters:
      other - the other query statistics to compare against
      Returns:
      true if this query's last invocation is older